diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp b/contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp index 85afc020dbf8..01aba47cdbff 100644 --- a/contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp +++ b/contrib/llvm-project/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp @@ -1769,7 +1769,7 @@ void DevirtModule::applyVirtualConstProp(CallSiteInfo &CSInfo, StringRef FnName, continue; auto *RetType = cast<IntegerType>(Call.CB.getType()); IRBuilder<> B(&Call.CB); - Value *Addr = B.CreateGEP(Int8Ty, Call.VTable, Byte); + Value *Addr = B.CreatePtrAdd(Call.VTable, Byte); if (RetType->getBitWidth() == 1) { Value *Bits = B.CreateLoad(Int8Ty, Addr); Value *BitsAndBit = B.CreateAnd(Bits, Bit); @@ -2066,14 +2066,14 @@ void DevirtModule::scanTypeCheckedLoadUsers(Function *TypeCheckedLoadFunc) { Value *LoadedValue = nullptr; if (TypeCheckedLoadFunc->getIntrinsicID() == Intrinsic::type_checked_load_relative) { - Value *GEP = LoadB.CreateGEP(Int8Ty, Ptr, Offset); + Value *GEP = LoadB.CreatePtrAdd(Ptr, Offset); LoadedValue = LoadB.CreateLoad(Int32Ty, GEP); LoadedValue = LoadB.CreateSExt(LoadedValue, IntPtrTy); GEP = LoadB.CreatePtrToInt(GEP, IntPtrTy); LoadedValue = LoadB.CreateAdd(GEP, LoadedValue); LoadedValue = LoadB.CreateIntToPtr(LoadedValue, Int8PtrTy); } else { - Value *GEP = LoadB.CreateGEP(Int8Ty, Ptr, Offset); + Value *GEP = LoadB.CreatePtrAdd(Ptr, Offset); LoadedValue = LoadB.CreateLoad(Int8PtrTy, GEP); } |