9 Commits

Author SHA1 Message Date
Nikita Popov
c9e7049754 [JumpThreading] Look through freeze in getPredicateAt() fold
This code is valid for any icmp, so we can safely look through a
freeze when trying to find one.

A caveat here is that replaceFoldableUses() may not end up replacing
any uses in this case. It might make sense to use the freeze as the
context instruction (rather than the terminator) if there is a
freeze, to ensure that it always gets folded. This would require
some changes to how replaceFoldedUses() works though, as it
currently assumes that the value is valid at the end of the block.
2022-05-18 12:09:59 +02:00
Nikita Popov
bdf25477f6 [JumpThreading] Add additional freeze tests (NFC)
These are for the getPredicateAt() codepath.
2022-05-18 12:03:15 +02:00
Juneyoung Lee
998c0efee0 [JumpThreading] Update test freeze.ll; NFC 2020-08-04 20:27:54 +09:00
Juneyoung Lee
6f97103b56 [JumpThreading] Don't limit the type of an operand
Compared to the optimized code with branch conditions never frozen,
limiting the type of freeze's operand causes generation of suboptimal code in
some cases.
I would like to suggest removing the constraint, as this patch does.
If the number of freeze instructions becomes significant, this can be revisited.

Differential Revision: https://reviews.llvm.org/D84949
2020-08-04 16:21:58 +09:00
Juneyoung Lee
111a02decd [JumpThreading] Fold br(freeze(undef))
This patch makes JumpThreading fold br(freeze(undef)) if the freeze instruction
is only used by the branch.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D84818
2020-07-30 09:38:50 +09:00
Juneyoung Lee
4c9af6d0e0 [JumpThreading] Add a basic support for freeze instruction
This patch adds a basic support for freeze instruction to JumpThreading
by making ComputeValueKnownInPredecessorsImpl look into its operand.

Reviewed By: efriedma, nikic

Differential Revision: https://reviews.llvm.org/D84598
2020-07-29 03:12:14 +09:00
Juneyoung Lee
4887495a3e [JumpThreading] Add tests that have a cast of freeze and vice versa 2020-07-29 02:16:44 +09:00
Juneyoung Lee
6701c0bf73 [JumpThreading] Add a test case that has a phi with undef; NFC 2020-07-27 19:08:45 +09:00
Juneyoung Lee
920e267974 [JumpThreading] Add a test for D84598; NFC 2020-07-26 22:00:01 +09:00