llvm-6502/lib/Transforms/Scalar
Dan Gohman 448db1cdef Generalize IVUsers to track arbitrary expressions rather than expressions
explicitly split into stride-and-offset pairs. Also, add the
ability to track multiple post-increment loops on the same expression.

This refines the concept of "normalizing" SCEV expressions used for
to post-increment uses, and introduces a dedicated utility routine for
normalizing and denormalizing expressions.

This fixes the expansion of expressions which are post-increment users
of more than one loop at a time. More broadly, this takes LSR another
step closer to being able to reason about more than one loop at a time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100699 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-07 22:27:08 +00:00
..
ABCD.cpp Remove another memory leak from ABCD by using Edges by value instead of 2010-03-27 09:09:17 +00:00
ADCE.cpp Use do+while instead of while for loops which obviously have a 2010-01-05 16:27:25 +00:00
BasicBlockPlacement.cpp eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861 2009-09-02 06:11:42 +00:00
CMakeLists.txt Pull these back out, they're a little too aggressive and time 2010-02-09 17:29:18 +00:00
CodeGenPrepare.cpp Fix a nasty dangling-pointer heisenbug that could 2010-03-31 20:37:15 +00:00
ConstantProp.cpp remove a bunch of extraneous LLVMContext arguments 2009-11-06 04:27:31 +00:00
DCE.cpp eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861 2009-09-02 06:11:42 +00:00
DeadStoreElimination.cpp Make DSE only scan blocks that are reachable from the entry 2010-02-11 05:11:54 +00:00
GEPSplitter.cpp Check in the experimental GEP splitter pass. This pass splits complex 2009-10-26 19:12:14 +00:00
GVN.cpp fix PR6642, GVN forwarding from memset to load of the base of the memset. 2010-03-25 05:58:19 +00:00
IndVarSimplify.cpp Generalize IVUsers to track arbitrary expressions rather than expressions 2010-04-07 22:27:08 +00:00
JumpThreading.cpp There are two ways of checking for a given type, for example isa<PointerType>(T) 2010-02-16 11:11:14 +00:00
LICM.cpp There are two ways of checking for a given type, for example isa<PointerType>(T) 2010-02-16 11:11:14 +00:00
LoopDeletion.cpp LoopDeletion depends on loops having dedicated exits. 2009-11-05 21:47:04 +00:00
LoopIndexSplit.cpp Use do+while instead of while for loops which obviously have a 2010-01-05 16:27:25 +00:00
LoopRotation.cpp Update various Loop optimization passes to cope with the possibility that 2009-11-05 21:11:53 +00:00
LoopStrengthReduce.cpp Generalize IVUsers to track arbitrary expressions rather than expressions 2010-04-07 22:27:08 +00:00
LoopUnrollPass.cpp Add a DominatorTree argument to isLCSSA so that it doesn't have to 2010-03-10 19:38:49 +00:00
LoopUnswitch.cpp some code cleanups, use SwitchInst::findCaseValue, reduce indentation 2010-04-05 21:18:32 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
MemCpyOptimizer.cpp Reapply address space patch after fixing an issue in MemCopyOptimizer. 2010-04-04 03:10:48 +00:00
Reassociate.cpp fix a nice subtle reassociate bug which would only occur 2010-03-05 07:18:54 +00:00
Reg2Mem.cpp rename use_const_iterator to const_use_iterator for consistency's sake 2010-03-25 23:06:16 +00:00
Scalar.cpp Whoops this already existed. 2010-03-11 23:21:19 +00:00
ScalarReplAggregates.cpp performance: get rid of repeated dereferencing of use_iterator by caching its result 2010-04-06 19:32:30 +00:00
SCCP.cpp fix a really nasty bug that Evan was tracking in SCCP. When resolving 2010-04-05 22:14:48 +00:00
SCCVN.cpp Use do+while instead of while for loops which obviously have a 2010-01-05 16:27:25 +00:00
SimplifyCFGPass.cpp Finally land the InvokeInst operand reordering. 2010-03-24 13:21:49 +00:00
SimplifyHalfPowrLibCalls.cpp Fix "the the" and similar typos. 2010-02-10 16:03:48 +00:00
SimplifyLibCalls.cpp Reapply address space patch after fixing an issue in MemCopyOptimizer. 2010-04-04 03:10:48 +00:00
TailDuplication.cpp Change errs() to dbgs(). 2010-01-05 01:27:33 +00:00
TailRecursionElimination.cpp Revert 94937 and move the noreturn check to codegen. 2010-02-03 03:55:59 +00:00