|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, 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, 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, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, 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 <[email protected]> |
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 ...
|
| #
d9526e8a |
| 23-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Use stable_sort to sort worklist.
If there are multiple constraints in the same block, at the moment the order they are processed may be different depending on the sort imple
[ConstraintElimination] Use stable_sort to sort worklist.
If there are multiple constraints in the same block, at the moment the order they are processed may be different depending on the sort implementation.
Use stable_sort to ensure consistent ordering.
show more ...
|
| #
94ed2caf |
| 23-Jun-2022 |
Florian Hahn <[email protected]> |
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 <[email protected]> |
[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
|
| #
9a33f397 |
| 23-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Transfer info from SLT to unsigned system.
If A s< B holds, then A u< also holds, if A s>= 0.
https://alive2.llvm.org/ce/z/J4JZuN
|
| #
24a98881 |
| 23-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Transfer info from SGT to unsigned system.
If A >s B then A >=u 0, if B >=s -1.
https://alive2.llvm.org/ce/z/cncGKi
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
098b0b18 |
| 22-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Transfer info from SGE to unsigned system.
This patch adds a new transferToOtherSystem helper that tries to transfer information from signed predicates to the unsigned system
[ConstraintElimination] Transfer info from SGE to unsigned system.
This patch adds a new transferToOtherSystem helper that tries to transfer information from signed predicates to the unsigned system and vice versa.
The initial version adds A >=u B for A >=s B && B >=s 0
https://alive2.llvm.org/ce/z/8b6F9i
show more ...
|
| #
ac62b8f7 |
| 22-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Update addFact to take Predicate and ops (NFC).
This allows adding facts without necessarily having a corresponding CmpInst.
|
| #
4ea6891f |
| 21-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Remove unneeded StackEntry::Condition (NFC).
The field was only used for debug printing. Print constraint from the system instead.
|
| #
2a9313ee |
| 21-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Move logic to check condition to helper (NFC).
|
| #
6dd772d3 |
| 20-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Move logic to get a constraint to helper (NFC).
|
| #
cebe7ae8 |
| 20-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Move logic to add constraint to helper (NFC).
|
| #
bd9632af |
| 20-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Move StackEntry up, to allow use earlier (NFC).
|
| #
782e9122 |
| 14-Jun-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Support constraints with only const ops.
Remove the early exit if both constraints contain no variables. This restriction is unnecessayr for correctness and removing it simpl
[ConstraintElimination] Support constraints with only const ops.
Remove the early exit if both constraints contain no variables. This restriction is unnecessayr for correctness and removing it simplifies handling of trivial constant conditions in follow-up changes.
show more ...
|
|
Revision tags: llvmorg-14.0.5 |
|
| #
30f19382 |
| 05-Jun-2022 |
Kazu Hirata <[email protected]> |
[Scalar] Remove isValidSingle (NFC)
The last use was removed on Feb 18, 2022 in commit 00ab91b70d21f72af59e4e198c6dc819452405af.
|
|
Revision tags: llvmorg-14.0.4 |
|
| #
8e6d481f |
| 13-May-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Simplify ssub(A,B) if B s>=b && B s>=0.
A first patch to use the reasoning in ConstraintElimination to simplify sub with overflow to a regular sub, if the operation is guaran
[ConstraintElimination] Simplify ssub(A,B) if B s>=b && B s>=0.
A first patch to use the reasoning in ConstraintElimination to simplify sub with overflow to a regular sub, if the operation is guaranteed to not overflow.
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D125264
show more ...
|
|
Revision tags: llvmorg-14.0.3 |
|
| #
c59d95f6 |
| 26-Apr-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Check if const. is small enough before using it
Check if the value of a ConstantInt is small enough to be used for solving before calling getSExtValue.
Fixes #55085
|
|
Revision tags: llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
5bedc1f0 |
| 02-Apr-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Move logic to build worklist to helper (NFC).
This refactor makes it easier to extend the logic to collect information from blocks in the future, without even further increas
[ConstraintElimination] Move logic to build worklist to helper (NFC).
This refactor makes it easier to extend the logic to collect information from blocks in the future, without even further increasing the size of eliminateConstriants.
show more ...
|
| #
3dbb5eb2 |
| 29-Mar-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Move ConstraintInfo after ConstraintTy. (NFC)
Code movement to it slightly easier to use ConstraintTy & co in ConstraintInfo directly, for follow-up patches.
|
| #
8c3281db |
| 25-Mar-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Use AddOverflow for offset summation.
Fixes an incorrect transformation due to values overflowing https://alive2.llvm.org/ce/z/uizoea
|
| #
470a975c |
| 16-Mar-2022 |
Florian Hahn <[email protected]> |
[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 <[email protected]> |
[ConstraintElimination] Support BBs with single successor in CanAdd.
If BB has a single successor, conditions can be added safely.
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
e10b0ea3 |
| 08-Mar-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Remove over-eager assertion.
After moving the CanAdd check in c60cdb44f7ecb4b02ed and using it for the assume cases as well, the passed in block may not have a branch instru
[ConstraintElimination] Remove over-eager assertion.
After moving the CanAdd check in c60cdb44f7ecb4b02ed and using it for the assume cases as well, the passed in block may not have a branch instruction as terminator. This can trigger the assertion. Given the new use case, it doesn't add value any longer and can be removed.
Fixes https://github.com/llvm/llvm-project/issues/54281
show more ...
|
| #
4bbee17e |
| 07-Mar-2022 |
Florian Hahn <[email protected]> |
[ConstraintElimination] Use ZExtValue for unsigned decomposition.
When decomposing constraints for unsigned conditions, we can use negative values by zero-extending them, as long as they are less th
[ConstraintElimination] Use ZExtValue for unsigned decomposition.
When decomposing constraints for unsigned conditions, we can use negative values by zero-extending them, as long as they are less than the maximum constraint value.
Fixes https://github.com/llvm/llvm-project/issues/54224
show more ...
|
| #
c60cdb44 |
| 07-Mar-2022 |
Florian Hahn <[email protected]> |
[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 ...
|