Value *CreateGEP(Value *Ptr, ArrayRef<Value *> IdxList,
const Twine &Name = "") {
- return CreateGEP(nullptr, Ptr, IdxList, Name);
+ return CreateGEP(
+ Ptr->getType()->getPointerElementType(), Ptr, IdxList, Name);
}
Value *CreateGEP(Type *Ty, Value *Ptr, ArrayRef<Value *> IdxList,
Value *CreateInBoundsGEP(Value *Ptr, ArrayRef<Value *> IdxList,
const Twine &Name = "") {
- return CreateInBoundsGEP(nullptr, Ptr, IdxList, Name);
+ return CreateInBoundsGEP(
+ Ptr->getType()->getPointerElementType(), Ptr, IdxList, Name);
}
Value *CreateInBoundsGEP(Type *Ty, Value *Ptr, ArrayRef<Value *> IdxList,
}
Value *CreateGEP(Value *Ptr, Value *Idx, const Twine &Name = "") {
- return CreateGEP(nullptr, Ptr, Idx, Name);
+ return CreateGEP(Ptr->getType()->getPointerElementType(), Ptr, Idx, Name);
}
Value *CreateGEP(Type *Ty, Value *Ptr, Value *Idx, const Twine &Name = "") {
}
Value *CreateConstGEP1_32(Value *Ptr, unsigned Idx0, const Twine &Name = "") {
- return CreateConstGEP1_32(nullptr, Ptr, Idx0, Name);
+ return CreateConstGEP1_32(
+ Ptr->getType()->getPointerElementType(), Ptr, Idx0, Name);
}
Value *CreateConstGEP1_32(Type *Ty, Value *Ptr, unsigned Idx0,
}
Value *CreateConstGEP1_64(Value *Ptr, uint64_t Idx0, const Twine &Name = "") {
- return CreateConstGEP1_64(nullptr, Ptr, Idx0, Name);
+ return CreateConstGEP1_64(
+ Ptr->getType()->getPointerElementType(), Ptr, Idx0, Name);
}
Value *CreateConstInBoundsGEP1_64(Type *Ty, Value *Ptr, uint64_t Idx0,
Value *CreateConstInBoundsGEP1_64(Value *Ptr, uint64_t Idx0,
const Twine &Name = "") {
- return CreateConstInBoundsGEP1_64(nullptr, Ptr, Idx0, Name);
+ return CreateConstInBoundsGEP1_64(
+ Ptr->getType()->getPointerElementType(), Ptr, Idx0, Name);
}
Value *CreateConstGEP2_64(Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1,
Value *CreateConstGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1,
const Twine &Name = "") {
- return CreateConstGEP2_64(nullptr, Ptr, Idx0, Idx1, Name);
+ return CreateConstGEP2_64(
+ Ptr->getType()->getPointerElementType(), Ptr, Idx0, Idx1, Name);
}
Value *CreateConstInBoundsGEP2_64(Type *Ty, Value *Ptr, uint64_t Idx0,
Value *CreateConstInBoundsGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1,
const Twine &Name = "") {
- return CreateConstInBoundsGEP2_64(nullptr, Ptr, Idx0, Idx1, Name);
+ return CreateConstInBoundsGEP2_64(
+ Ptr->getType()->getPointerElementType(), Ptr, Idx0, Idx1, Name);
}
Value *CreateStructGEP(Type *Ty, Value *Ptr, unsigned Idx,
}
Value *CreateStructGEP(Value *Ptr, unsigned Idx, const Twine &Name = "") {
- return CreateConstInBoundsGEP2_32(nullptr, Ptr, 0, Idx, Name);
+ return CreateConstInBoundsGEP2_32(
+ Ptr->getType()->getPointerElementType(), Ptr, 0, Idx, Name);
}
/// Same as CreateGlobalString, but return a pointer with "i8*" type
Value *Ptr, ArrayRef<Value *> IdxList, const Twine &NameStr = "",
Instruction *InsertBefore = nullptr),
"Use the version with explicit element type instead") {
- return CreateInBounds(nullptr, Ptr, IdxList, NameStr, InsertBefore);
+ return CreateInBounds(Ptr->getType()->getPointerElementType(), Ptr, IdxList,
+ NameStr, InsertBefore);
}
/// Create an "inbounds" getelementptr. See the documentation for the
Value *Ptr, ArrayRef<Value *> IdxList, const Twine &NameStr,
BasicBlock *InsertAtEnd),
"Use the version with explicit element type instead") {
- return CreateInBounds(nullptr, Ptr, IdxList, NameStr, InsertAtEnd);
+ return CreateInBounds(Ptr->getType()->getPointerElementType(), Ptr, IdxList,
+ NameStr, InsertAtEnd);
}
static GetElementPtrInst *CreateInBounds(Type *PointeeType, Value *Ptr,