[llvm] 9fd7a2e - [ConstraintElimination] Use constraints with 0 or 1 coefficients.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 27 10:41:44 PST 2022


Author: Florian Hahn
Date: 2022-01-27T18:41:33Z
New Revision: 9fd7a2e37917ce1aee379caa016ee6439dc30057

URL: https://github.com/llvm/llvm-project/commit/9fd7a2e37917ce1aee379caa016ee6439dc30057
DIFF: https://github.com/llvm/llvm-project/commit/9fd7a2e37917ce1aee379caa016ee6439dc30057.diff

LOG: [ConstraintElimination] Use constraints with 0 or 1 coefficients.

isConditionImplied is able to correctly handle 0 or 1 coefficients, so
let it handle those cases, rather than skipping them.

Added: 
    

Modified: 
    llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
    llvm/test/Transforms/ConstraintElimination/empty-constraint.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp b/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
index e108135d41a57..13963657d1830 100644
--- a/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+++ b/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
@@ -437,7 +437,7 @@ static bool eliminateConstraints(Function &F, DominatorTree &DT) {
         if (R.size() != 1)
           continue;
 
-        if (R.needsNewIndices(NewIndices) || R.get(0).size() == 1)
+        if (R.needsNewIndices(NewIndices))
           continue;
 
         if (CS.isConditionImplied(R.get(0).Coefficients)) {

diff  --git a/llvm/test/Transforms/ConstraintElimination/empty-constraint.ll b/llvm/test/Transforms/ConstraintElimination/empty-constraint.ll
index 07e5a20b36eb1..b7b150e242069 100644
--- a/llvm/test/Transforms/ConstraintElimination/empty-constraint.ll
+++ b/llvm/test/Transforms/ConstraintElimination/empty-constraint.ll
@@ -7,7 +7,7 @@
 define i1 @test_1_always_false(i32 %A, i32 %B) {
 ; CHECK-LABEL: @test_1_always_false(
 ; CHECK-NEXT:    [[C_1:%.*]] = icmp ugt i32 [[A:%.*]], [[A]]
-; CHECK-NEXT:    br i1 [[C_1]], label [[IF_END_I16:%.*]], label [[IF_THEN_I10:%.*]]
+; CHECK-NEXT:    br i1 false, label [[IF_END_I16:%.*]], label [[IF_THEN_I10:%.*]]
 ; CHECK:       if.then.i10:
 ; CHECK-NEXT:    ret i1 false
 ; CHECK:       if.end.i16:


        


More information about the llvm-commits mailing list