|
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 |
|
| #
e6a1657f |
| 27-Sep-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add A < B if A is an increasing phi for A != B.
This patch adds additional logic to add additional facts for A != B, if A is a monotonically increasing induction phi. The motivating
[ConstraintElim] Add A < B if A is an increasing phi for A != B.
This patch adds additional logic to add additional facts for A != B, if A is a monotonically increasing induction phi. The motivating use case for this is removing checks when using iterators with hardened libc++, e.g. https://godbolt.org/z/zhKEP37vG.
The patch pulls in SCEV to detect AddRecs. If possible, the patch adds the following facts for a AddRec phi PN with StartValue as incoming value from the loo preheader and B being an upper bound for PN from a condition in the loop header.
* (ICMP_UGE, PN, StartValue) * (ICMP_ULT, PN, B) [if (ICMP_ULE, StartValue, B)]
The patch also adds an optional precondition to FactOrCheck (the new DoesHold field) , which can be used to only add a fact if the precondition holds at the point the fact is added to the constraint system.
Depends on D151799.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D152730
show more ...
|
|
Revision tags: llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3 |
|
| #
9851edfc |
| 16-Aug-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add ptr phi tests without inbounds.
Extra test coverage for D152730.
|
|
Revision tags: llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
| #
cbacab26 |
| 30-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add extra tests and split up test file.
Extra tests for D152730, including more tests where the step GEP doesn't use the phi and inbounds are missing.
Also split up test file to ma
[ConstraintElim] Add extra tests and split up test file.
Extra tests for D152730, including more tests where the step GEP doesn't use the phi and inbounds are missing.
Also split up test file to make it easier to verify for Alive2.
show more ...
|
| #
c92c9462 |
| 29-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add pointer induction tests with struct types.
Extra tests for D152730.
|
| #
36999318 |
| 28-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add tests with phis and different alloc sizes/end ptrs.
Extra tests for D152730
|
| #
82aeec65 |
| 28-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add additional induction phi tests with end argument.
Extra tests for D152730 with different GEP step sizes and the end pointer being an argument.
|
| #
72c826cf |
| 27-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add additional induction phi tests.
Extra tests with different GEP step sizes for D152730.
|
|
Revision tags: llvmorg-16.0.6 |
|
| #
6162f6e9 |
| 10-Jun-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add additional monotonic phi tests.
Add extra test coverage with cases that showed mis-compiles in earlier versions of an upcoming patch. Also add tests for integer phis
|