1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00

[IR] Make some pointer element type accesses explicit (NFC)

Explicitly fetch the pointer element type in various deprecated
methods, so we can hopefully remove support from this from the
base GEP constructor.
This commit is contained in:
Nikita Popov 2021-07-07 21:56:32 +02:00
parent 017a58dbae
commit aec8b8bed1
2 changed files with 21 additions and 11 deletions

View File

@ -1786,7 +1786,8 @@ public:
Value *CreateGEP(Value *Ptr, ArrayRef<Value *> IdxList, Value *CreateGEP(Value *Ptr, ArrayRef<Value *> IdxList,
const Twine &Name = "") { 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 *CreateGEP(Type *Ty, Value *Ptr, ArrayRef<Value *> IdxList,
@ -1805,7 +1806,8 @@ public:
Value *CreateInBoundsGEP(Value *Ptr, ArrayRef<Value *> IdxList, Value *CreateInBoundsGEP(Value *Ptr, ArrayRef<Value *> IdxList,
const Twine &Name = "") { 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 *CreateInBoundsGEP(Type *Ty, Value *Ptr, ArrayRef<Value *> IdxList,
@ -1824,7 +1826,7 @@ public:
} }
Value *CreateGEP(Value *Ptr, Value *Idx, const Twine &Name = "") { 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 *CreateGEP(Type *Ty, Value *Ptr, Value *Idx, const Twine &Name = "") {
@ -1843,7 +1845,8 @@ public:
} }
Value *CreateConstGEP1_32(Value *Ptr, unsigned Idx0, 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_32(Type *Ty, Value *Ptr, unsigned Idx0,
@ -1903,7 +1906,8 @@ public:
} }
Value *CreateConstGEP1_64(Value *Ptr, uint64_t Idx0, const Twine &Name = "") { 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(Type *Ty, Value *Ptr, uint64_t Idx0,
@ -1918,7 +1922,8 @@ public:
Value *CreateConstInBoundsGEP1_64(Value *Ptr, uint64_t Idx0, Value *CreateConstInBoundsGEP1_64(Value *Ptr, uint64_t Idx0,
const Twine &Name = "") { 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(Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1,
@ -1936,7 +1941,8 @@ public:
Value *CreateConstGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1, Value *CreateConstGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1,
const Twine &Name = "") { 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(Type *Ty, Value *Ptr, uint64_t Idx0,
@ -1954,7 +1960,8 @@ public:
Value *CreateConstInBoundsGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1, Value *CreateConstInBoundsGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1,
const Twine &Name = "") { 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(Type *Ty, Value *Ptr, unsigned Idx,
@ -1963,7 +1970,8 @@ public:
} }
Value *CreateStructGEP(Value *Ptr, unsigned Idx, const Twine &Name = "") { 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 /// Same as CreateGlobalString, but return a pointer with "i8*" type

View File

@ -991,7 +991,8 @@ public:
Value *Ptr, ArrayRef<Value *> IdxList, const Twine &NameStr = "", Value *Ptr, ArrayRef<Value *> IdxList, const Twine &NameStr = "",
Instruction *InsertBefore = nullptr), Instruction *InsertBefore = nullptr),
"Use the version with explicit element type instead") { "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 /// Create an "inbounds" getelementptr. See the documentation for the
@ -1010,7 +1011,8 @@ public:
Value *Ptr, ArrayRef<Value *> IdxList, const Twine &NameStr, Value *Ptr, ArrayRef<Value *> IdxList, const Twine &NameStr,
BasicBlock *InsertAtEnd), BasicBlock *InsertAtEnd),
"Use the version with explicit element type instead") { "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, static GetElementPtrInst *CreateInBounds(Type *PointeeType, Value *Ptr,