diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2023-01-22 22:25:38 +0300 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2023-01-22 23:28:02 +0300 |
commit | 0cdf030cf8dcfb8bfe551c16b14a29e124497069 (patch) | |
tree | 31a2e105244d9163e940a714107fe91c25325d08 /llvm/lib/CodeGen/CodeGenPrepare.cpp | |
parent | 4f9f0b480fbcbfafa3805e5a7ff319546a30780e (diff) | |
download | llvm-0cdf030cf8dcfb8bfe551c16b14a29e124497069.zip llvm-0cdf030cf8dcfb8bfe551c16b14a29e124497069.tar.gz llvm-0cdf030cf8dcfb8bfe551c16b14a29e124497069.tar.bz2 |
[SCEV] `getRangeRefIter()`: don't forget to recurse into casts
I'm not really sure the problem can be nicely exposed via a lit test,
since we don't give up on range calculation for deeply nested ranges,
but if i add an assertion that those opcodes are never encountered,
the assertion fails in a number of existing tests.
In reality, the iterative approach is still pretty partial:
1. `Seen` should not be there. We want the last instance of expression, not the first one
2. There should be a check that `getRangeRefIter()` does not self-recurse
Diffstat (limited to 'llvm/lib/CodeGen/CodeGenPrepare.cpp')
0 files changed, 0 insertions, 0 deletions