#
2fb68c06 |
| 06-Sep-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Replace pair with named struct (NFC).
This slightly improves the readability and allows further extensions in follow-ups.
|
Revision tags: 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 ...
|
#
d9526e8a |
| 23-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[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 <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
|
#
9a33f397 |
| 23-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[ConstraintElimination] Move logic to check condition to helper (NFC).
|
#
6dd772d3 |
| 20-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Move logic to get a constraint to helper (NFC).
|
#
cebe7ae8 |
| 20-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Move logic to add constraint to helper (NFC).
|
#
bd9632af |
| 20-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Move StackEntry up, to allow use earlier (NFC).
|
#
782e9122 |
| 14-Jun-2022 |
Florian Hahn <flo@fhahn.com> |
[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 <kazu@google.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 <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.
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
e10b0ea3 |
| 08-Mar-2022 |
Florian Hahn <flo@fhahn.com> |
[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 <flo@fhahn.com> |
[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 ...
|