llvm-6502/include/llvm/Analysis
Chandler Carruth 21c4458d3c [PM] Sink the reference vs. value decision for IR units out of the
templated interface.

So far, every single IR unit I can come up with has address-identity.
That is, when two units of IR are both active in LLVM, their addresses
will be distinct of the IR is distinct. This is clearly true for
Modules, Functions, BasicBlocks, and Instructions. It turns out that the
only practical way to make the CGSCC stuff work the way we want is to
make it true for SCCs as well. I expect this pattern to continue.

When first designing the pass manager code, I kept this dimension of
freedom in the type parameters, essentially allowing for a wrapper-type
whose address did not form identity. But that really no longer makes
sense and is making the code more complex or subtle for no gain. If we
ever have an actual use case for this, we can figure out what makes
sense then and there. It will be better because then we will have the
actual example in hand.

While the simplifications afforded in this patch are fairly small
(mostly sinking the '&' out of many type parameters onto a few
interfaces), it would have become much more pronounced with subsequent
changes. I have a sequence of changes that will completely remove the
code duplication that currently exists between all of the pass managers
and analysis managers. =] Should make things much cleaner and avoid bug
fixing N times for the N pass managers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225723 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 22:53:31 +00:00
..
AliasAnalysis.h Sink store based on alias analysis 2014-12-15 14:09:53 +00:00
AliasSetTracker.h AliasSetTracker: UnknownInsts should contribute to the refcount 2014-11-19 09:41:05 +00:00
AssumptionCache.h [PM] Cleanup a place where I forgot to update the header guards when 2015-01-05 03:03:31 +00:00
BlockFrequencyInfo.h
BlockFrequencyInfoImpl.h Fix typo in comment 2014-10-08 23:30:45 +00:00
BranchProbabilityInfo.h [stack protector] Set edge weights for newly created basic blocks. 2014-12-01 04:27:03 +00:00
CallGraph.h Fix GraphTraits for "const CallGraphNode *" and "const CallGraph *" 2014-11-17 17:51:45 +00:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h
CFG.h
CFGPrinter.h
CGSCCPassManager.h [PM] Sink the reference vs. value decision for IR units out of the 2015-01-12 22:53:31 +00:00
CodeMetrics.h [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
ConstantFolding.h
ConstantsScanner.h
DependenceAnalysis.h [DependenceAnalysis] Allow subscripts of different types 2014-11-16 16:52:44 +00:00
DominanceFrontier.h These functions are not actually defined for NDEBUG or !LLVM_DUMP_ENABLED, so guarding the declarations as well. NFC, silences MSVC warnings in release builds. 2014-10-24 15:16:39 +00:00
DominanceFrontierImpl.h Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
DomPrinter.h
DOTGraphTraitsPass.h
FunctionTargetTransformInfo.h
InlineCost.h [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
InstructionSimplify.h [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
Interval.h
IntervalIterator.h Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
IntervalPartition.h
IVUsers.h
JumpInstrTableInfo.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
LazyCallGraph.h [PM] Add names and debug logging for analysis passes to the new pass 2015-01-05 12:21:44 +00:00
LazyValueInfo.h remove function names from comments; NFC 2015-01-08 22:36:56 +00:00
LibCallAliasAnalysis.h
LibCallSemantics.h
Lint.h
Loads.h
LoopInfo.h
LoopInfoImpl.h
LoopIterator.h
LoopPass.h Fix assertion in LICM doFinalization() 2014-09-24 16:48:31 +00:00
MemoryBuiltins.h
MemoryDependenceAnalysis.h [REFACTOR] Push logic from MemDepPrinter into getNonLocalPointerDependency 2015-01-09 00:26:45 +00:00
Passes.h Add back r222061 with a fix. 2014-11-17 02:28:27 +00:00
PHITransAddr.h [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
PostDominators.h
PtrUseVisitor.h
RegionInfo.h These functions are not actually defined for NDEBUG or !LLVM_DUMP_ENABLED, so guarding the declarations as well. NFC, silences MSVC warnings in release builds. 2014-10-24 15:16:39 +00:00
RegionInfoImpl.h
RegionIterator.h
RegionPass.h
RegionPrinter.h
ScalarEvolution.h [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
ScalarEvolutionExpander.h
ScalarEvolutionExpressions.h Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
ScalarEvolutionNormalization.h
SparsePropagation.h
TargetFolder.h
TargetTransformInfo.h Loop Vectorizer minor changes in the code - 2014-12-14 09:43:50 +00:00
Trace.h
ValueTracking.h Analysis: Reformulate WillNotOverflowUnsignedAdd for reusability 2015-01-07 00:39:50 +00:00