diff options
author | Ramkumar Ramachandra <ramkumar.ramachandra@codasip.com> | 2025-07-02 15:36:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-02 15:36:27 +0100 |
commit | cbfd0d68ea5084704bd9ff0c6c51e04fa3fff4be (patch) | |
tree | 80297e615a033b1c54f9af29756896e023335718 /clang/lib/CIR/CodeGen/CIRGenModule.cpp | |
parent | 8dcdc0ff1f410897bf7b59fa31d480319d1169e7 (diff) | |
download | llvm-cbfd0d68ea5084704bd9ff0c6c51e04fa3fff4be.zip llvm-cbfd0d68ea5084704bd9ff0c6c51e04fa3fff4be.tar.gz llvm-cbfd0d68ea5084704bd9ff0c6c51e04fa3fff4be.tar.bz2 |
[HashRecognize] Rewrite arePHIsIntertwined (#144878)
The test crc8.le.tc16 is a valid CRC algorithm, but isn't recognized as
such due to a buggy arePHIsIntertwined, which is asymmetric in its
PHINode arguments. There is also a fundamental correctness issue: the
core functionality is to match a XOR that's a recurrence in both PHI
nodes, ignoring casts, but the user of the XOR is never checked. Rewrite
and rename the function.
crc8.le.tc16 is still not recognized as a valid CRC algorithm, due to an
incorrect check for loop iterations exceeding the bitwidth of the
result: in reality, it should not exceed the bitwidth of LHSAux, but we
leave this fix to a follow-up.
Co-authored-by: Piotr Fusik <p.fusik@samsung.com>
Diffstat (limited to 'clang/lib/CIR/CodeGen/CIRGenModule.cpp')
0 files changed, 0 insertions, 0 deletions