diff options
author | Nikita Popov <npopov@redhat.com> | 2023-05-31 16:09:06 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2023-06-14 09:12:30 +0200 |
commit | f7a977c7b3b4d8efebb92ed803585168df369831 (patch) | |
tree | 09fffc42c122461e6e220b337e7c1c759663d64d /llvm/test/Other/print-debug-counter.ll | |
parent | 804306b382152017861f6cacc54d3d4d4c2e9076 (diff) |
[InstCombine] Revisit user of newly one-use instructions
Many folds in InstCombine are limited to one-use instructions. For
that reason, if the use-count of an instruction drops to one, it
makes sense to revisit that one user. This is one of the most
common reasons why InstCombine fails to finish in a single iteration.
Doing this revisit actually slightly improves compile-time, because
we save an extra InstCombine iteration in enough cases to make a
visible difference.
This is conceptually NFC, but not NFC in practice, because differences
in worklist order can result in slightly different folding behavior.
The regressed tests in or-shifted-masks.ll now require a sequence of
instcombine,early-cse,instcombine to fold fully. D152876 would make
these fold in a single instcombine run again.
Differential Revision: https://reviews.llvm.org/D151807
Diffstat (limited to 'llvm/test/Other/print-debug-counter.ll')
-rw-r--r-- | llvm/test/Other/print-debug-counter.ll | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/Other/print-debug-counter.ll b/llvm/test/Other/print-debug-counter.ll index ac9882fe19c5..4b6e42570b31 100644 --- a/llvm/test/Other/print-debug-counter.ll +++ b/llvm/test/Other/print-debug-counter.ll @@ -8,7 +8,7 @@ ; CHECK: early-cse ; CHECK-SAME: {4,1,1} ; CHECK: instcombine-visit -; CHECK-SAME: {12,0,-1} +; CHECK-SAME: {13,0,-1} ; CHECK: newgvn-vn ; CHECK-SAME: {9,1,2} define i32 @f1(i32 %a, i32 %b) { |