[llvm] aa731e1 - [ORC] Add ExecutorAddrRange::contains overload for ranges. (#163321)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 14 00:57:05 PDT 2025
Author: Lang Hames
Date: 2025-10-14T18:57:01+11:00
New Revision: aa731e190457eb0509548e255d69db4376209365
URL: https://github.com/llvm/llvm-project/commit/aa731e190457eb0509548e255d69db4376209365
DIFF: https://github.com/llvm/llvm-project/commit/aa731e190457eb0509548e255d69db4376209365.diff
LOG: [ORC] Add ExecutorAddrRange::contains overload for ranges. (#163321)
Can be used to test that one address range is fully contained within
another. This will be used in upcoming SimpleExecutorMemoryManager
changes.
Added:
Modified:
llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
llvm/unittests/ExecutionEngine/Orc/ExecutorAddressTest.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
index a4a7fa4be8b9c..a5f6c4f373a1e 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
@@ -272,6 +272,9 @@ struct ExecutorAddrRange {
}
bool contains(ExecutorAddr Addr) const { return Start <= Addr && Addr < End; }
+ bool contains(const ExecutorAddrRange &Other) {
+ return (Other.Start >= Start && Other.End <= End);
+ }
bool overlaps(const ExecutorAddrRange &Other) {
return !(Other.End <= Start || End <= Other.Start);
}
diff --git a/llvm/unittests/ExecutionEngine/Orc/ExecutorAddressTest.cpp b/llvm/unittests/ExecutionEngine/Orc/ExecutorAddressTest.cpp
index ae9db141bdd4a..9a37980a8428d 100644
--- a/llvm/unittests/ExecutionEngine/Orc/ExecutorAddressTest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/ExecutorAddressTest.cpp
@@ -97,10 +97,16 @@ TEST(ExecutorAddrTest, AddrRanges) {
EXPECT_FALSE(R1.contains(A0));
EXPECT_FALSE(R1.contains(A2));
+ EXPECT_TRUE(R3.contains(R0)); // True for singleton range at start.
+ EXPECT_TRUE(R3.contains(R1)); // True for singleton range at end.
+ EXPECT_FALSE(R3.contains(R2)); // False for non-overlaping singleton range.
+ EXPECT_FALSE(R3.contains(R4)); // False for overlapping, uncontained range.
+
EXPECT_FALSE(R1.overlaps(R0));
EXPECT_FALSE(R1.overlaps(R2));
EXPECT_TRUE(R1.overlaps(R3));
EXPECT_TRUE(R1.overlaps(R4));
+ EXPECT_TRUE(R3.overlaps(R4));
EXPECT_LE(R0, R0);
EXPECT_LT(R0, R1);
More information about the llvm-commits
mailing list