diff options
| author | Nikita Popov <npopov@redhat.com> | 2025-02-04 14:29:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-04 14:29:58 +0100 |
| commit | 3bd11b502c1846afa5e1257c94b7a70566e34686 (patch) | |
| tree | 48881f3d34110a1232ef58b254c36fcfaac36952 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h | |
| parent | 6fc66d322b00bdabc27fe8e14b27ab9bd53ba770 (diff) | |
| download | llvm-3bd11b502c1846afa5e1257c94b7a70566e34686.zip llvm-3bd11b502c1846afa5e1257c94b7a70566e34686.tar.gz llvm-3bd11b502c1846afa5e1257c94b7a70566e34686.tar.bz2 | |
[ValueTracking] Fix bit width handling in computeKnownBits() for GEPs (#125532)
For GEPs, we have three bit widths involved: The pointer bit width, the
index bit width, and the bit width of the GEP operands.
The correct behavior here is:
* We need to sextOrTrunc the GEP operand to the index width *before*
multiplying by the scale.
* If the index width and pointer width differ, GEP only ever modifies
the low bits. Adds should not overflow into the high bits.
I'm testing this via unit tests because it's a bit tricky to test in IR
with InstCombine canonicalization getting in the way.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h')
0 files changed, 0 insertions, 0 deletions
