llvm-6502/include/llvm/Analysis
Nick Lewycky b48a18903a Change CaptureTracking to pass a Use* instead of a Value* when a value is
captured. This allows the tracker to look at the specific use, which may be
especially interesting for function calls.

Use this to fix 'nocapture' deduction in FunctionAttrs. The existing one does
not iterate until a fixpoint and does not guarantee that it produces the same
result regardless of iteration order. The new implementation builds up a graph
of how arguments are passed from function to function, and uses a bottom-up walk
on the argument-SCCs to assign nocapture. This gets us nocapture more often, and
does so rather efficiently and independent of iteration order.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147327 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-28 23:24:21 +00:00
..
AliasAnalysis.h Fix extra whitespace in comment. 2011-10-15 19:36:45 +00:00
AliasSetTracker.h Fix AliasSetTracker so that it doesn't make any assumptions about instructions it doesn't know about (like the atomic instructions I'm adding). 2011-07-27 00:46:46 +00:00
BlockFrequencyImpl.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
BlockFrequencyInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
BranchProbabilityInfo.h Remove return heuristics from the static branch probabilities, and 2011-10-24 12:01:08 +00:00
CallGraph.h Teach the CallGraph to ignore calls to intrinsics. 2011-06-09 19:46:27 +00:00
CaptureTracking.h Change CaptureTracking to pass a Use* instead of a Value* when a value is 2011-12-28 23:24:21 +00:00
CFGPrinter.h Remove all remaining uses of Value::getNameStr(). 2011-11-15 16:27:03 +00:00
CodeMetrics.h Allow inlining of functions with returns_twice calls, if they have the 2011-12-18 20:35:43 +00:00
ConstantFolding.h Propagate TargetLibraryInfo throughout ConstantFolding.cpp and 2011-12-01 03:08:23 +00:00
ConstantsScanner.h
DebugInfo.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
DIBuilder.h Add a new wrapper node for a DILexicalBlock that encapsulates it and a 2011-10-11 22:59:11 +00:00
DominanceFrontier.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
DominatorInternals.h Change the Dominators recalculate() function to only rely on GraphTraits 2011-12-05 19:17:04 +00:00
Dominators.h Change the Dominators recalculate() function to only rely on GraphTraits 2011-12-05 19:17:04 +00:00
DomPrinter.h
DOTGraphTraitsPass.h Remove all remaining uses of Value::getNameStr(). 2011-11-15 16:27:03 +00:00
FindUsedTypes.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
InlineCost.h Make headers standalone. 2011-11-14 17:45:03 +00:00
InstructionSimplify.h Propagate TargetLibraryInfo throughout ConstantFolding.cpp and 2011-12-01 03:08:23 +00:00
Interval.h
IntervalIterator.h
IntervalPartition.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
IVUsers.h Added a SimplifyIndVar utility to simplify induction variable users 2011-08-10 03:46:27 +00:00
LazyValueInfo.h Fix a few more places where TargetData/TargetLibraryInfo is not being passed. 2011-12-02 01:26:24 +00:00
LibCallAliasAnalysis.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
LibCallSemantics.h Remove the experimental AliasAnalysis::getDependency interface, which 2010-09-14 21:25:10 +00:00
Lint.h Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
Loads.h
LoopDependenceAnalysis.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
LoopInfo.h Remove the temporary flag -disable-unroll-scev and dead code. 2011-11-28 19:22:09 +00:00
LoopIterator.h Cleanup. Remove an extraneous GraphTraits specialization. 2011-08-10 22:55:39 +00:00
LoopPass.h Reapply r138695. Fix PassManager stack depths. 2011-08-29 17:07:00 +00:00
MemoryBuiltins.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
MemoryDependenceAnalysis.h Refactor capture tracking (which already had a couple flags for whether returns 2011-11-14 22:49:42 +00:00
Passes.h The ARC language-specific optimizer. Credit to Dan Gohman. 2011-06-15 23:37:01 +00:00
PathNumbering.h Implementation of path profiling. 2011-01-29 01:09:53 +00:00
PathProfileInfo.h Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
PHITransAddr.h Propagate TargetLibraryInfo throughout ConstantFolding.cpp and 2011-12-01 03:08:23 +00:00
PostDominators.h remove postdom frontiers, because it is dead. Forward dom frontiers are 2011-04-05 21:57:17 +00:00
ProfileInfo.h
ProfileInfoLoader.h
ProfileInfoTypes.h This is #included by .c files. Remove C++-style comments. 2011-01-29 21:54:26 +00:00
RegionInfo.h Missed some users of Value::getNameStr. 2011-11-15 18:30:06 +00:00
RegionIterator.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
RegionPass.h Reapply r138695. Fix PassManager stack depths. 2011-08-29 17:07:00 +00:00
RegionPrinter.h
ScalarEvolution.h Propagate TargetLibraryInfo throughout ConstantFolding.cpp and 2011-12-01 03:08:23 +00:00
ScalarEvolutionExpander.h LSR: handle the expansion of phi operands that use postinc forms of the IV. 2011-11-30 06:07:54 +00:00
ScalarEvolutionExpressions.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
ScalarEvolutionNormalization.h
SparsePropagation.h
Trace.h
ValueTracking.h Move Instruction::isSafeToSpeculativelyExecute out of VMCore and 2011-12-14 23:49:11 +00:00
Verifier.h