[PATCH] D16257: PM: Implement a basic loop pass manager

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 20:09:23 PST 2016


bogner created this revision.
bogner added a reviewer: chandlerc.
bogner added a subscriber: llvm-commits.
bogner set the repository for this revision to rL LLVM.
Herald added a subscriber: joker.eph.

This creates the new-style LoopPassManager and wires it up with dummy
and print passes.

TODO:
  - Is a BasicBlock name sufficient for Loop::getName(), or should we
    include the containing function's name as well?

  - LoopAnalysisManagerFunctionProxy::run could use an assert to
    ensure that we don't run Loop Analyses before the proxy is
    created, but this can't work without a good model for invalidating
    the cache between functions. Note: this is an existing issue with
    FunctionAMModuleProxy as well.

  - There is no LoopVerifierPass. This can be added later.

Repository:
  rL LLVM

http://reviews.llvm.org/D16257

Files:
  include/llvm/Analysis/LoopInfo.h
  include/llvm/Analysis/LoopPassManager.h
  include/llvm/IR/PassManager.h
  include/llvm/Passes/PassBuilder.h
  lib/Analysis/CMakeLists.txt
  lib/Analysis/LoopPassManager.cpp
  lib/Passes/PassBuilder.cpp
  lib/Passes/PassRegistry.def
  test/Other/loop-pass-ordering.ll
  test/Other/pass-pipeline-parsing.ll
  tools/opt/NewPMDriver.cpp
  unittests/Analysis/CMakeLists.txt
  unittests/Analysis/LoopPassManagerTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16257.45070.patch
Type: text/x-patch
Size: 37767 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160116/03ec7788/attachment.bin>


More information about the llvm-commits mailing list