llvm-6502/include/llvm/Analysis
Hal Finkel bf301d5670 Add a CFL Alias Analysis implementation
This provides an implementation of CFL alias analysis (including some
supporting data structures). Currently, we don't have any extremely fancy
features, sans some interprocedural analysis (i.e. no field sensitivity, etc.),
and we do best sitting behind BasicAA + TBAA. In such a configuration, we take
~0.6-0.8% of total compile time, and give ~7-8% NoAlias responses to queries
TBAA and BasicAA couldn't answer when bootstrapping LLVM. In testing this on
other projects, we've seen up to 10.5% of queries dropped by BasicAA+TBAA
answered with NoAlias by this algorithm.

Patch by George Burgess IV (with minor modifications by me -- mostly adapting
some BasicAA tests), thanks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216970 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-02 21:43:13 +00:00
..
AliasAnalysis.h AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
AliasSetTracker.h AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
BlockFrequencyInfo.h blockfreq: Remove unnecessary template parameters 2014-04-11 23:21:02 +00:00
BlockFrequencyInfoImpl.h BFI: Add constructor for Weight 2014-07-12 00:26:00 +00:00
BranchProbabilityInfo.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
CallGraph.h Remove Support/IncludeFile.h and its only user. This is actively harmful, since 2014-08-07 20:41:17 +00:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h Match semantics of PointerMayBeCapturedBefore to its name by default 2014-07-21 21:30:22 +00:00
CFG.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
CFGPrinter.h Tweak CFGPrinter to wrap very long names. 2014-08-20 17:38:12 +00:00
CGSCCPassManager.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
CodeMetrics.h
ConstantFolding.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
ConstantsScanner.h
DependenceAnalysis.h Revert "Analysis: unique_ptr-ify DependenceAnalysis::collectCoeffInfo" 2014-08-26 02:03:38 +00:00
DominanceFrontier.h Try to fix MSVC build 2014-07-12 22:19:49 +00:00
DominanceFrontierImpl.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
DomPrinter.h
DOTGraphTraitsPass.h Modernize raw_fd_ostream's constructor a bit. 2014-08-25 18:16:47 +00:00
FindUsedTypes.h
InlineCost.h
InstructionSimplify.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
Interval.h Remove copy ctors that did the same thing as the default one. 2014-03-11 11:32:49 +00:00
IntervalIterator.h
IntervalPartition.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
IVUsers.h Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size. 2014-08-21 05:55:13 +00:00
JumpInstrTableInfo.h Add a new attribute called 'jumptable' that creates jump-instruction tables for functions marked with this attribute. 2014-06-05 19:29:43 +00:00
LazyCallGraph.h Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
LazyValueInfo.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
LibCallAliasAnalysis.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
LibCallSemantics.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
Lint.h
Loads.h AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
LoopInfo.h Add optimization remarks to the loop unroller and vectorizer. 2014-04-29 14:27:31 +00:00
LoopInfoImpl.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
LoopIterator.h
LoopPass.h
MemoryBuiltins.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
MemoryDependenceAnalysis.h AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
Passes.h Add a CFL Alias Analysis implementation 2014-09-02 21:43:13 +00:00
PHITransAddr.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
PostDominators.h Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
PtrUseVisitor.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
RegionInfo.h This declaration has no definition, which is causing MSVC to emit several "no suitable definition provided for explicit template instantiation request" C4661 warnings. 2014-07-21 13:08:08 +00:00
RegionInfoImpl.h Header hygiene: remove using directive and #undef DEBUG_TYPE once we're done. 2014-07-30 00:25:24 +00:00
RegionIterator.h Templatify RegionInfo so it works on MachineBasicBlocks 2014-07-19 18:29:29 +00:00
RegionPass.h
RegionPrinter.h
ScalarEvolution.h Partially fix PR20058: reduce compile time for loop unrolling with very high count by reducing calls to SE->forgetLoop 2014-07-10 23:30:06 +00:00
ScalarEvolutionExpander.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
ScalarEvolutionExpressions.h removed circular definitions in comments 2014-07-14 21:51:59 +00:00
ScalarEvolutionNormalization.h
SparsePropagation.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
TargetFolder.h Add CreatePointerBitCastOrAddrSpaceCast to IRBuilder and co. 2014-07-14 17:24:35 +00:00
TargetTransformInfo.h Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
Trace.h
ValueTracking.h [ValueTracking] Extend range metadata to call/invoke 2014-06-19 16:50:16 +00:00