Lines Matching refs:I0
720 Instruction *I0 = NewInsts[0]; in analyzeInstructionForSinking() local
724 auto hasDifferentNumOperands = [&I0](Instruction *I) { in analyzeInstructionForSinking()
725 return I->getNumOperands() != I0->getNumOperands(); in analyzeInstructionForSinking()
730 for (unsigned OpNum = 0, E = I0->getNumOperands(); OpNum != E; ++OpNum) { in analyzeInstructionForSinking()
734 if (!canReplaceOperandWithVariable(I0, OpNum)) in analyzeInstructionForSinking()
742 if ((isa<CallInst>(I0) || isa<InvokeInst>(I0)) && OpNum == E - 1 && in analyzeInstructionForSinking()
841 Instruction *I0 = Insts.front(); in sinkLastInstruction() local
844 for (unsigned O = 0, E = I0->getNumOperands(); O != E; ++O) { in sinkLastInstruction()
845 bool NeedPHI = llvm::any_of(Insts, [&I0, O](const Instruction *I) { in sinkLastInstruction()
846 return I->getOperand(O) != I0->getOperand(O); in sinkLastInstruction()
849 NewOperands.push_back(I0->getOperand(O)); in sinkLastInstruction()
854 auto *Op = I0->getOperand(O); in sinkLastInstruction()
865 for (unsigned O = 0, E = I0->getNumOperands(); O != E; ++O) in sinkLastInstruction()
866 I0->getOperandUse(O).set(NewOperands[O]); in sinkLastInstruction()
867 I0->moveBefore(&*BBEnd->getFirstInsertionPt()); in sinkLastInstruction()
871 if (I != I0) { in sinkLastInstruction()
872 combineMetadataForCSE(I0, I, true); in sinkLastInstruction()
873 I0->andIRFlags(I); in sinkLastInstruction()
877 if (I != I0) in sinkLastInstruction()
878 I->replaceAllUsesWith(I0); in sinkLastInstruction()
883 if (I != I0) in sinkLastInstruction()