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

References

lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
  261   return (Basis.Ins != C.Ins && // skip the same instruction
  261   return (Basis.Ins != C.Ins && // skip the same instruction
  264           Basis.Ins->getType() == C.Ins->getType() &&
  264           Basis.Ins->getType() == C.Ins->getType() &&
  266           DT->dominates(Basis.Ins->getParent(), C.Ins->getParent()) &&
  266           DT->dominates(Basis.Ins->getParent(), C.Ins->getParent()) &&
  296     return isGEPFoldable(cast<GetElementPtrInst>(C.Ins), TTI);
  323             hasOnlyOneNonZeroIndex(cast<GetElementPtrInst>(C.Ins)));
  584             cast<GetElementPtrInst>(Basis.Ins)->getResultElementType()));
  604       IntegerType::get(Basis.Ins->getContext(), IndexOffset.getBitWidth());
  627   assert(Basis.Ins->getParent() != nullptr && "the basis is unlinked");
  633   if (!C.Ins->getParent())
  636   IRBuilder<> Builder(C.Ins);
  647       Reduced = Builder.CreateSub(Basis.Ins, NegBump);
  661       Reduced = Builder.CreateAdd(Basis.Ins, Bump);
  667       Type *IntPtrTy = DL->getIntPtrType(C.Ins->getType());
  668       bool InBounds = cast<GetElementPtrInst>(C.Ins)->isInBounds();
  671         unsigned AS = Basis.Ins->getType()->getPointerAddressSpace();
  672         Type *CharTy = Type::getInt8PtrTy(Basis.Ins->getContext(), AS);
  673         Reduced = Builder.CreateBitCast(Basis.Ins, CharTy);
  679         Reduced = Builder.CreateBitCast(Reduced, C.Ins->getType());
  686               cast<GetElementPtrInst>(Basis.Ins)->getResultElementType(),
  687               Basis.Ins, Bump);
  690               cast<GetElementPtrInst>(Basis.Ins)->getResultElementType(),
  691               Basis.Ins, Bump);
  698   Reduced->takeName(C.Ins);
  699   C.Ins->replaceAllUsesWith(Reduced);
  702   C.Ins->removeFromParent();
  703   UnlinkedInstructions.push_back(C.Ins);