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

References

lib/Transforms/Scalar/IndVarSimplify.cpp
 1544   assert(ExtendKindMap.count(DU.NarrowDef) &&
 1548   if (PHINode *UsePhi = dyn_cast<PHINode>(DU.NarrowUse)) {
 1554         truncateIVUse(DU, DT, LI);
 1563           PHINode::Create(DU.WideDef->getType(), 1, UsePhi->getName() + ".wide",
 1565         WidePhi->addIncoming(DU.WideDef, UsePhi->getIncomingBlock(0));
 1567         Value *Trunc = Builder.CreateTrunc(WidePhi, DU.NarrowDef->getType());
 1580     return DU.NeverNegative || getExtendKind(DU.NarrowDef) == SignExtended;
 1580     return DU.NeverNegative || getExtendKind(DU.NarrowDef) == SignExtended;
 1583     return DU.NeverNegative || getExtendKind(DU.NarrowDef) == ZeroExtended;
 1583     return DU.NeverNegative || getExtendKind(DU.NarrowDef) == ZeroExtended;
 1587   if ((isa<SExtInst>(DU.NarrowUse) && canWidenBySExt()) ||
 1588       (isa<ZExtInst>(DU.NarrowUse) && canWidenByZExt())) {
 1589     Value *NewDef = DU.WideDef;
 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());
 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);
 1605         DU.NarrowUse->replaceUsesOfWith(DU.NarrowDef, DU.WideDef);
 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
 1611                         << " replaced by " << *DU.WideDef << "\n");
 1613       DU.NarrowUse->replaceAllUsesWith(NewDef);
 1614       DeadInsts.emplace_back(DU.NarrowUse);
 1627   WidenedRecTy WideAddRec = getExtendedOperandRecurrence(DU);
 1629     WideAddRec = getWideRecurrence(DU);
 1635     if (widenLoopCompare(DU))
 1643     if (widenWithVariantLoadUse(DU)) {
 1644       widenWithVariantLoadUseCodegen(DU);
 1651     truncateIVUse(DU, DT, LI);
 1656   assert(DU.NarrowUse != DU.NarrowUse->getParent()->getTerminator() &&
 1656   assert(DU.NarrowUse != DU.NarrowUse->getParent()->getTerminator() &&
 1663       Rewriter.hoistIVInc(WideInc, DU.NarrowUse))
 1666     WideUse = cloneIVUser(DU, WideAddRec.first);
 1685   replaceAllDbgUsesWith(*DU.NarrowUse, *WideUse, *WideUse, *DT);
 1687   ExtendKindMap[DU.NarrowUse] = WideAddRec.second;