diff options
author | Max Kazantsev <mkazantsev@azul.com> | 2023-02-20 18:38:07 +0700 |
---|---|---|
committer | Max Kazantsev <mkazantsev@azul.com> | 2023-02-20 18:38:07 +0700 |
commit | 0cbb8ec030e23c0e13331b5d54155def8c901b36 (patch) | |
tree | 0597fc68b3703110cd721de2a3cbb048fccdc1a2 /llvm/test | |
parent | 3e84fc857f28479cd9574f72efcba7eb8f60d602 (diff) | |
download | llvm-0cbb8ec030e23c0e13331b5d54155def8c901b36.zip llvm-0cbb8ec030e23c0e13331b5d54155def8c901b36.tar.gz llvm-0cbb8ec030e23c0e13331b5d54155def8c901b36.tar.bz2 |
Revert "[AssumptionCache] caches @llvm.experimental.guard's"
This reverts commit f9599bbc7a3f831e1793a549d8a7a19265f3e504.
For some reason it caused us a huge compile time regression in downstream
workloads. Not sure whether the source of it is in upstream code ir not.
Temporarily reverting until investigated.
Differential Revision: https://reviews.llvm.org/D142330
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Analysis/AssumptionCache/basic.ll | 7 | ||||
-rw-r--r-- | llvm/test/Analysis/ScalarEvolution/guards.ll | 4 | ||||
-rw-r--r-- | llvm/test/Transforms/EarlyCSE/guards.ll | 5 |
3 files changed, 6 insertions, 10 deletions
diff --git a/llvm/test/Analysis/AssumptionCache/basic.ll b/llvm/test/Analysis/AssumptionCache/basic.ll index 75eb8f3..bd4e7b6 100644 --- a/llvm/test/Analysis/AssumptionCache/basic.ll +++ b/llvm/test/Analysis/AssumptionCache/basic.ll @@ -3,15 +3,12 @@ target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128" declare void @llvm.assume(i1) -declare void @llvm.experimental.guard(i1, ...) define void @test1(i32 %a) { ; CHECK-LABEL: Cached assumptions for function: test1 ; CHECK-NEXT: icmp ne i32 %{{.*}}, 0 ; CHECK-NEXT: icmp slt i32 %{{.*}}, 0 ; CHECK-NEXT: icmp sgt i32 %{{.*}}, 0 -; CHECK-NEXT: icmp ult i32 %{{.*}}, 0 -; CHECK-NEXT: icmp ugt i32 %{{.*}}, 0 entry: %cond1 = icmp ne i32 %a, 0 @@ -20,10 +17,6 @@ entry: call void @llvm.assume(i1 %cond2) %cond3 = icmp sgt i32 %a, 0 call void @llvm.assume(i1 %cond3) - %cond4 = icmp ult i32 %a, 0 - call void (i1, ...) @llvm.experimental.guard(i1 %cond4) [ "deopt"() ] - %cond5 = icmp ugt i32 %a, 0 - call void (i1, ...) @llvm.experimental.guard(i1 %cond5) [ "deopt"() ] ret void } diff --git a/llvm/test/Analysis/ScalarEvolution/guards.ll b/llvm/test/Analysis/ScalarEvolution/guards.ll index 62b387b..3922775 100644 --- a/llvm/test/Analysis/ScalarEvolution/guards.ll +++ b/llvm/test/Analysis/ScalarEvolution/guards.ll @@ -86,7 +86,7 @@ entry: loop: ; CHECK: loop: ; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 true) [ "deopt"() ] -; CHECK: %iv.inc.cmp = icmp ult i32 %iv.inc, %len +; CHECK: %iv.inc.cmp = icmp slt i32 %iv.inc, %len ; CHECK: call void (i1, ...) @llvm.experimental.guard(i1 %iv.inc.cmp) [ "deopt"() ] ; CHECK: leave: %iv = phi i32 [ 0, %entry ], [ %iv.inc, %loop ] @@ -129,7 +129,7 @@ left: be: ; CHECK: be: -; CHECK-NEXT: %iv.cmp = icmp ult i32 %iv, %len +; CHECK-NEXT: %iv.cmp = icmp slt i32 %iv, %len ; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 %iv.cmp) [ "deopt"() ] ; CHECK: leave: diff --git a/llvm/test/Transforms/EarlyCSE/guards.ll b/llvm/test/Transforms/EarlyCSE/guards.ll index 64b8a1f..e837b77 100644 --- a/llvm/test/Transforms/EarlyCSE/guards.ll +++ b/llvm/test/Transforms/EarlyCSE/guards.ll @@ -83,10 +83,13 @@ define i32 @test3.unhandled(i32 %val) { ; CHECK-LABEL: @test3.unhandled( ; CHECK-NEXT: [[COND0:%.*]] = icmp slt i32 [[VAL:%.*]], 40 ; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 [[COND0]]) [ "deopt"() ] -; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 false) [ "deopt"() ] +; CHECK-NEXT: [[COND1:%.*]] = icmp sge i32 [[VAL]], 40 +; CHECK-NEXT: call void (i1, ...) @llvm.experimental.guard(i1 [[COND1]]) [ "deopt"() ] ; CHECK-NEXT: ret i32 0 ; +; Demonstrates a case we do not yet handle (it is legal to fold %cond2 +; to false) %cond0 = icmp slt i32 %val, 40 call void(i1,...) @llvm.experimental.guard(i1 %cond0) [ "deopt"() ] %cond1 = icmp sge i32 %val, 40 |