[PATCH] [PM] Create a separate library for high-level pass management code.

Chandler Carruth chandlerc at gmail.com
Wed Mar 4 01:23:55 PST 2015


Hi dblaikie,

This will provide the analogous replacements for the PassManagerBuilder
and other code long term. This code is extracted from the opt tool
currently, and I plan to extend it as I build up support for using the
new pass manager in Clang and other places.

Mailing this out for review in part to let folks comment on the terrible names
here. A brief word about why I chose the names I did.

The library is called "Passes" to try and make it clear that it is a high-level
utility and where *all* of the passes come together and are registered in
a common library. I didn't want it to be *limited* to a registry though, the
registry is just one component.

The class is a "PassBuilder" but this name I'm less happy with. It doesn't
build passes in any traditional sense and isn't a Builder-style API at all. The
class is a PassRegisterer or PassAdder, but neither of those really make a lot
of sense. This class is responsible for constructing passes for registry in an
analysis manager or for population of a pass pipeline. If anyone has a better
name, I would love to hear it. The other candidate I looked at was
PassRegistrar, but that doesn't really fit either. There is no register of all
the passes in use, and so I think continuing the "registry" analog outside of
the registry of pass *names* and *types* is a mistake. The objects themselves
are just objects with the new pass manager.

http://reviews.llvm.org/D8054

Files:
  include/llvm/Passes/PassBuilder.h
  lib/CMakeLists.txt
  lib/LLVMBuild.txt
  lib/Makefile
  lib/Passes/CMakeLists.txt
  lib/Passes/LLVMBuild.txt
  lib/Passes/Makefile
  lib/Passes/PassBuilder.cpp
  lib/Passes/PassRegistry.def
  tools/opt/CMakeLists.txt
  tools/opt/LLVMBuild.txt
  tools/opt/NewPMDriver.cpp
  tools/opt/PassRegistry.def
  tools/opt/Passes.cpp
  tools/opt/Passes.h

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D8054.21177.patch
Type: text/x-patch
Size: 16785 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150304/c978cc43/attachment.bin>


More information about the llvm-commits mailing list