llvm-6502/include/llvm/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
..
AliasAnalysis.h Correct a comment: since AccessArguments is now 2009-02-13 17:36:13 +00:00
AliasSetTracker.h reimplement AliasSetTracker in terms of DenseMap instead of hash_map, 2009-03-09 05:11:09 +00:00
CallGraph.h introduce typedef for complicated vector, and use it too 2009-01-17 00:09:08 +00:00
CaptureTracking.h BasicAliasAnalysis and FunctionAttrs were both 2009-01-18 12:19:30 +00:00
CFGPrinter.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
ConstantFolding.h Change ConstantFoldConstantExpression to accept a null 2009-06-02 21:48:15 +00:00
ConstantsScanner.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
DebugInfo.h 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
DominatorInternals.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
Dominators.h PR4317: Handle splits where the new block is unreachable correctly in 2009-06-03 21:42:06 +00:00
FindUsedTypes.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
Interval.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
IntervalIterator.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
IntervalPartition.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
IVUsers.h SCEVHandle is no more! 2009-06-22 21:39:50 +00:00
LibCallAliasAnalysis.h More MSVC fixes -- class/struct conflicts. 2009-05-12 21:55:29 +00:00
LibCallSemantics.h Revert 51775. 2008-05-30 22:47:19 +00:00
LiveValues.h Add a liveness analysis pass for LLVM IR values. This computes 2009-03-19 17:29:04 +00:00
LoopInfo.h Add some comments noting how IndVarSimplify facilitates 2009-05-19 01:52:46 +00:00
LoopPass.h Move dumpPassStructure out of line. 2009-02-17 19:41:26 +00:00
LoopVR.h SCEVHandle is no more! 2009-06-22 21:39:50 +00:00
MemoryDependenceAnalysis.h now that you can put a PointerIntPair in a SmallPtrSet, remove some 2009-03-29 00:24:04 +00:00
Passes.h Add a liveness analysis pass for LLVM IR values. This computes 2009-03-19 17:29:04 +00:00
PostDominators.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
ProfileInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
ProfileInfoLoader.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
ProfileInfoTypes.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
ScalarEvolution.h Extend ScalarEvolution's multiple-exit support to compute exact 2009-06-24 01:18:18 +00:00
ScalarEvolutionExpander.h SCEVHandle is no more! 2009-06-22 21:39:50 +00:00
ScalarEvolutionExpressions.h Remove the parent pointer from SCEV, since it did not end up being needed. 2009-06-22 21:57:23 +00:00
SparsePropagation.h add an accessor method, patch by John McCall! 2009-04-09 05:56:58 +00:00
Trace.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
ValueTracking.h Oops...I committed too much. 2009-03-13 04:39:26 +00:00
Verifier.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00