|
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 |
|
| #
13ffde31 |
| 24-Aug-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Remove dead compares after simplification.
Remove compares after replacing all uses. Cleaning dead compares can enable additional simplifications when adjusting the position of the
[ConstraintElim] Remove dead compares after simplification.
Remove compares after replacing all uses. Cleaning dead compares can enable additional simplifications when adjusting the position of the pass slightly. In particular, it seems like the additional dead instructions may prevent SimplifyCFG performing some folds.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D158760
show more ...
|
|
Revision tags: llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
| #
6c25c58a |
| 27-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Track and simplify conditions at use.
This patch updates ConstraintElimination to track uses of conditions in the worklist. This allows simplifying conditions using the context that
[ConstraintElim] Track and simplify conditions at use.
This patch updates ConstraintElimination to track uses of conditions in the worklist. This allows simplifying conditions using the context that holds directly at the condition, instead of where the condition is defined.
This allows us to catch more cases in practice: there are multiple code-size changes for CTMark while compile-time remains unchanged: https://llvm-compile-time-tracker.com/compare.php?from=4b020cca9363bebab4643f89cfa92ab2fcc7976c&to=7a6e84b8f029713c137814cd46eec775d24a54a1&stat=instructions:u
This should help to simplify D151799.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D153660
show more ...
|
|
Revision tags: 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 |
|
| #
9eda7810 |
| 06-Dec-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Fix sort order to not comparing insts in different bbs.
Update the sort order to make sure that comesBefore is never used from conditional facts, which are instructions but may use
[ConstraintElim] Fix sort order to not comparing insts in different bbs.
Update the sort order to make sure that comesBefore is never used from conditional facts, which are instructions but may use DFS numbers from different blocks.
This fixes a crash in the added test on some platforms.
show more ...
|
| #
6887cfb9 |
| 05-Dec-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Queue facts and checks directly.
This allows interleaving facts and checks in a single block. In particular this enables using facts from assumes for conditions in the same block th
[ConstraintElim] Queue facts and checks directly.
This allows interleaving facts and checks in a single block. In particular this enables using facts from assumes for conditions in the same block that come after the assume.
This could be extended to only try to simplify checks at the point where a condition is used.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D138452
show more ...
|
|
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 |
|
| #
470a975c |
| 16-Mar-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add missing dominance check.
When dealing with an unconditional branch, the condition can only added if BB properly dominates the successor.
|
| #
f473d4aa |
| 16-Mar-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Support BBs with single successor in CanAdd.
If BB has a single successor, conditions can be added safely.
|
| #
2229674c |
| 16-Mar-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add additional tests with uncond branches.
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
c60cdb44 |
| 07-Mar-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Only add cond from assume to succs if valid.
Add missing CanAdd check before adding a condition from an assume to the successor blocks. When adding information from assume to
[ConstraintElimination] Only add cond from assume to succs if valid.
Add missing CanAdd check before adding a condition from an assume to the successor blocks. When adding information from assume to successor blocks we need to perform the same CanAdd as we do for adding a condition from a branch.
Fixes https://github.com/llvm/llvm-project/issues/54217
show more ...
|
| #
12ffa9c2 |
| 07-Mar-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add test case for PR54217.
Adds test case for https://github.com/llvm/llvm-project/issues/54217.
|
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
8ebb3eac |
| 18-Nov-2021 |
Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> |
[test] Use -passes syntax when specifying pipeline in some more tests
The legacy PM is deprecated, so update a bunch of lit tests running opt to use the new PM syntax when specifying the pipeline. I
[test] Use -passes syntax when specifying pipeline in some more tests
The legacy PM is deprecated, so update a bunch of lit tests running opt to use the new PM syntax when specifying the pipeline. In this patch focus has been put on test cases for ConstantMerge, ConstraintElimination, CorrelatedValuePropagation, GlobalDCE, GlobalOpt, SCCP, TailCallElim and PredicateInfo.
Differential Revision: https://reviews.llvm.org/D114516
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
| #
aa5b6c97 |
| 26-Aug-2021 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Initial support for using info from assumes.
This patch adds initial support to use facts from @llvm.assume calls. It intentionally does not handle all possible cases to keep
[ConstraintElimination] Initial support for using info from assumes.
This patch adds initial support to use facts from @llvm.assume calls. It intentionally does not handle all possible cases to keep things simple initially.
For now, the condition from an assume is made available on entry to the containing block, if the assume is guaranteed to execute. Otherwise it is only made available in the successor blocks.
show more ...
|
| #
dd1ec869 |
| 26-Aug-2021 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add more assume tests.
|
| #
097925aa |
| 25-Aug-2021 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add test cases with @llvm.assume.
|