[all-commits] [llvm/llvm-project] f70cdc: [NPM] Properly reset parent loop after loop passes

Ta-Wei Tu via All-commits all-commits at lists.llvm.org
Thu Feb 18 10:51:23 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f70cdc5b5c7c6086417409ec2d31b66144fabbc9
      https://github.com/llvm/llvm-project/commit/f70cdc5b5c7c6086417409ec2d31b66144fabbc9
  Author: Ta-Wei Tu <tu.da.wei at gmail.com>
  Date:   2021-02-19 (Fri, 19 Feb 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
    M llvm/lib/Transforms/Scalar/LoopPassManager.cpp
    A llvm/test/Transforms/Util/pr49185.ll

  Log Message:
  -----------
  [NPM] Properly reset parent loop after loop passes

This fixes https://bugs.llvm.org/show_bug.cgi?id=49185

When `NDEBUG` is not set, `LPMUpdater` checks if the added loops have the same parent loop as the current one in `addSiblingLoops`.
If multiple loop passes are executed through `LoopPassManager`, `U.ParentL` will be the same across all passes.
However, the parent loop might change after running a loop pass, resulting in assertion failures in subsequent passes.

This patch resets `U.ParentL` after running individual loop passes in `LoopPassManager`.

Reviewed By: asbirlea, ychen

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




More information about the All-commits mailing list