[llvm] e776265 - [Attributor] Avoid some pointer element type accesses
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 21 02:20:18 PST 2022
Author: Nikita Popov
Date: 2022-01-21T11:20:10+01:00
New Revision: e7762653d3b071dfb86d4e2d3bcf7c1455683d37
URL: https://github.com/llvm/llvm-project/commit/e7762653d3b071dfb86d4e2d3bcf7c1455683d37
DIFF: https://github.com/llvm/llvm-project/commit/e7762653d3b071dfb86d4e2d3bcf7c1455683d37.diff
LOG: [Attributor] Avoid some pointer element type accesses
Added:
Modified:
llvm/lib/Transforms/IPO/AttributorAttributes.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
index 0723402c19ee0..d0e13dc269385 100644
--- a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+++ b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
@@ -1216,7 +1216,7 @@ struct AAPointerInfoFloating : public AAPointerInfoImpl {
}
UsrOI.Offset = PtrOI.Offset +
DL.getIndexedOffsetInType(
- CurPtr->getType()->getPointerElementType(), Indices);
+ GEP->getSourceElementType(), Indices);
Follow = true;
return true;
}
@@ -6650,9 +6650,10 @@ struct AAPrivatizablePtrArgument final : public AAPrivatizablePtrImpl {
IRBuilder<NoFolder> IRB(IP);
const DataLayout &DL = IP->getModule()->getDataLayout();
- if (Base->getType()->getPointerElementType() != PrivType)
- Base = BitCastInst::CreateBitOrPointerCast(Base, PrivType->getPointerTo(),
- "", ACS.getInstruction());
+ Type *PrivPtrType = PrivType->getPointerTo();
+ if (Base->getType() != PrivPtrType)
+ Base = BitCastInst::CreateBitOrPointerCast(Base, PrivPtrType, "",
+ ACS.getInstruction());
// Traverse the type, build GEPs and loads.
if (auto *PrivStructType = dyn_cast<StructType>(PrivType)) {
@@ -6794,7 +6795,7 @@ struct AAPrivatizablePtrFloating : public AAPrivatizablePtrImpl {
if (auto *AI = dyn_cast<AllocaInst>(Obj))
if (auto *CI = dyn_cast<ConstantInt>(AI->getArraySize()))
if (CI->isOne())
- return Obj->getType()->getPointerElementType();
+ return AI->getAllocatedType();
if (auto *Arg = dyn_cast<Argument>(Obj)) {
auto &PrivArgAA = A.getAAFor<AAPrivatizablePtr>(
*this, IRPosition::argument(*Arg), DepClassTy::REQUIRED);
More information about the llvm-commits
mailing list