[all-commits] [llvm/llvm-project] 75b33d: [LoopInterchange] Check phis in all subloops

CongzheUalberta via All-commits all-commits at lists.llvm.org
Thu Nov 3 21:22:02 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 75b33d6bd518f6502a63f96e79c0f4be3691b1d5
      https://github.com/llvm/llvm-project/commit/75b33d6bd518f6502a63f96e79c0f4be3691b1d5
  Author: Congzhe Cao <congzhe.cao at huawei.com>
  Date:   2022-11-04 (Fri, 04 Nov 2022)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    A llvm/test/Transforms/LoopInterchange/multilevel-partial-reduction.ll

  Log Message:
  -----------
  [LoopInterchange] Check phis in all subloops

This is the bugfix to the miscompile mentioned in
https://reviews.llvm.org/D132055#3814831. The IR
that reproduced the bug is added as the test case in
this patch.

What this patch does is that, during legality phase
instead of checking the phi nodes only in `InnerLoop`
and `OuterLoop`, we check phi nodes in all subloops
of the `OuterLoop`. Suppose if the loop nest is triply
nested, and `InnerLoop` and `OuterLoop` is the middle
loop and the outermost loop respectively, we'll check
phi nodes in the innermost loop as well, in addition to
the ones in the middle and outermost loops.

Reviewed By: Meinersbur, #loopoptwg

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




More information about the All-commits mailing list