Max Kazantsev
dd0cf23e4a
[LICM] Reassociate & hoist sub expressions
...
LICM could reassociate mixed variant/invariant comparison/arithmetic operations
and hoist invariant parts out of loop if it can prove that they can be computed
without overflow. Motivating example here:
```
INV1 - VAR1 < INV2
```
can be turned into
```
VAR > INV1 - INV2
```
if we can prove no-signed-overflow here. Then `INV1 - INV2` can be computed
out of loop, so we save one arithmetic operation in-loop.
Reviewed By: skatkov
Differential Revision: https://reviews.llvm.org/D148001
2023-05-29 12:52:43 +07:00
..
2023-05-17 17:03:15 +02:00
2023-05-17 17:03:15 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-07 14:54:34 -07:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-01-31 11:48:35 +01:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-03-17 17:17:13 +01:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-01-23 12:11:33 +01:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-08 02:38:45 +03:00
2023-04-28 17:53:39 +07:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-04-11 11:55:54 +02:00
2022-12-20 10:02:46 +01:00
2023-05-29 12:52:43 +07:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-04-20 14:17:15 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-20 18:36:42 +03:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2023-04-26 09:26:47 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-02-26 12:41:41 -05:00
2022-12-20 10:02:46 +01:00
2023-01-31 11:48:35 +01:00
2022-10-05 16:47:53 +02:00
2022-06-28 00:08:37 -04:00
2022-03-06 11:16:22 +00:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-03-13 14:34:43 +07:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-04-28 14:31:23 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-04-26 09:26:47 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-07 14:54:34 -07:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 09:51:35 +01:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-10-05 16:47:53 +02:00
2023-04-03 14:20:06 +02:00
2022-12-07 20:53:15 +03:00
2022-12-20 10:02:46 +01:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-04-26 09:26:47 +02:00
2022-12-07 20:53:15 +03:00
2023-04-28 14:31:23 +02:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2023-04-28 14:31:23 +02:00
2023-05-09 19:11:21 -05:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-12-01 21:17:18 +03:00