summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2023-03-20 13:41:49 -0700
committerPhilip Reames <listmail@philipreames.com>2023-03-20 13:47:21 -0700
commit091422adc1d7478b126a967c795414840c5c0c97 (patch)
tree273d08d5425cdc1ec0149bd483cda562c70331a2 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp
parenteecb8c5f06149baf970fa0943e9fb9a6afe00207 (diff)
[LSR] Fix wrapping bug in lsr-term-fold logic
The existing logic was unsound, in two ways. First, due to wrapping on the trip count computation, it could compute a value which convert a loop which exiting on iteration 256, to one which exited at 255. (With i8 trip counts.) Second, it allowed rewriting when the trip count implies wrapping around the alternate IV. As a trivial example, it allowed rewriting an i128 exit test in terms of an i64 IV. This is obviously wrong. Note that the test change is fairly minimal - i.e. only the targeted test - but that's only because I precommitted a change which switched the test from 32 to 64 bit pointers. For 32 bit point architectures with 32 bit primary inductions, this transform is almost always unsound to perform. Differential Revision: https://reviews.llvm.org/D146429
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp')
0 files changed, 0 insertions, 0 deletions