Lines Matching defs:GEP

107       GEP,     // &B[..][i * S][..]
119 // Note that Index and Stride of a GEP candidate do not necessarily have the
201 void allocateCandidatesAndFindBasisForGEP(GetElementPtrInst *GEP);
222 GetElementPtrInst *GEP);
225 // GEP and the bump is not divisible by the element size of the GEP, this
227 // basis using an ugly GEP.
273 static bool isGEPFoldable(GetElementPtrInst *GEP,
276 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I)
278 return TTI->getGEPCost(GEP->getSourceElementType(), GEP->getPointerOperand(),
296 if (C.CandidateKind == Candidate::GEP)
301 // Returns true if GEP has zero or one non-zero index.
302 static bool hasOnlyOneNonZeroIndex(GetElementPtrInst *GEP) {
304 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I) {
321 if (C.CandidateKind == Candidate::GEP) {
480 allocateCandidatesAndFindBasis(Candidate::GEP, B, ScaledIdx, S, I);
486 GetElementPtrInst *GEP) {
490 ArrayIdx, ElementSize, GEP);
506 // GEP = Base + sext(LHS *nsw RHS) * ElementSize
507 allocateCandidatesAndFindBasisForGEP(Base, RHS, LHS, ElementSize, GEP);
509 // GEP = Base + sext(LHS <<nsw RHS) * ElementSize
514 allocateCandidatesAndFindBasisForGEP(Base, PowerOf2, LHS, ElementSize, GEP);
519 GetElementPtrInst *GEP) {
521 if (GEP->getType()->isVectorTy())
525 for (auto I = GEP->idx_begin(); I != GEP->idx_end(); ++I)
528 gep_type_iterator GTI = gep_type_begin(GEP);
529 for (unsigned I = 1, E = GEP->getNumOperands(); I != E; ++I, ++GTI) {
536 // The base of this candidate is GEP's base plus the offsets of all
538 const SCEV *BaseExpr = SE->getGEPExpr(cast<GEPOperator>(GEP), IndexExprs);
539 Value *ArrayIdx = GEP->getOperand(I);
542 DL->getPointerSizeInBits(GEP->getAddressSpace())) {
545 factorArrayIndex(ArrayIdx, BaseExpr, ElementSize, GEP);
553 DL->getPointerSizeInBits(GEP->getAddressSpace())) {
556 factorArrayIndex(TruncatedArrayIdx, BaseExpr, ElementSize, GEP);
581 if (Basis.CandidateKind == Candidate::GEP) {
666 case Candidate::GEP: