|
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 |
|
| #
d045e23c |
| 27-Nov-2023 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Refactor GEP offset collection.
Move GEP offset collection to separate helper function and collect variable and constant offsets in OffsetResult. For now, this only supports 1 Varia
[ConstraintElim] Refactor GEP offset collection.
Move GEP offset collection to separate helper function and collect variable and constant offsets in OffsetResult. For now, this only supports 1 VariableOffset, but the new code structure can be more easily extended to handle more offsets in the future.
The refactoring drops the check that the VariableOffset >= -1 * constant offset. This is not needed to check whether the constraint is monotonically increasing. The constant factors can be ignored, the constraint will be monotonically increasing if all variables are positive.
See https://alive2.llvm.org/ce/z/ah2uSQ, https://alive2.llvm.org/ce/z/NCADNZ
show more ...
|
|
Revision tags: 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, 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 |
|
| #
34e477e9 |
| 24-Dec-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Convert tests to use opaque pointers (NFC).
|
| #
ee605b0a |
| 01-Dec-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Use collectOffset result for chained gep support.
This slightly simplifies the code and addresses a correctness issue where the index scaling for the precondition was not considered
[ConstraintElim] Use collectOffset result for chained gep support.
This slightly simplifies the code and addresses a correctness issue where the index scaling for the precondition was not considered properly.
Thanks to @nikic for pointing that out in D137840.
show more ...
|
| #
2de8f1f6 |
| 01-Dec-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElim] Add chained GEP tests with multiple indices/diff types.
Extend test coverage for chained GEPs.
|
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4 |
|
| #
27f6091b |
| 01-Nov-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Fix nested GEP check.
At the moment, the implementation requires that the outer GEP has a single index, the inner GEP can have an arbitrary indices, because the general `deco
[ConstraintElimination] Fix nested GEP check.
At the moment, the implementation requires that the outer GEP has a single index, the inner GEP can have an arbitrary indices, because the general `decompose` helper is used.
show more ...
|
| #
d4210800 |
| 01-Nov-2022 |
Florian Hahn <flo@fhahn.com> |
[ConstraintElimination] Add tests for nested GEPs with multiple indices.
|