|
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, llvmorg-16.0.6, llvmorg-16.0.5 |
|
| #
d2502eb0 |
| 22-May-2023 |
Nikita Popov <npopov@redhat.com> |
[KnownBits] Add support for nuw/nsw on shifts
Implement precise nuw/nsw support in the KnownBits implementation, replacing the rather crude handling in ValueTracking.
Differential Revision: https:/
[KnownBits] Add support for nuw/nsw on shifts
Implement precise nuw/nsw support in the KnownBits implementation, replacing the rather crude handling in ValueTracking.
Differential Revision: https://reviews.llvm.org/D151208
show more ...
|
|
Revision tags: 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, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3 |
|
| #
aec0c100 |
| 16-Oct-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Replace custom GEP index handling by using existing code
Instead of duplicating the existing decomposition code for GEP indices just use the existing code by calling the existing de
[ConstraintElim] Replace custom GEP index handling by using existing code
Instead of duplicating the existing decomposition code for GEP indices just use the existing code by calling the existing decompose function on the index expression and multiply the result's coefficients by the scale of the index.
This both reduces code duplication and generalizes the pattern we can handle.
show more ...
|
| #
fee8f561 |
| 09-Oct-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Include index type scale.
The current decomposition for GEPs did not correctly handle cases where GEPs access different source types. Adjust the constraints by including the
[ConstraintElimination] Include index type scale.
The current decomposition for GEPs did not correctly handle cases where GEPs access different source types. Adjust the constraints by including the indexed type-size as coefficients.
Further generalization to allow GEPs with more than one index is a needed general follow-up improvement.
show more ...
|
| #
c5e1ddb6 |
| 06-Oct-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Update tests to use opaque pointers.
|
|
Revision tags: 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 |
|
| #
92f87787 |
| 24-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
Recommit "[ConstraintElimination] Transfer info from ULT to signed system."
This reverts commit 94ed2caf708818dd3a0b376bbce56e53c0956f1e.
The issue with no-determinism with the test has been fixed
Recommit "[ConstraintElimination] Transfer info from ULT to signed system."
This reverts commit 94ed2caf708818dd3a0b376bbce56e53c0956f1e.
The issue with no-determinism with the test has been fixed in d9526e8a52ca9d5.
show more ...
|
| #
94ed2caf |
| 23-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
Revert "[ConstraintElimination] Transfer info from ULT to signed system."
This reverts commit 316e106f49c4c86f3485d69d1539e2aed12251c0.
This breaks a bot with expensive checks.
|
| #
316e106f |
| 23-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Transfer info from ULT to signed system.
If A u< B holds, then A s>= 0 && A s< B holds if B s>= 0.
https://alive2.llvm.org/ce/z/RrNxHh
|
|
Revision tags: 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 |
|
| #
06f3ef66 |
| 04-Feb-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Allow adding pre-conditions for constraints.
With this patch pre-conditions can be added to a list of constraints. Constraints with pre-conditions can only be used if all pre
[ConstraintElimination] Allow adding pre-conditions for constraints.
With this patch pre-conditions can be added to a list of constraints. Constraints with pre-conditions can only be used if all pre-conditions are satisfied when the constraint is used.
The pre-conditions at the moment are specified as a list of (Predicate, Value *,Value *) tuples. This allow easily checking them like any other condition, using the existing infrastructure.
This then is used to limit GEP decomposition to cases where we can prove that offsets are signed positive.
This fixes a couple of incorrect transforms where GEP offsets where assumed to be signed positive, but they were not.
Note that this effectively disables GEP decomposition, as there's no support for reasoning about signed predicates. D118806 adds initial signed support.
Fixes PR49624.
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D118799
show more ...
|
| #
49d6e3eb |
| 02-Feb-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add tests with signed predicates and GEPs.
|