[PM] Add a module analysis pass proxy for the function analysis manager.
authorChandler Carruth <chandlerc@gmail.com>
Thu, 21 Nov 2013 02:11:31 +0000 (02:11 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Thu, 21 Nov 2013 02:11:31 +0000 (02:11 +0000)
commit7fac06c4233ea2769fc1b6ed4bb1d23ce538a89f
tree00caa42760cd364ffdea4fc08ca1707b44f5370c
parent7b98dd33fd9489e6cd88920a209a824b01c56207
[PM] Add a module analysis pass proxy for the function analysis manager.

This proxy will fill the role of proxying invalidation events down IR
unit layers so that when a module changes we correctly invalidate
function analyses. Currently this is a very coarse solution -- any
change blows away the entire thing -- but the next step is to make
invalidation handling more nuanced so that we can propagate specific
amounts of invalidation from one layer to the next.

The test is extended to place a module pass between two function pass
managers each of which have preserved function analyses which get
correctly invalidated by the module pass that might have changed what
functions are even in the module.

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