llvm-6502/include/llvm/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
..
Argument.h
Attributes.h
BasicBlock.h
CallingConv.h [Stackmap] Add AnyReg calling convention support for patchpoint intrinsic. 2013-11-08 23:28:16 +00:00
CMakeLists.txt
Constant.h
Constants.h Fix spacing, forward declare order. 2013-11-18 02:51:33 +00:00
DataLayout.h
DerivedTypes.h
Function.h
GlobalAlias.h
GlobalValue.h Remove linkonce_odr_auto_hide. 2013-11-01 17:09:14 +00:00
GlobalVariable.h Clarify that GlobalVariables definitions must have an initializer. 2013-10-29 13:44:11 +00:00
InlineAsm.h
InstrTypes.h
Instruction.def Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
Instruction.h
Instructions.h Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
IntrinsicInst.h
Intrinsics.h Enable variable arguments support for intrinsics. 2013-10-31 17:18:11 +00:00
Intrinsics.td Add experimental stackmap intrinsics to definition file and documenation. 2013-10-31 17:18:14 +00:00
IntrinsicsAArch64.td Implemented Neon scalar by element intrinsics. 2013-11-21 07:37:04 +00:00
IntrinsicsARM.td Export intrinsics:__builtin_arm_{dmb,dsb} to frontend 2013-11-12 19:57:43 +00:00
IntrinsicsHexagon.td
IntrinsicsMips.td [mips][msa] Correct definition of bins[lr] and CHECK-DAG-ize related tests 2013-10-30 15:45:42 +00:00
IntrinsicsNVVM.td
IntrinsicsPowerPC.td
IntrinsicsR600.td
IntrinsicsX86.td Add AVX512 unmasked FMA intrinsics and support. 2013-11-15 17:01:14 +00:00
IntrinsicsXCore.td
IRBuilder.h Expose the fence instruction via the C API. 2013-11-20 00:07:49 +00:00
LegacyPassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
LegacyPassManagers.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
LLVMContext.h
MDBuilder.h
Metadata.h
Module.h Fixed doxygen comment to match Module.cpp 2013-10-23 21:25:44 +00:00
OperandTraits.h
Operator.h
PassManager.h [PM] Switch the downward invalidation to be incremental where only the 2013-11-22 23:38:07 +00:00
SymbolTableListTraits.h
Type.h TypeFinder: prefer iterative algorithm to keep stack usage low. 2013-10-16 04:10:06 +00:00
TypeBuilder.h
TypeFinder.h
Use.h
User.h
Value.h
ValueSymbolTable.h