[all-commits] [llvm/llvm-project] 0c01b3: Generalize getInvertibleOperand recurrence handlin...

Philip Reames via All-commits all-commits at lists.llvm.org
Wed Apr 28 14:38:35 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0c01b37eeb18a51a7e9c9153330d8009de0f600e
      https://github.com/llvm/llvm-project/commit/0c01b37eeb18a51a7e9c9153330d8009de0f600e
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-28 (Wed, 28 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-non-equal.ll

  Log Message:
  -----------
  Generalize getInvertibleOperand recurrence handling slightly

Follow up to D99912, specifically the revert, fix, and reapply thereof.

This generalizes the invertible recurrence logic in two ways:
* By allowing mismatching operand numbers of the phi, we can recurse through a pair of phi recurrences whose operand orders have not been canonicalized.
* By allowing recurrences through operand 1, we can invert these odd (but legal) recurrence.

Differential Revision: https://reviews.llvm.org/D100884




More information about the All-commits mailing list