[llvm] a9ea02d - Recommit "[ConstraintElim] Treat ConstantPointerNull as constant offset 0."
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 23 07:56:53 PST 2023
Author: Florian Hahn
Date: 2023-11-23T15:56:37Z
New Revision: a9ea02d679b948332af111292a7d6c00ae057070
URL: https://github.com/llvm/llvm-project/commit/a9ea02d679b948332af111292a7d6c00ae057070
DIFF: https://github.com/llvm/llvm-project/commit/a9ea02d679b948332af111292a7d6c00ae057070.diff
LOG: Recommit "[ConstraintElim] Treat ConstantPointerNull as constant offset 0."
This reverts commit 58286f9c665ad4aa748779d559f2f296de704094.
Now with the test correctly updated.
Original message:
Treat ConstantPointerNull (null) as constant offset 0 in the constraint
instead of a variable. This slightly reduces the number of variables. I
was not able to find a test case where this actually caused any changes.
Added:
Modified:
llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp b/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
index 7aadd810c1da387..2c83c4ad452fffa 100644
--- a/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
@@ -455,6 +455,9 @@ static Decomposition decompose(Value *V,
if (Ty->isPointerTy() && !IsSigned) {
if (auto *GEP = dyn_cast<GEPOperator>(V))
return decomposeGEP(*GEP, Preconditions, IsSigned, DL);
+ if (isa<ConstantPointerNull>(V))
+ return int64_t(0);
+
return V;
}
diff --git a/llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll b/llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll
index 56a4b69f7425476..b8343aed8b4af75 100644
--- a/llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll
+++ b/llvm/test/Transforms/ConstraintElimination/reproducer-remarks-debug.ll
@@ -5,7 +5,7 @@
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
; CHECK: Condition %c.2 = icmp eq ptr %a, null implied by dominating constraints
-; CHECK-NEXT: %a + -1 * null <= 0
+; CHECK-NEXT: %a <= 0
; CHECK-NEXT: Creating reproducer for %c.2 = icmp eq ptr %a, null
; CHECK-NEXT: found external input ptr %a
; CHECK-NEXT: Materializing assumption icmp eq ptr %a, null
More information about the llvm-commits
mailing list