llvm-6502/include/llvm
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
..
ADT Make the moved-from SmallPtrSet be a valid, empty, small-state object. 2013-11-20 18:29:56 +00:00
Analysis [block-freq] Add a method to loop info for returning all loop latches for a specific loop. 2013-11-22 05:00:48 +00:00
Assembly
Bitcode Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
CodeGen Fix a typo where we were creating <def,kill> operands instead of 2013-11-22 00:46:32 +00:00
Config Update to reflect the next release. 2013-11-20 10:10:50 +00:00
DebugInfo
ExecutionEngine [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
IR [PM] Switch the downward invalidation to be incremental where only the 2013-11-22 23:38:07 +00:00
IRReader
LTO Protect user-supplied runtime library functions in LTO 2013-11-12 21:44:01 +00:00
MC Teach ISel not to optimize 'optnone' functions (revised). 2013-11-22 19:11:24 +00:00
Object Readobj: If NumbersOfSections is 0xffff, it's an COFF import library. 2013-11-15 20:23:25 +00:00
Option
Support Debug Info: add a constant for debug info version number. 2013-11-22 19:41:59 +00:00
TableGen
Target Teach ISel not to optimize 'optnone' functions (revised). 2013-11-22 19:11:24 +00:00
Transforms Add a Scalarizer pass. 2013-11-22 16:58:05 +00:00
AutoUpgrade.h Fix spacing, forward declare order. 2013-11-18 02:51:33 +00:00
CMakeLists.txt
DebugInfo.h Debug Info: move StripDebugInfo from StripSymbols.cpp to DebugInfo.cpp. 2013-11-22 22:06:31 +00:00
DIBuilder.h DebugInfo: Simplify a few more explicit constructions, underconstrained types, and make DIType(MDNode*) explicit like all the other DI* node ctors. 2013-11-18 23:33:32 +00:00
GVMaterializer.h Use error_code in GVMaterializer. 2013-11-05 19:36:34 +00:00
InitializePasses.h Add a Scalarizer pass. 2013-11-22 16:58:05 +00:00
InstVisitor.h Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
LinkAllIR.h
LinkAllPasses.h Add a Scalarizer pass. 2013-11-22 16:58:05 +00:00
Linker.h
Pass.h
PassAnalysisSupport.h
PassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
PassRegistry.h
PassSupport.h