llvm-6502/lib/Analysis
Dan Gohman 40a5a1b39e Extend ScalarEvolution's multiple-exit support to compute exact
trip counts in more cases.

Generalize ScalarEvolution's isLoopGuardedByCond code to recognize
And and Or conditions, splitting the code out into an
isNecessaryCond helper function so that it can evaluate Ands and Ors
recursively, and make SCEVExpander be much more aggressive about
hoisting instructions out of loops.

test/CodeGen/X86/pr3495.ll has an additional instruction now, but
it appears to be due to an arbitrary register allocation difference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24 01:18:18 +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 Remove unneeded #include. 2009-06-22 22:09:07 +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 Support vector casts in more places, fixing a variety of assertion 2009-06-15 22:12:54 +00:00
DbgInfoPrinter.cpp Use getReturnTypeName() to print return type. 2009-06-23 22:23:13 +00:00
DebugInfo.cpp It is not a good idea to have data member's name match argument's name. In fact, it is a simple receipe to waste an hour or so. 2009-06-23 22:25:41 +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 SCEVHandle is no more! 2009-06-22 21:39:50 +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 SCEVHandle is no more! 2009-06-22 21:39:50 +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 Extend ScalarEvolution's multiple-exit support to compute exact 2009-06-24 01:18:18 +00:00
ScalarEvolutionExpander.cpp Extend ScalarEvolution's multiple-exit support to compute exact 2009-06-24 01:18:18 +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 Fix llvm::ComputeNumSignBits to handle pointer types 2009-06-22 22:02:32 +00:00