reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1128 if (Value *V = SimplifyInstruction(&PN, SQ.getWithInstruction(&PN))) 1128 if (Value *V = SimplifyInstruction(&PN, SQ.getWithInstruction(&PN))) 1129 return replaceInstUsesWith(PN, V); 1131 if (Instruction *Result = FoldPHIArgZextsIntoPHI(PN)) 1136 if (isa<Instruction>(PN.getIncomingValue(0)) && 1137 isa<Instruction>(PN.getIncomingValue(1)) && 1138 cast<Instruction>(PN.getIncomingValue(0))->getOpcode() == 1139 cast<Instruction>(PN.getIncomingValue(1))->getOpcode() && 1142 PN.getIncomingValue(0)->hasOneUse()) 1143 if (Instruction *Result = FoldPHIArgOpIntoPHI(PN)) 1149 if (PN.hasOneUse()) { 1150 if (Instruction *Result = FoldIntegerTypedPHI(PN)) 1153 Instruction *PHIUser = cast<Instruction>(PN.user_back()); 1156 PotentiallyDeadPHIs.insert(&PN); 1158 return replaceInstUsesWith(PN, UndefValue::get(PN.getType())); 1158 return replaceInstUsesWith(PN, UndefValue::get(PN.getType())); 1169 PHIUser->user_back() == &PN) { 1170 return replaceInstUsesWith(PN, UndefValue::get(PN.getType())); 1170 return replaceInstUsesWith(PN, UndefValue::get(PN.getType())); 1182 if (CmpInst && isa<IntegerType>(PN.getType()) && CmpInst->isEquality() && 1185 for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i) { 1186 Instruction *CtxI = PN.getIncomingBlock(i)->getTerminator(); 1187 Value *VA = PN.getIncomingValue(i); 1190 NonZeroConst = GetAnyNonZeroConstInt(PN); 1191 PN.setIncomingValue(i, NonZeroConst); 1204 unsigned InValNo = 0, NumIncomingVals = PN.getNumIncomingValues(); 1207 isa<PHINode>(PN.getIncomingValue(InValNo))) 1211 Value *NonPhiInVal = PN.getIncomingValue(InValNo); 1216 Value *OpVal = PN.getIncomingValue(InValNo); 1226 if (PHIsEqualValue(&PN, NonPhiInVal, ValueEqualPHIs)) 1227 return replaceInstUsesWith(PN, NonPhiInVal); 1236 PHINode *FirstPN = cast<PHINode>(PN.getParent()->begin()); 1237 if (&PN != FirstPN) 1239 BasicBlock *BBA = PN.getIncomingBlock(i); 1242 Value *VA = PN.getIncomingValue(i); 1243 unsigned j = PN.getBasicBlockIndex(BBB); 1244 Value *VB = PN.getIncomingValue(j); 1245 PN.setIncomingBlock(i, BBB); 1246 PN.setIncomingValue(i, VB); 1247 PN.setIncomingBlock(j, BBA); 1248 PN.setIncomingValue(j, VA); 1260 if (PN.getType()->isIntegerTy() && 1261 !DL.isLegalInteger(PN.getType()->getPrimitiveSizeInBits())) 1262 if (Instruction *Res = SliceUpIllegalIntegerPHI(PN))