[PM] Factor the overwhelming majority of the interface boiler plate out
authorChandler Carruth <chandlerc@gmail.com>
Tue, 26 Nov 2013 11:24:37 +0000 (11:24 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Tue, 26 Nov 2013 11:24:37 +0000 (11:24 +0000)
commit0dd9c5f9e4e1eb23d0aa1b703007be0911606ffd
tree0068cc37973503e648a038f470a096d1755a4957
parent396e080b3467ccdcbbfb908f9405e7dd134d5c8a
[PM] Factor the overwhelming majority of the interface boiler plate out
of the two analysis managers into a CRTP base class that can be shared
and re-used in building any analysis manager. This will in turn simplify
adding yet another analysis manager to the system.

The base class provides all of the interface sugar for the analysis
manager delegating the functionality back through DerivedT methods which
operate on simple pass IDs. It also provides the pass registration,
storage, and lookup system which is common across the various
formulations of analysis managers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195747 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/PassManager.h
lib/IR/PassManager.cpp