[llvm] [Analysis] Add Scalable field in MemoryLocation.h (PR #65759)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 20 01:03:12 PDT 2023
================
@@ -151,16 +152,18 @@ static bool isObjectSmallerThan(const Value *V, uint64_t Size,
// This function needs to use the aligned object size because we allow
// reads a bit past the end given sufficient alignment.
- uint64_t ObjectSize = getObjectSize(V, DL, TLI, NullIsValidLoc,
+ LocationSize ObjectSize = getObjectSize(V, DL, TLI, NullIsValidLoc,
/*RoundToAlign*/ true);
- return ObjectSize != MemoryLocation::UnknownSize && ObjectSize < Size;
+ // Bail on comparing V and Size if Size is scalable
+ return ObjectSize != MemoryLocation::UnknownSize && !Size.isScalable() &&
+ ObjectSize.getValue() < Size.getValue();
}
/// Return the minimal extent from \p V to the end of the underlying object,
/// assuming the result is used in an aliasing query. E.g., we do use the query
/// location size and the fact that null pointers cannot alias here.
-static uint64_t getMinimalExtentFrom(const Value &V,
+static LocationSize getMinimalExtentFrom(const Value &V,
const LocationSize &LocSize,
----------------
davemgreen wrote:
This might need a format now
https://github.com/llvm/llvm-project/pull/65759
More information about the llvm-commits
mailing list