llvm-6502/unittests
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
Bitcode
CodeGen DIEHash: Summary hashing of member functions 2013-10-25 20:04:25 +00:00
DebugInfo DWARF parser: propery handle DW_FORM_ref_sig8 and fix Windows build. 2013-10-29 16:32:19 +00:00
ExecutionEngine [weak vtables] Place class definitions into anonymous namespaces to prevent weak vtables. 2013-11-19 03:08:35 +00:00
IR [PM] Switch the downward invalidation to be incremental where only the 2013-11-22 23:38:07 +00:00
MC Fix MCDataAtom never calling remap when adding data. 2013-10-16 18:26:16 +00:00
Object
Option Option parsing: support case-insensitive option matching. 2013-08-28 20:04:31 +00:00
Support [block-freq] Update data in test case to be unsigned long long to fix mingw build. 2013-11-22 05:00:51 +00:00
Transforms Add support for software expansion of 64-bit integer division instructions. 2013-11-19 06:54:19 +00:00
CMakeLists.txt Fix MCDataAtom never calling remap when adding data. 2013-10-16 18:26:16 +00:00
Makefile Revert "Move copying of global initializers below the cloning of functions." 2013-11-09 00:43:18 +00:00
Makefile.unittest