Lines Matching refs:GEP
96 GetElementPtrInst *GEP, IRBuilder<> &Builder);
148 Value *foldGEP(GetElementPtrInst *GEP, Value *&Offsets, unsigned &Scale,
231 if (auto *GEP = dyn_cast<GetElementPtrInst>(Ptr)) { in decomposePtr() local
232 if (Value *V = decomposeGEP(Offsets, Ty, GEP, Builder)) { in decomposePtr()
234 computeScale(GEP->getSourceElementType()->getPrimitiveSizeInBits(), in decomposePtr()
256 GetElementPtrInst *GEP, in decomposeGEP() argument
258 if (!GEP) { in decomposeGEP()
265 Value *GEPPtr = GEP->getPointerOperand(); in decomposeGEP()
266 Offsets = GEP->getOperand(1); in decomposeGEP()
271 if (GEP->getNumOperands() != 2) { in decomposeGEP()
276 Offsets = GEP->getOperand(1); in decomposeGEP()
744 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr); in tryCreateIncrementingGatScat() local
746 Value *BasePtr = decomposeGEP(Offsets, Ty, GEP, Builder); in tryCreateIncrementingGatScat()
756 computeScale(DL->getTypeSizeInBits(GEP->getOperand(0)->getType()), in tryCreateIncrementingGatScat()
757 DL->getTypeSizeInBits(GEP->getType()) / in tryCreateIncrementingGatScat()
758 cast<FixedVectorType>(GEP->getType())->getNumElements()); in tryCreateIncrementingGatScat()
762 if (GEP->hasOneUse()) { in tryCreateIncrementingGatScat()
1182 Value *MVEGatherScatterLowering::foldGEP(GetElementPtrInst *GEP, in foldGEP() argument
1185 Value *GEPPtr = GEP->getPointerOperand(); in foldGEP()
1186 Offsets = GEP->getOperand(1); in foldGEP()
1187 Scale = DL->getTypeAllocSize(GEP->getSourceElementType()); in foldGEP()
1190 if (GEP->getNumIndices() != 1 || !isa<Constant>(Offsets)) in foldGEP()
1198 Offsets, Scale, GEP->getOperand(1), in foldGEP()
1199 DL->getTypeAllocSize(GEP->getSourceElementType()), Builder); in foldGEP()
1210 GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Address); in optimiseAddress() local
1211 if (!GEP) in optimiseAddress()
1214 if (GEP->hasOneUse() && isa<GetElementPtrInst>(GEP->getPointerOperand())) { in optimiseAddress()
1215 IRBuilder<> Builder(GEP->getContext()); in optimiseAddress()
1216 Builder.SetInsertPoint(GEP); in optimiseAddress()
1217 Builder.SetCurrentDebugLocation(GEP->getDebugLoc()); in optimiseAddress()
1220 Value *Base = foldGEP(GEP, Offsets, Scale, Builder); in optimiseAddress()
1225 if (Offsets && Base && Base != GEP) { in optimiseAddress()
1232 "gep.merged", GEP); in optimiseAddress()
1233 LLVM_DEBUG(dbgs() << "Folded GEP: " << *GEP in optimiseAddress()
1235 GEP->replaceAllUsesWith( in optimiseAddress()
1236 Builder.CreateBitCast(NewAddress, GEP->getType())); in optimiseAddress()
1237 GEP = NewAddress; in optimiseAddress()
1241 Changed |= optimiseOffsets(GEP->getOperand(1), GEP->getParent(), LI); in optimiseAddress()