History log of /llvm-project/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp (Results 151 – 175 of 223)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


123456789