[all-commits] [llvm/llvm-project] fa3693: [LoopNest] Handle loop-nest passes in LoopPassManager

whitneywhtsang via All-commits all-commits at lists.llvm.org
Wed Dec 16 09:07:53 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fa3693ad0b34ef1d64f49e3d3dd10865b9fb7a8b
      https://github.com/llvm/llvm-project/commit/fa3693ad0b34ef1d64f49e3d3dd10865b9fb7a8b
  Author: Whitney Tsang <whitneyt at ca.ibm.com>
  Date:   2020-12-16 (Wed, 16 Dec 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/LoopNestAnalysis.h
    M llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
    M llvm/lib/Analysis/LoopNestAnalysis.cpp
    M llvm/lib/Transforms/Scalar/LoopPassManager.cpp
    M llvm/unittests/IR/PassBuilderCallbacksTest.cpp
    M llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp

  Log Message:
  -----------
  [LoopNest] Handle loop-nest passes in LoopPassManager

Per http://llvm.org/OpenProjects.html#llvm_loopnest, the goal of this
patch (and other following patches) is to create facilities that allow
implementing loop nest passes that run on top-level loop nests for the
New Pass Manager.

This patch extends the functionality of LoopPassManager to handle
loop-nest passes by specializing the definition of LoopPassManager that
accepts both kinds of passes in addPass.

Only loop passes are executed if L is not a top-level one, and both
kinds of passes are executed if L is top-level. Currently, loop nest
passes should have the following run method:

PreservedAnalyses run(LoopNest &, LoopAnalysisManager &,
LoopStandardAnalysisResults &, LPMUpdater &);

Reviewed By: Whitney, ychen
Differential Revision: https://reviews.llvm.org/D87045




More information about the All-commits mailing list