Lines Matching defs:CurInst
2908 bool GVNPass::performScalarPRE(Instruction *CurInst) {
2909 if (isa<AllocaInst>(CurInst) || CurInst->isTerminator() ||
2910 isa<PHINode>(CurInst) || CurInst->getType()->isVoidTy() ||
2911 CurInst->mayReadFromMemory() || CurInst->mayHaveSideEffects() ||
2912 isa<DbgInfoIntrinsic>(CurInst))
2919 if (isa<CmpInst>(CurInst))
2929 if (isa<GetElementPtrInst>(CurInst))
2932 if (auto *CallB = dyn_cast<CallBase>(CurInst)) {
2938 uint32_t ValNo = VN.lookup(CurInst);
2949 BasicBlock *CurrentBlock = CurInst->getParent();
2977 } else if (predV == CurInst) {
2978 /* CurInst dominates this predecessor. */
2998 if (!isSafeToSpeculativelyExecute(CurInst)) {
3003 if (ICF->isDominatedByICFIFromSameBlock(CurInst))
3020 PREInstr = CurInst->clone();
3038 PHINode *Phi = PHINode::Create(CurInst->getType(), predMap.size(),
3039 CurInst->getName() + ".pre-phi");
3045 patchReplacementInstruction(CurInst, V);
3056 Phi->setDebugLoc(CurInst->getDebugLoc());
3057 CurInst->replaceAllUsesWith(Phi);
3060 VN.erase(CurInst);
3061 LeaderTable.erase(ValNo, CurInst, CurrentBlock);
3063 LLVM_DEBUG(dbgs() << "GVN PRE removed: " << *CurInst << '\n');
3064 removeInstruction(CurInst);
3086 Instruction *CurInst = &*BI++;
3087 Changed |= performScalarPRE(CurInst);