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

Lines Matching refs:GEP

313   auto *GEP = dyn_cast<GEPOperator>(CE);
314 if (!GEP)
317 unsigned BitWidth = DL.getIndexTypeSizeInBits(GEP->getType());
325 if (!GEP->accumulateConstantOffset(DL, TmpOffset))
847 /// If we can symbolically evaluate the GEP constant expression, do so.
848 Constant *SymbolicallyEvaluateGEP(const GEPOperator *GEP,
852 const GEPOperator *InnermostGEP = GEP;
853 bool InBounds = GEP->isInBounds();
855 Type *SrcElemTy = GEP->getSourceElementType();
856 Type *ResElemTy = GEP->getResultElementType();
857 Type *ResTy = GEP->getType();
862 GEP->getInRangeIndex(), DL, TLI))
901 // If this is a GEP of a GEP, fold it all into a single GEP.
902 while (auto *GEP = dyn_cast<GEPOperator>(Ptr)) {
903 InnermostGEP = GEP;
904 InBounds &= GEP->isInBounds();
906 SmallVector<Value *, 4> NestedOps(GEP->op_begin() + 1, GEP->op_end());
908 // Do not try the incorporate the sub-GEP if some index is not a number.
918 Ptr = cast<Constant>(GEP->getOperand(0));
919 SrcElemTy = GEP->getSourceElementType();
951 // The only pointer indexing we'll do is on the first index of the GEP.
987 // can't re-form this GEP in a regular form, so bail out. The pointer
988 // operand likely went through casts that are necessary to make the GEP
1011 // Preserve the inrange index from the innermost GEP if possible. We must
1023 // Create a GEP.
1057 if (auto *GEP = dyn_cast<GEPOperator>(InstOrCE)) {
1058 if (Constant *C = SymbolicallyEvaluateGEP(GEP, Ops, DL, TLI))
1061 return ConstantExpr::getGetElementPtr(GEP->getSourceElementType(), Ops[0],
1062 Ops.slice(1), GEP->isInBounds(),
1063 GEP->getInRangeIndex());