[llvm] [LVI] Handle nonnull attributes at callsite (PR #125377)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 2 21:59:46 PST 2025
================
@@ -622,10 +622,12 @@ LazyValueInfoImpl::solveBlockValueImpl(Value *Val, BasicBlock *BB) {
return getFromRangeMetadata(BBI);
}
-static void AddNonNullPointer(Value *Ptr, NonNullPointerSet &PtrSet) {
+static void AddNonNullPointer(Value *Ptr, NonNullPointerSet &PtrSet,
+ bool IsDereferenced = true) {
// TODO: Use NullPointerIsDefined instead.
if (Ptr->getType()->getPointerAddressSpace() == 0)
- PtrSet.insert(getUnderlyingObject(Ptr));
+ PtrSet.insert(IsDereferenced ? getUnderlyingObject(Ptr)
+ : Ptr->stripInBoundsOffsets());
----------------
dtcxzyw wrote:
It is worse than `getUnderlyingObject`.
https://github.com/llvm/llvm-project/pull/125377
More information about the llvm-commits
mailing list