llvm-6502/include/llvm/Analysis
Sanjoy Das 0799eb1140 Exploit dereferenceable_or_null attribute in LICM pass
Summary:
Allow hoisting of loads from values marked with dereferenceable_or_null
attribute. For values marked with the attribute perform
context-sensitive analysis to determine whether it's known-non-null or
not.

Patch by Artur Pilipenko!

Reviewers: hfinkel, sanjoy, reames

Reviewed By: reames

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D9253

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237593 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-18 18:07:00 +00:00
..
AliasAnalysis.h Move equality function for AliasAnalysis::Location from DenseMapInfo to Location struct so it can be used in other types of maps 2015-04-30 16:15:07 +00:00
AliasSetTracker.h Constify arguments in AliasSetTracker methods. NFC 2015-05-13 01:12:12 +00:00
AssumptionCache.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
BlockFrequencyInfo.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
BlockFrequencyInfoImpl.h Remove 4,096 loop scale limitation. 2015-04-01 17:42:27 +00:00
BranchProbabilityInfo.h
CallGraph.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h
CFG.h
CFGPrinter.h
CGSCCPassManager.h Remove std::move on return of temporary. 2015-05-01 15:25:29 +00:00
CodeMetrics.h
ConstantFolding.h DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
DependenceAnalysis.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
DominanceFrontier.h
DominanceFrontierImpl.h Add more missing #includes, found by modules build. 2015-05-11 22:41:07 +00:00
DomPrinter.h
DOTGraphTraitsPass.h
InlineCost.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
InstructionSimplify.h DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
Interval.h
IntervalIterator.h Remove use of reserved identifier 2015-03-15 01:37:01 +00:00
IntervalPartition.h
IteratedDominanceFrontier.h Move IDF Calculation to a separate file, expose an interface to it. 2015-04-21 19:13:02 +00:00
IVUsers.h DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
JumpInstrTableInfo.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LazyCallGraph.h
LazyValueInfo.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LibCallAliasAnalysis.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LibCallSemantics.h Stop calling DwarfEHPrepare from WinEHPrepare 2015-03-12 00:36:20 +00:00
Lint.h
Loads.h DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
LoopAccessAnalysis.h [LoopAccesses] If shouldRetryWithRuntimeCheck, reset InterestingDependences 2015-05-18 15:37:03 +00:00
LoopInfo.h Constify arguments to methods in LoopInfo. NFC 2015-05-13 01:12:06 +00:00
LoopInfoImpl.h Replace loop doing postorder walk with postorder iterator 2015-04-16 04:28:32 +00:00
LoopIterator.h
LoopPass.h
MemoryBuiltins.h DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
MemoryDependenceAnalysis.h Revamp PredIteratorCache interface to be cleaner. 2015-04-21 21:11:50 +00:00
Passes.h Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
PHITransAddr.h DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
PostDominators.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
PtrUseVisitor.h
RegionInfo.h Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
RegionInfoImpl.h Make it obvious that we're iterating over a range of pointers. 2015-04-16 12:43:07 +00:00
RegionIterator.h Remove explicit RNSuccIterator copy assignment in favor of implicit default 2015-03-04 07:51:50 +00:00
RegionPass.h
RegionPrinter.h
ScalarEvolution.h [ScalarEvolution] refactor: extract interface getGEPExpr 2015-05-18 17:03:25 +00:00
ScalarEvolutionExpander.h [SCEVExpander] Fix comments for functions. NFC. 2015-04-14 03:20:40 +00:00
ScalarEvolutionExpressions.h
ScalarEvolutionNormalization.h
SparsePropagation.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
TargetFolder.h [opaque pointer types] Push explicit type parameter for geps through the constant folders 2015-04-03 01:15:16 +00:00
TargetLibraryInfo.def Move TargetLibraryInfo data from two files into one common .def file. 2015-03-03 23:41:58 +00:00
TargetLibraryInfo.h TLI: Add addVectorizableFunctionsFromVecLib. 2015-03-17 19:50:55 +00:00
TargetTransformInfo.h [X86] Disable loop unrolling in loop vectorization pass when VF is 1. 2015-05-06 17:12:25 +00:00
TargetTransformInfoImpl.h [NoTTI] reject negative scale in addressing mode 2015-05-08 18:07:24 +00:00
Trace.h
ValueTracking.h Exploit dereferenceable_or_null attribute in LICM pass 2015-05-18 18:07:00 +00:00