• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Analysis/

Lines Matching refs:GEP

309   auto *GEP = dyn_cast<GEPOperator>(CE);
310 if (!GEP)
313 unsigned BitWidth = DL.getIndexTypeSizeInBits(GEP->getType());
321 if (!GEP->accumulateConstantOffset(DL, TmpOffset))
820 /// If we can symbolically evaluate the GEP constant expression, do so.
821 Constant *SymbolicallyEvaluateGEP(const GEPOperator *GEP,
825 const GEPOperator *InnermostGEP = GEP;
826 bool InBounds = GEP->isInBounds();
828 Type *SrcElemTy = GEP->getSourceElementType();
829 Type *ResElemTy = GEP->getResultElementType();
830 Type *ResTy = GEP->getType();
835 GEP->getInRangeIndex(), DL, TLI))
876 // If this is a GEP of a GEP, fold it all into a single GEP.
877 while (auto *GEP = dyn_cast<GEPOperator>(Ptr)) {
878 InnermostGEP = GEP;
879 InBounds &= GEP->isInBounds();
881 SmallVector<Value *, 4> NestedOps(GEP->op_begin() + 1, GEP->op_end());
883 // Do not try the incorporate the sub-GEP if some index is not a number.
893 Ptr = cast<Constant>(GEP->getOperand(0));
894 SrcElemTy = GEP->getSourceElementType();
926 // The only pointer indexing we'll do is on the first index of the GEP.
962 // can't re-form this GEP in a regular form, so bail out. The pointer
963 // operand likely went through casts that are necessary to make the GEP
986 // Preserve the inrange index from the innermost GEP if possible. We must
998 // Create a GEP.
1032 if (auto *GEP = dyn_cast<GEPOperator>(InstOrCE)) {
1033 if (Constant *C = SymbolicallyEvaluateGEP(GEP, Ops, DL, TLI))
1036 return ConstantExpr::getGetElementPtr(GEP->getSourceElementType(), Ops[0],
1037 Ops.slice(1), GEP->isInBounds(),
1038 GEP->getInRangeIndex());