[PM] Teach the analysis managers to pass themselves as arguments to the
authorChandler Carruth <chandlerc@gmail.com>
Fri, 22 Nov 2013 12:11:02 +0000 (12:11 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Fri, 22 Nov 2013 12:11:02 +0000 (12:11 +0000)
commit5f347a9bd1ba861c9f243b540449761b91c4692f
tree5e4e5cd4cbe937f59b289dd1ec59ffab96b58320
parent1fe44e4beff771a09992d8502cc54fad654771e7
[PM] Teach the analysis managers to pass themselves as arguments to the
run methods of the analysis passes.

Also generalizes and re-uses the SFINAE for transformation passes so
that users can write an analysis pass and only accept an analysis
manager if that is useful to their pass.

This completes the plumbing to make an analysis manager available
through every pass's run method if desired so that passes no longer need
to be constructed around them.

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