llvm-6502/lib/Analysis
Dan Gohman 2d1be87ee4 Expand GEPs in ScalarEvolution expressions. SCEV expressions can now
have pointer types, though in contrast to C pointer types, SCEV
addition is never implicitly scaled. This not only eliminates the
need for special code like IndVars' EliminatePointerRecurrence
and LSR's own GEP expansion code, it also does a better job because
it lets the normal optimizations handle pointer expressions just
like integer expressions.

Also, since LLVM IR GEPs can't directly index into multi-dimensional
VLAs, moving the GEP analysis out of client code and into the SCEV
framework makes it easier for clients to handle multi-dimensional
VLAs the same way as other arrays.

Some existing regression tests show improved optimization.
test/CodeGen/ARM/2007-03-13-InstrSched.ll in particular improved to
the point where if-conversion started kicking in; I turned it off
for this test to preserve the intent of the test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69258 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16 03:18:22 +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
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
AliasSetTracker.cpp getEntryFor() may invalidate DenseMap iterator. 2009-03-30 18:34:47 +00:00
Analysis.cpp
BasicAliasAnalysis.cpp Generalize some alias analysis logic from atomic 2009-02-14 10:56:35 +00:00
CaptureTracking.cpp
CFGPrinter.cpp
CMakeLists.txt Fix the Win32 VS2008 build: 2009-03-19 23:26:52 +00:00
ConstantFolding.cpp use higher level APIs. 2009-04-03 00:02:39 +00:00
DbgInfoPrinter.cpp Oops...I committed too much. 2009-03-13 04:39:26 +00:00
DebugInfo.cpp Add a method to check that the subprogram holds debug info for the given Function or not. 2009-04-15 00:06:07 +00:00
InstCount.cpp
Interval.cpp
IntervalPartition.cpp
LibCallAliasAnalysis.cpp
LibCallSemantics.cpp
LiveValues.cpp Enhance LiveValues to work on PHI operands. 2009-03-23 15:49:37 +00:00
LoopInfo.cpp
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 LoopVR is not CFGOnly. 2009-03-23 15:50:52 +00:00
Makefile
MemoryDependenceAnalysis.cpp now that you can put a PointerIntPair in a SmallPtrSet, remove some 2009-03-29 00:24:04 +00:00
PostDominators.cpp
ProfileInfo.cpp
ProfileInfoLoader.cpp
ProfileInfoLoaderPass.cpp
ScalarEvolution.cpp Expand GEPs in ScalarEvolution expressions. SCEV expressions can now 2009-04-16 03:18:22 +00:00
ScalarEvolutionExpander.cpp Expand GEPs in ScalarEvolution expressions. SCEV expressions can now 2009-04-16 03:18:22 +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
ValueTracking.cpp Oops...I committed too much. 2009-03-13 04:39:26 +00:00