[PM] Lift the majority of the template boilerplate used to implement the
authorChandler Carruth <chandlerc@gmail.com>
Fri, 2 Jan 2015 23:16:59 +0000 (23:16 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 2 Jan 2015 23:16:59 +0000 (23:16 +0000)
commit87df6191777460f7594a957efad3964149bbb671
treeee094bdf76cfd2cc81381bc4614394036fac0d29
parentb5e9ce6091a0629953f2b63dd3552ddffbe90495
[PM] Lift the majority of the template boilerplate used to implement the
concept-based polymorphism in the pass manager to a separate header.

I got feedback from someone reading the code and trying to use it that
this was really making it hard to dive in and start using these APIs and
that makes a lot of sense.

This only requires a moderate amount of gymnastics to separate in this
way, namely rinsing the PreservedAnalysis object through a template
argument in a few places so that it is dependent and we only examine it
on instantiation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225094 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/PassManager.h
include/llvm/IR/PassManagerInternal.h [new file with mode: 0644]