llvm-6502/lib/Analysis
Dan Gohman 4d8414f420 Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical
induction variable when the addrec to be expanded does not require
a wider type. This eliminates the need for IndVarSimplify to
micro-manage SCEV expansions, because SCEVExpander now
automatically expands them in the form that IndVarSimplify considers
to be canonical. (LSR still micro-manages its SCEV expansions,
because it's optimizing for the target, rather than for
other optimizations.)

Also, this uses the new getAnyExtendExpr, which has more clever
expression simplification logic than the IndVarSimplify code it
replaces, and this cleans up some ugly expansions in code such as
the included masked-iv.ll testcase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 16:25:49 +00:00
..
IPA Clear the cached cost when removing a function in 2009-03-19 18:03:56 +00:00
AliasAnalysis.cpp Generalize some alias analysis logic from atomic 2009-02-14 10:56:35 +00:00
AliasAnalysisCounter.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
AliasAnalysisEvaluator.cpp simplify logic and get rid of the assumption that operand 0 is the callee 2009-03-24 19:28:39 +00:00
AliasDebugger.cpp Refactor my previous change to maintain the distinction between AliasAnalysis and BasicAliasAnalysis. This involves some wider changes because it 2009-02-05 23:36:27 +00:00
AliasSetTracker.cpp getEntryFor() may invalidate DenseMap iterator. 2009-03-30 18:34:47 +00:00
Analysis.cpp Expose Function::viewCFG and Function::viewCFGOnly to bindings. 2008-03-31 16:22:09 +00:00
BasicAliasAnalysis.cpp Teach BasicAliasAnalysis to understand constant gep indices that fall 2009-05-27 01:48:27 +00:00
CaptureTracking.cpp Revert r70876 and add a testcase (@c7) showing the problem: 2009-05-07 18:08:34 +00:00
CFGPrinter.cpp Rationalize the names of passes that print information: 2008-09-23 12:47:39 +00:00
CMakeLists.txt add IVUsers.cpp 2009-05-13 06:28:04 +00:00
ConstantFolding.cpp Change ConstantFoldConstantExpression to accept a null 2009-06-02 21:48:15 +00:00
DbgInfoPrinter.cpp Clean up this file fixing 80-column violations, bad formatting, etc. No functionality change. 2009-05-14 18:16:46 +00:00
DebugInfo.cpp Use v.data() instead of &v[0] when SmallVector v might be empty. 2009-05-21 09:52:38 +00:00
InstCount.cpp Remove some unnecessary #includes. 2009-06-05 16:32:58 +00:00
Interval.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
IntervalPartition.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
IVUsers.cpp Avoid getting a compiler warning 2009-05-13 12:52:44 +00:00
LibCallAliasAnalysis.cpp Expose a public interface to this pass. 2008-06-05 23:45:18 +00:00
LibCallSemantics.cpp Add a new interface for describing the behavior of library calls. This 2008-05-07 18:21:13 +00:00
LiveValues.cpp Delete an obsolete sentance from a comment. 2009-05-31 16:18:57 +00:00
LoopInfo.cpp Remove some unnecessary #includes. 2009-06-05 16:32:58 +00:00
LoopPass.cpp Before deleting a basic block, give other loop passes a chance cleanup analysis values, related to the instructions in the basic block. 2009-03-25 23:57:48 +00:00
LoopVR.cpp More const qualifiers. 2009-04-18 17:57:20 +00:00
Makefile Removed trailing whitespace from Makefiles. 2009-01-09 16:44:42 +00:00
MemoryDependenceAnalysis.cpp make memdep use the getModRefInfo method for stores instead of the 2009-05-25 21:28:56 +00:00
PostDominators.cpp Add newline at end of file. 2008-05-29 21:05:16 +00:00
ProfileInfo.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
ProfileInfoLoader.cpp Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
ProfileInfoLoaderPass.cpp Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
ScalarEvolution.cpp Add a ScalarEvolution::getAnyExtendExpr utility function for performing 2009-06-13 15:56:47 +00:00
ScalarEvolutionExpander.cpp Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical 2009-06-13 16:25:49 +00:00
SparsePropagation.cpp Make Print callable from a pass's print method: add const qualifier. No 2009-03-11 20:50:17 +00:00
Trace.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
ValueTracking.cpp Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00