Lines Matching defs:WideDef
1120 Instruction *WideDef = nullptr;
1129 : NarrowDef(ND), NarrowUse(NU), WideDef(WD),
1169 void pushNarrowIVUsers(Instruction *NarrowDef, Instruction *WideDef);
1280 Instruction *WideDef = DU.WideDef;
1284 // Replace NarrowDef operands with WideDef. Otherwise, we don't know anything
1290 ? WideDef
1294 ? WideDef
1311 Instruction *WideDef = DU.WideDef;
1319 // Widen(NarrowDef `op` NonIVNarrowDef) == WideAR == WideDef `op.wide` X
1337 WideLHS = SE->getSCEV(WideDef);
1343 WideRHS = SE->getSCEV(WideDef);
1346 // WideUse is "WideDef `op.wide` X" as described in the comment.
1361 ? WideDef
1365 ? WideDef
1487 // One operand (NarrowDef) has already been extended to WideDef. Now determine
1523 const SCEV *lhs = SE->getSCEV(DU.WideDef);
1585 LLVM_DEBUG(dbgs() << "INDVARS: Truncate IV " << *DU.WideDef << " for user "
1590 Builder.CreateTrunc(DU.WideDef, DU.NarrowDef->getType(), "",
1628 DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
1661 Instruction *WideDef = DU.WideDef;
1759 const SCEV *Op1 = SE->getSCEV(WideDef);
1769 ? WideDef
1774 ? WideDef
1864 PHINode::Create(DU.WideDef->getType(), 1, UsePhi->getName() + ".wide",
1866 WidePhi->addIncoming(DU.WideDef, UsePhi->getIncomingBlock(0));
1883 Value *NewDef = DU.WideDef;
1890 NewDef = Builder.CreateTrunc(DU.WideDef, DU.NarrowUse->getType(), "",
1900 DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
1906 << " replaced by " << *DU.WideDef << "\n");
1915 // push the uses of WideDef here.
2001 void WidenIV::pushNarrowIVUsers(Instruction *NarrowDef, Instruction *WideDef) {
2020 NarrowIVUsers.emplace_back(NarrowDef, NarrowUser, WideDef,