llvm-6502/lib/Transforms/Utils
Andrew Trick 4b4bb71bcd Added a SimplifyIndVar utility to simplify induction variable users
based on ScalarEvolution without changing the induction variable phis.

This utility is the main tool of IndVarSimplifyPass, but the pass also
restructures induction variables in strange ways that are sensitive to
pass ordering. This provides a way for other loop passes to simplify
new uses of induction variables created during transformation. The
utility may be used by any pass that preserves ScalarEvolution. Soon
LoopUnroll will use it.

The net effect in this checkin is to cleanup the IndVarSimplify pass
by factoring out the SimplifyIndVar algorithm into a standalone utility.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137197 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-10 03:46:27 +00:00
..
AddrModeMatcher.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
BasicBlockUtils.cpp Reinstate r133513 (reverted in r133700) with an additional fix for a 2011-06-23 09:09:15 +00:00
BasicInliner.cpp simplify 2010-07-28 15:52:43 +00:00
BreakCriticalEdges.cpp PR10386: Don't try to split an edge from an indirectbr. 2011-07-19 22:59:41 +00:00
BuildLibCalls.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
CloneFunction.cpp Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall. 2011-07-19 13:32:40 +00:00
CloneModule.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
CMakeLists.txt Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
CodeExtractor.cpp Convert GetElementPtrInst to use ArrayRef. 2011-07-25 09:48:08 +00:00
DemoteRegToStack.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
InlineFunction.cpp Temporarily revert r135528 which distinguishes between two copies of one 2011-08-05 00:51:31 +00:00
InstructionNamer.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
LCSSA.cpp There is no need to force DebugLoc on a PHI at this point. 2011-05-16 22:05:03 +00:00
Local.cpp Lifetime intrinsics on undef are dead. 2011-08-02 21:19:27 +00:00
LoopSimplify.cpp SCEV: Use AssertingVH to catch dangling BasicBlock* when passes forget 2011-08-03 18:32:11 +00:00
LoopUnroll.cpp Cleanup. Added LoopBlocksDFS::perform for simple clients. 2011-08-10 01:59:05 +00:00
LowerExpectIntrinsic.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
LowerInvoke.cpp There is only one instance of this placeholder being created. Just use that 2011-08-09 01:17:10 +00:00
LowerSwitch.cpp Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
Mem2Reg.cpp Remove outdated references to dominance frontiers. 2011-01-18 03:53:26 +00:00
PromoteMemoryToRegister.cpp Move onlyUsedByLifetimeMarkers to ValueTracking so that it can be used by other 2011-06-27 04:20:45 +00:00
SimplifyCFG.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
SimplifyIndVar.cpp Added a SimplifyIndVar utility to simplify induction variable users 2011-08-10 03:46:27 +00:00
SimplifyInstructions.cpp Speed up instsimplify by about 10-15% by not bothering to retry 2011-01-03 10:50:04 +00:00
SSAUpdater.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
UnifyFunctionExitNodes.cpp Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
Utils.cpp Add a new convenience pass for testing InstructionSimplify. Previously 2010-12-20 20:54:37 +00:00
ValueMapper.cpp We need to map DebugLoc. It leads to Fuction * (through subprogram entry node) which should be appropriately mapped. 2011-08-04 20:02:18 +00:00