|
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6 |
|
| #
462cb3cd |
| 05-Dec-2024 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Infer nusw + nneg -> nuw for getelementptr (#111144)
If the gep is nusw (usually via inbounds) and the offset is
non-negative, we can infer nuw.
Proof: https://alive2.llvm.org/ce/z
[InstCombine] Infer nusw + nneg -> nuw for getelementptr (#111144)
If the gep is nusw (usually via inbounds) and the offset is
non-negative, we can infer nuw.
Proof: https://alive2.llvm.org/ce/z/ihztLy
show more ...
|
|
Revision tags: llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, 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 |
|
| #
90ba3309 |
| 24-Jan-2024 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Canonicalize constant GEPs to i8 source element type (#68882)
This patch canonicalizes getelementptr instructions with constant
indices to use the `i8` source element type. This makes
[InstCombine] Canonicalize constant GEPs to i8 source element type (#68882)
This patch canonicalizes getelementptr instructions with constant
indices to use the `i8` source element type. This makes it easier for
optimizations to recognize that two GEPs are identical, because they
don't need to see past many different ways to express the same offset.
This is a first step towards
https://discourse.llvm.org/t/rfc-replacing-getelementptr-with-ptradd/68699.
This is limited to constant GEPs only for now, as they have a clear
canonical form, while we're not yet sure how exactly to deal with
variable indices.
The test llvm/test/Transforms/PhaseOrdering/switch_with_geps.ll gives
two representative examples of the kind of optimization improvement we
expect from this change. In the first test SimplifyCFG can now realize
that all switch branches are actually the same. In the second test it
can convert it into simple arithmetic. These are representative of
common optimization failures we see in Rust.
Fixes https://github.com/llvm/llvm-project/issues/69841.
show more ...
|
|
Revision tags: 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, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
| #
c93e7dec |
| 27-Dec-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Convert some tests to opaque pointers (NFC)
Check lines for these were regenerated, but without any significant changes (mostly different GEP source element types).
|
| #
cd9e2ba0 |
| 27-Dec-2022 |
Nikita Popov <npopov@redhat.com> |
Revert "[InstCombine] Convert some tests to opaque pointers (NFC)"
This reverts commit 66cea84681e16f3d4ebdc69031824b114a0d5681.
I did not intend to commit all the changes in here, but only the one
Revert "[InstCombine] Convert some tests to opaque pointers (NFC)"
This reverts commit 66cea84681e16f3d4ebdc69031824b114a0d5681.
I did not intend to commit all the changes in here, but only the ones with no significant differences.
show more ...
|
| #
66cea846 |
| 27-Dec-2022 |
Nikita Popov <npopov@redhat.com> |
[InstCombine] Convert some tests to opaque pointers (NFC)
|
|
Revision tags: 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, 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, llvmorg-14.0.0-rc2, 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 |
|
| #
4016d440 |
| 05-Jan-2022 |
Philip Reames <listmail@philipreames.com> |
Precommit test for D116683
|
| #
1a97138a |
| 05-Jan-2022 |
Philip Reames <listmail@philipreames.com> |
Add test case from 356ada9
|
| #
58a0e449 |
| 05-Jan-2022 |
Philip Reames <listmail@philipreames.com> |
[instcombine] Allow sinking of calls with known writes to uses
If we have a call whose only side effect is a write to a location which is known to be dead, we can sink said call to the users of the
[instcombine] Allow sinking of calls with known writes to uses
If we have a call whose only side effect is a write to a location which is known to be dead, we can sink said call to the users of the call's result value. This is analogous to the recent changes to delete said calls if unused, but framed as a sinking transform instead.
Differential Revision: https://reviews.llvm.org/D116200
show more ...
|
| #
11a46b17 |
| 04-Jan-2022 |
Philip Reames <listmail@philipreames.com> |
precommit tests for a planned followon to D116200
|
| #
1be54bc7 |
| 04-Jan-2022 |
Philip Reames <listmail@philipreames.com> |
precommit additional tests for D116200
|
| #
da41cfdd |
| 23-Dec-2021 |
Philip Reames <listmail@philipreames.com> |
Add test coverage for D109917 and variants
|
| #
e5b23e55 |
| 23-Dec-2021 |
Philip Reames <listmail@philipreames.com> |
Autogen a test in advance of another change
|
| #
1225c8a0 |
| 08-Dec-2021 |
Anna Thomas <anna@azul.com> |
Update sink instruction testcase
Add inferable writeonly attribute. Simplify testcase.
|
| #
287fa2e1 |
| 06-Dec-2021 |
Anna Thomas <anna@azul.com> |
Update with additional tests for sinking calls to uses
Precommitted from D109917. Note that the log call is already handled by instCombine.
|