mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-10-16 12:24:44 +00:00
4d32e85359
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 |
||
---|---|---|
.. | ||
Argument.h | ||
Attributes.h | ||
BasicBlock.h | ||
CallingConv.h | ||
CMakeLists.txt | ||
Constant.h | ||
Constants.h | ||
DataLayout.h | ||
DerivedTypes.h | ||
Function.h | ||
GlobalAlias.h | ||
GlobalValue.h | ||
GlobalVariable.h | ||
InlineAsm.h | ||
InstrTypes.h | ||
Instruction.def | ||
Instruction.h | ||
Instructions.h | ||
IntrinsicInst.h | ||
Intrinsics.h | ||
Intrinsics.td | ||
IntrinsicsAArch64.td | ||
IntrinsicsARM.td | ||
IntrinsicsHexagon.td | ||
IntrinsicsMips.td | ||
IntrinsicsNVVM.td | ||
IntrinsicsPowerPC.td | ||
IntrinsicsR600.td | ||
IntrinsicsX86.td | ||
IntrinsicsXCore.td | ||
IRBuilder.h | ||
LegacyPassManager.h | ||
LegacyPassManagers.h | ||
LLVMContext.h | ||
MDBuilder.h | ||
Metadata.h | ||
Module.h | ||
OperandTraits.h | ||
Operator.h | ||
PassManager.h | ||
SymbolTableListTraits.h | ||
Type.h | ||
TypeBuilder.h | ||
TypeFinder.h | ||
Use.h | ||
User.h | ||
Value.h | ||
ValueSymbolTable.h |