reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Scalar/IndVarSimplify.cpp
 1089   unsigned Opcode = DU.NarrowUse->getOpcode();
 1110   Instruction *NarrowUse = DU.NarrowUse;
 1141   Instruction *NarrowUse = DU.NarrowUse;
 1256   const unsigned OpCode = DU.NarrowUse->getOpcode();
 1265       DU.NarrowUse->getOperand(0) == DU.NarrowDef ? 1 : 0;
 1266   assert(DU.NarrowUse->getOperand(1-ExtendOperIdx) == DU.NarrowDef && "bad DU");
 1270     cast<OverflowingBinaryOperator>(DU.NarrowUse);
 1274       SE->getSCEV(DU.NarrowUse->getOperand(ExtendOperIdx)), WideType);
 1277       SE->getSCEV(DU.NarrowUse->getOperand(ExtendOperIdx)), WideType);
 1308   if (!SE->isSCEVable(DU.NarrowUse->getType()))
 1311   const SCEV *NarrowExpr = SE->getSCEV(DU.NarrowUse);
 1345   auto *InsertPt = getInsertPointForUses(DU.NarrowUse, DU.NarrowDef, DT, LI);
 1349                     << *DU.NarrowUse << "\n");
 1352   DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, Trunc);
 1359   ICmpInst *Cmp = dyn_cast<ICmpInst>(DU.NarrowUse);
 1387   auto *InsertPt = getInsertPointForUses(DU.NarrowUse, DU.NarrowDef, DT, LI);
 1391   DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
 1396     DU.NarrowUse->replaceUsesOfWith(Op, ExtOp);
 1415   Instruction *NarrowUse = DU.NarrowUse;
 1428   unsigned ExtendOperIdx = DU.NarrowUse->getOperand(0) == NarrowDef ? 1 : 0;
 1429   assert(DU.NarrowUse->getOperand(1 - ExtendOperIdx) == DU.NarrowDef &&
 1485   Instruction *NarrowUse = DU.NarrowUse;
 1548   if (PHINode *UsePhi = dyn_cast<PHINode>(DU.NarrowUse)) {
 1587   if ((isa<SExtInst>(DU.NarrowUse) && canWidenBySExt()) ||
 1588       (isa<ZExtInst>(DU.NarrowUse) && canWidenByZExt())) {
 1590     if (DU.NarrowUse->getType() != WideType) {
 1591       unsigned CastWidth = SE->getTypeSizeInBits(DU.NarrowUse->getType());
 1595         IRBuilder<> Builder(DU.NarrowUse);
 1596         NewDef = Builder.CreateTrunc(DU.WideDef, DU.NarrowUse->getType());
 1603                           << " not wide enough to subsume " << *DU.NarrowUse
 1605         DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
 1606         NewDef = DU.NarrowUse;
 1609     if (NewDef != DU.NarrowUse) {
 1610       LLVM_DEBUG(dbgs() << "INDVARS: eliminating " << *DU.NarrowUse
 1613       DU.NarrowUse->replaceAllUsesWith(NewDef);
 1614       DeadInsts.emplace_back(DU.NarrowUse);
 1656   assert(DU.NarrowUse != DU.NarrowUse->getParent()->getTerminator() &&
 1656   assert(DU.NarrowUse != DU.NarrowUse->getParent()->getTerminator() &&
 1663       Rewriter.hoistIVInc(WideInc, DU.NarrowUse))
 1685   replaceAllDbgUsesWith(*DU.NarrowUse, *WideUse, *WideUse, *DT);
 1687   ExtendKindMap[DU.NarrowUse] = WideAddRec.second;
 1805       pushNarrowIVUsers(DU.NarrowUse, WideUse);