Lines Matching defs:CurInst
2938 bool GVNPass::performScalarPRE(Instruction *CurInst) {
2939 if (isa<AllocaInst>(CurInst) || CurInst->isTerminator() ||
2940 isa<PHINode>(CurInst) || CurInst->getType()->isVoidTy() ||
2941 CurInst->mayReadFromMemory() || CurInst->mayHaveSideEffects() ||
2942 isa<DbgInfoIntrinsic>(CurInst))
2949 if (isa<CmpInst>(CurInst))
2959 if (isa<GetElementPtrInst>(CurInst))
2962 if (auto *CallB = dyn_cast<CallBase>(CurInst)) {
2968 uint32_t ValNo = VN.lookup(CurInst);
2979 BasicBlock *CurrentBlock = CurInst->getParent();
3007 } else if (predV == CurInst) {
3008 /* CurInst dominates this predecessor. */
3028 if (!isSafeToSpeculativelyExecute(CurInst)) {
3033 if (ICF->isDominatedByICFIFromSameBlock(CurInst))
3050 PREInstr = CurInst->clone();
3068 PHINode *Phi = PHINode::Create(CurInst->getType(), predMap.size(),
3069 CurInst->getName() + ".pre-phi");
3075 patchReplacementInstruction(CurInst, V);
3086 Phi->setDebugLoc(CurInst->getDebugLoc());
3087 CurInst->replaceAllUsesWith(Phi);
3090 VN.erase(CurInst);
3091 LeaderTable.erase(ValNo, CurInst, CurrentBlock);
3093 LLVM_DEBUG(dbgs() << "GVN PRE removed: " << *CurInst << '\n');
3094 removeInstruction(CurInst);
3116 Instruction *CurInst = &*BI++;
3117 Changed |= performScalarPRE(CurInst);