[all-commits] [llvm/llvm-project] cbfd0d: [HashRecognize] Rewrite arePHIsIntertwined (#144878)

Ramkumar Ramachandra via All-commits all-commits at lists.llvm.org
Wed Jul 2 07:36:49 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cbfd0d68ea5084704bd9ff0c6c51e04fa3fff4be
      https://github.com/llvm/llvm-project/commit/cbfd0d68ea5084704bd9ff0c6c51e04fa3fff4be
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2025-07-02 (Wed, 02 Jul 2025)

  Changed paths:
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/lib/Analysis/HashRecognize.cpp
    M llvm/test/Analysis/HashRecognize/cyclic-redundancy-check.ll

  Log Message:
  -----------
  [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 at samsung.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list