[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