llvm-6502/include/llvm/Analysis
Chris Lattner 992efb0378 Step #2 to improve trip count analysis for loops like this:
void f(int* begin, int* end) { std::fill(begin, end, 0); }

which turns into a != exit expression where one pointer is
strided and (thanks to step #1) known to not overflow, and 
the other is loop invariant.

The observation here is that, though the IV is strided by
4 in this case, that the IV *has* to become equal to the
end value.  It cannot "miss" the end value by stepping over
it, because if it did, the strided IV expression would
eventually wrap around.

Handle this by turning A != B into "A-B != 0" where the A-B
part is known to be NUW.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123131 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-09 22:26:35 +00:00
..
AliasAnalysis.h fit in 80 cols 2011-01-08 20:53:41 +00:00
AliasSetTracker.h
CallGraph.h Add spliceFunction to the CallGraph interface. This allows users to efficiently 2011-01-03 03:19:35 +00:00
CaptureTracking.h
CFGPrinter.h
CodeMetrics.h make this file properly self contained. 2011-01-08 08:19:49 +00:00
ConstantFolding.h
ConstantsScanner.h
DebugInfo.h Add support to create class type. 2010-12-08 20:18:20 +00:00
DIBuilder.h Add support to create debug info for functions and methods. 2010-12-08 20:42:44 +00:00
DominanceFrontier.h split dom frontier handling stuff out to its own DominanceFrontier header, 2011-01-02 22:09:33 +00:00
DominatorInternals.h Fix a typo in a variable name. 2011-01-02 12:17:10 +00:00
Dominators.h DominatorTree->print() now prints the status of the DFSNumbers correctly 2011-01-09 16:00:09 +00:00
DomPrinter.h
DOTGraphTraitsPass.h
FindUsedTypes.h
InlineCost.h
InstructionSimplify.h Clarify that InstructionSimplify only returns values that dominate the 2010-12-28 18:01:19 +00:00
Interval.h
IntervalIterator.h
IntervalPartition.h
IVUsers.h
LazyValueInfo.h
LibCallAliasAnalysis.h
LibCallSemantics.h
Lint.h
LiveValues.h
Loads.h
LoopDependenceAnalysis.h
LoopInfo.h split dom frontier handling stuff out to its own DominanceFrontier header, 2011-01-02 22:09:33 +00:00
LoopPass.h
MemoryBuiltins.h clean up handling of 'free', detangling it from everything else. 2010-11-30 01:28:33 +00:00
MemoryDependenceAnalysis.h Rewrite the main DSE loop to be written in terms of reasoning 2010-11-30 07:23:21 +00:00
Passes.h
PHITransAddr.h
PostDominators.h split dom frontier handling stuff out to its own DominanceFrontier header, 2011-01-02 22:09:33 +00:00
ProfileInfo.h
ProfileInfoLoader.h
ProfileInfoTypes.h
RegionInfo.h
RegionIterator.h
RegionPass.h
RegionPrinter.h
ScalarEvolution.h Step #2 to improve trip count analysis for loops like this: 2011-01-09 22:26:35 +00:00
ScalarEvolutionExpander.h
ScalarEvolutionExpressions.h
ScalarEvolutionNormalization.h
SparsePropagation.h
Trace.h
ValueTracking.h move isBytewiseValue out to ValueTracking.h/cpp 2010-12-26 20:15:01 +00:00
Verifier.h