diff options
| author | Max Kazantsev <mkazantsev@azul.com> | 2023-05-22 13:02:47 +0700 |
|---|---|---|
| committer | Max Kazantsev <mkazantsev@azul.com> | 2023-05-22 13:22:22 +0700 |
| commit | 0d95b20b63d7acc459dc0b2a7b2e4f9924c0adce (patch) | |
| tree | 6ca708bcc89224c17b2da5d6f3ccaba04d8ae544 /lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp | |
| parent | a7380fb702a69fd9fde3e6ce6107ed11449aa4ff (diff) | |
[LICM] Reassociate & hoist add expressions
This patch allows LICM to reassociate and hoist following expressions:
```
loop:
%sum = add nsw %iv, %C1
%cmp = icmp <signed pred> %sum, C2
```
where `C1` and `C2` are loop invariants. The reassociated version looks like
```
preheader:
%inv_sum = C2 - C1
...
loop:
%cmp = icmp <signed pred> %iv, %inv_sum
```
In order to prove legality, we need both initial addition and the newly created subtraction
to happen without overflow.
Differential Revision: https://reviews.llvm.org/D149132
Reviewed By: skatkov
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp')
0 files changed, 0 insertions, 0 deletions
