llvm-6502/unittests/IR
Chandler Carruth 4d32e85359 [PM] Switch the downward invalidation to be incremental where only the
one function's analyses are invalidated at a time. Also switch the
preservation of the proxy to *fully* preserve the lower (function)
analyses.

Combined, this gets both upward and downward analysis invalidation to
a point I'm happy with:

- A function pass invalidates its function analyses, and its parent's
  module analyses.
- A module pass invalidates all of its functions' analyses including the
  set of which functions are in the module.
- A function pass can preserve a module analysis pass.
- If all function passes preserve a module analysis pass, that
  preservation persists. If any doesn't the module analysis is
  invalidated.
- A module pass can opt into managing *all* function analysis
  invalidation itself or *none*.
- The conservative default is none, and the proxy takes the maximally
  conservative approach that works even if the set of functions has
  changed.
- If a module pass opts into managing function analysis invalidation it
  has to propagate the invalidation itself, the proxy just does nothing.

The only thing really missing is a way to query for a cached analysis or
nothing at all. With this, function passes can more safely request
a cached module analysis pass without fear of it accidentally running
part way through.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195519 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-22 23:38:07 +00:00
..
AttributesTest.cpp Make one of the AttributeSet ctors maintain the invariant that the 2013-08-02 22:29:40 +00:00
CMakeLists.txt [PM] Start sketching out the new module and function pass manager. 2013-11-09 13:09:08 +00:00
ConstantsTest.cpp llvm/unittests: Use OwningPtr to fix --vg-leak. 2013-01-23 08:33:13 +00:00
DominatorTreeTest.cpp llvm/unittests: Use OwningPtr to fix --vg-leak. 2013-01-23 08:33:13 +00:00
InstructionsTest.cpp Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
IRBuilderTest.cpp Give unit test its own LLVMContext so MDNodes aren't leaked even if we never call llvm_shutdown. 2013-11-15 09:34:33 +00:00
LegacyPassManagerTest.cpp Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
Makefile
MDBuilderTest.cpp
MetadataTest.cpp
PassManagerTest.cpp [PM] Switch the downward invalidation to be incremental where only the 2013-11-22 23:38:07 +00:00
PatternMatch.cpp PatternMatch: Matcher for (un)ordered floating point min/max 2013-05-05 01:54:46 +00:00
TypeBuilderTest.cpp
TypesTest.cpp
ValueMapTest.cpp
ValueTest.cpp Fix getOrInsertGlobal dropping the address space. 2013-09-30 21:23:03 +00:00
VerifierTest.cpp Add calls to doInitialization() and doFinalization() in verifyFunction() 2013-10-30 22:37:51 +00:00
WaymarkTest.cpp Revert patches to add case-range support for PR1255. 2013-09-09 19:14:35 +00:00