|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3 |
|
| #
68adc028 |
| 10-Feb-2023 |
Yingchi Long <i@lyc.dev> |
[InstCombine][NFC] regenerate tests for simple_phi_condition.ll
|
|
Revision tags: llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5 |
|
| #
4fb3fd7d |
| 30-May-2022 |
Danila Malyutin <dmalyutin@azul.com> |
[InstCombine] Fix const folding of switches with default case
In case phi was in the default block it could lead to multi-edge. Fixes #55721.
Differential Revision: https://reviews.llvm.org/D126650
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
4010a7a5 |
| 02-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
Reapply [InstCombine] Support switch in phi to cond fold
Reapply with an explicit check for multi-edges, as the expected behavior of multi-edge dominance is unclear (D120811).
-----
For conditiona
Reapply [InstCombine] Support switch in phi to cond fold
Reapply with an explicit check for multi-edges, as the expected behavior of multi-edge dominance is unclear (D120811).
-----
For conditional branches, we know the value is i1 0 or i1 1 along the outgoing edges. For switches we can apply exactly the same optimization, just with the known values determined by the switch cases.
show more ...
|
| #
5555252b |
| 02-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Add additional test for phi to switch cond fold (NFC)
This test exposes a bug in the edge dominance implementation.
|
| #
5cf06d10 |
| 02-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
Revert "[InstCombine] Support switch in phi to cond fold"
This reverts commit 0817ce86b540f909eade6a8d7370e1b47e863a70.
Seeing some ppc64le stage2 failures, reverting to investigate.
|
| #
0817ce86 |
| 02-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Support switch in phi to cond fold
For conditional branches, we know the value is i1 0 or i1 1 along the outgoing edges. For switches we can apply exactly the same optimization, just w
[InstCombine] Support switch in phi to cond fold
For conditional branches, we know the value is i1 0 or i1 1 along the outgoing edges. For switches we can apply exactly the same optimization, just with the known values determined by the switch cases.
show more ...
|
| #
85491fb6 |
| 02-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Add tests for phi to cond with switch (NFC)
Currently we only handle br but not switch in this fold.
|
|
Revision tags: llvmorg-14.0.0-rc2 |
|
| #
a1f442b2 |
| 01-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Support phi to cond fold with more than two preds
This transform can still be applied if there are more than two phi inputs, as long as phi inputs with the same value are dominated by
[InstCombine] Support phi to cond fold with more than two preds
This transform can still be applied if there are more than two phi inputs, as long as phi inputs with the same value are dominated by the same idom edge.
show more ...
|
| #
0bb698a2 |
| 01-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Add additional test for phi to condition fold (NFC)
This one does not have an intermediate block for the true branch, and demonstrates the importance of using edge dominance.
|
| #
a968bee0 |
| 01-Mar-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Add more tests for phi to cond fold (NFC)
These have more than two predecessors.
|
|
Revision tags: llvmorg-14.0.0-rc1 |
|
| #
acdc419c |
| 04-Feb-2022 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
[test] Use -passes=instcombine instead of -instcombine in lots of tests. NFC
Another step moving away from the deprecated syntax of specifying pass pipeline in opt.
Differential Revision: https://r
[test] Use -passes=instcombine instead of -instcombine in lots of tests. NFC
Another step moving away from the deprecated syntax of specifying pass pipeline in opt.
Differential Revision: https://reviews.llvm.org/D119081
show more ...
|
|
Revision tags: llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1 |
|
| #
90798e09 |
| 16-Jul-2020 |
Max Kazantsev <mkazantsev@azul.com> |
Re-enable "[InstCombine] Simplify boolean Phis with const inputs using CFG"
This reverts commit b893822e32ffe3c1dcf4d5ac0571a282582d72b2.
+ Clang test fixes + Insertion point fix for landing pads
|
| #
b893822e |
| 16-Jul-2020 |
Max Kazantsev <mkazantsev@azul.com> |
Revert "[InstCombine] Simplify boolean Phis with const inputs using CFG"
This reverts commit 00472067c34ccbceb2fad4b905524f3c780bb7d5.
Need to fix failing clang tests.
|
| #
00472067 |
| 16-Jul-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[InstCombine] Simplify boolean Phis with const inputs using CFG
This patch adds simplification for pattern: ``` if (cond) / \ ... ... \ / p = phi [true] [false] ... br p, suc
[InstCombine] Simplify boolean Phis with const inputs using CFG
This patch adds simplification for pattern: ``` if (cond) / \ ... ... \ / p = phi [true] [false] ... br p, succ_1, succ_2 ``` If we can prove that top block's branches dominate respective inputs of a block that has a Phi with constant inputs, we can use the branch condition (maybe inverted) instead of Phi. This will make proofs of implication for further jump threading more transparent.
Differential Revision: https://reviews.llvm.org/D81375 Reviewed By: xbolva00
show more ...
|
|
Revision tags: llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
005db9c3 |
| 08-Jun-2020 |
Max Kazantsev <mkazantsev@azul.com> |
[Test] Add test showing InstCombine missing simplification opportunity
|