1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/unittests
Chandler Carruth be663f7b2a [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.

llvm-svn: 195519
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 Fix an oversight in isPotentiallyReachable where we wouldn't do any CFG-walking 2013-08-13 00:03:47 +00:00
Bitcode llvm/unittests: Use OwningPtr to fix --vg-leak. 2013-01-23 08:33:13 +00:00
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 Update incorrect file headers. 2013-08-01 18:42:28 +00:00
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 build/unittests: Fix llvm-config names for gtest libraries, and bring Makefile 2011-12-15 23:35:08 +00:00