Sanjay Patel
85b289377b
[SCCP] convert signed div/rem to unsigned for non-negative operands, 2nd try
...
The original commit ( fe1f3cfc2669 ) was reverted because it could
crash / assert when trying to fold a value that was replaced
by a constant. In that case, there might not be an entry for the
constant in the solver yet.
This version adds a check for that possibility along with tests to
exercise that pattern (they used to crash).
Original commit message:
This extends the transform added with D81756 to handle div/rem opcodes.
For example:
https://alive2.llvm.org/ce/z/cX6za6
This replicates part of what CVP already does, but the motivating example
from issue #57472 demonstrates a phase ordering problem - we convert
branches to select before CVP runs and miss the transform.
Differential Revision: https://reviews.llvm.org/D133198
2022-09-07 11:56:29 -04:00
..
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2020-12-17 01:03:49 +03:00
2021-11-27 09:52:55 +01:00
2020-12-17 01:03:49 +03:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-30 09:25:03 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-30 09:25:03 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-01-04 15:23:09 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-09-07 11:56:29 -04:00
2021-11-27 09:52:55 +01:00
2021-07-26 16:35:14 +02:00
2022-04-03 11:52:38 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-07 10:20:24 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-03-18 11:02:15 -07:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-09-07 11:56:29 -04:00
2022-09-07 11:56:29 -04:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-04-23 12:09:29 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-22 10:28:27 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-07 10:20:24 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-22 10:28:27 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-07-01 09:14:37 +02:00
2021-11-27 09:52:55 +01:00
2021-05-07 21:51:47 -07:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-03-14 14:59:32 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-03-09 10:46:51 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-07-01 09:14:37 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-30 09:25:03 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-05-17 22:06:03 +00:00
2022-04-23 12:09:29 +01:00
2021-11-27 09:52:55 +01:00
2022-06-07 10:20:24 +02:00
2021-10-11 13:12:08 -07:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-22 10:28:27 +02:00
2021-11-27 09:52:55 +01:00
2022-06-30 09:25:03 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-30 09:25:03 +02:00
2022-06-30 09:25:03 +02:00
2021-11-27 09:52:55 +01:00
2022-06-22 10:28:27 +02:00
2021-11-27 09:52:55 +01:00
2022-06-22 10:28:27 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-07-14 10:05:56 +02:00
2021-11-27 09:52:55 +01:00
2021-11-27 09:52:55 +01:00
2022-06-30 09:25:03 +02:00