[all-commits] [llvm/llvm-project] 239a61: [instcombine] Collapse trivial and recurrences

Philip Reames via All-commits all-commits at lists.llvm.org
Mon Mar 8 09:21:58 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 239a618180313a13bb2b4b9cf2cd3828f1487c42
      https://github.com/llvm/llvm-project/commit/239a618180313a13bb2b4b9cf2cd3828f1487c42
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueTracking.h
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/IndVarSimplify/X86/pr45360.ll
    M llvm/test/Transforms/InstCombine/recurrence.ll

  Log Message:
  -----------
  [instcombine] Collapse trivial and recurrences

If we have a recurrence of the form <Start, And, Step> we know that the value taken by the recurrence stabilizes on the first iteration (provided step is loop invariant). We can exploit that fact to remove the loop carried dependence in the recurrence.

Differential Revision: https://reviews.llvm.org/D97578 (and part)


  Commit: ebc61f9d3caaf9683be6af91c33ef029b67b9ff8
      https://github.com/llvm/llvm-project/commit/ebc61f9d3caaf9683be6af91c33ef029b67b9ff8
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-08 (Mon, 08 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/recurrence.ll

  Log Message:
  -----------
  [instcombine] Collapse trivial or recurrences

If we have a recurrence of the form <Start, Or, Step> we know that the value taken by the recurrence stabilizes on the first iteration (provided step is loop invariant). We can exploit that fact to remove the loop carried dependence in the recurrence.

Differential Revision: https://reviews.llvm.org/D97578 (or part)


Compare: https://github.com/llvm/llvm-project/compare/7a64cc4a764e...ebc61f9d3caa


More information about the All-commits mailing list