[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