llvm-6502/lib/Transforms/Scalar
Chris Lattner 967948b4e2 "Allow LICM to sink or lift loads from constant memory. Also add a test
case for this.

This allows instructions like loads from global variables declared to
be constant to be moved out of loops."

Patch by Stefanus Du Toit!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53945 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-23 05:06:28 +00:00
..
ADCE.cpp Remove the ability for ADCE to remove unreachable blocks in loop nests, because, as Eli pointed out, SimplifyCFG already does this. 2008-07-03 17:21:41 +00:00
BasicBlockPlacement.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
CodeGenPrepare.cpp Remove comparison methods for MVT. The main cause 2008-06-08 20:54:56 +00:00
CondPropagate.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
ConstantProp.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
DCE.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
DeadStoreElimination.cpp 80 col / tabs fixes 2008-05-13 01:48:26 +00:00
GCSE.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
GVN.cpp Supress a gcc-4.3 warning. 2008-07-18 21:06:02 +00:00
GVNPRE.cpp Update comments and documentation to reflect that GCSE and ValueNumbering are 2008-06-05 07:55:49 +00:00
IndVarSimplify.cpp Use Loop::block_iterator. 2008-06-22 20:18:58 +00:00
InstructionCombining.cpp Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
JumpThreading.cpp Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
LICM.cpp "Allow LICM to sink or lift loads from constant memory. Also add a test 2008-07-23 05:06:28 +00:00
LoopDeletion.cpp Use use_empty() instead of getNumUses(), avoiding a use list traversal. 2008-06-23 23:23:49 +00:00
LoopIndexSplit.cpp If loop induction variable's start value is less then its exit value then do not split the loop. 2008-07-09 00:12:01 +00:00
LoopRotation.cpp Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
LoopStrengthReduce.cpp Fix a bug in LSR's dead-PHI cleanup. If a PHI has a def-use chain that 2008-07-21 21:45:02 +00:00
LoopUnroll.cpp Preserve dom info. 2008-07-03 07:04:22 +00:00
LoopUnswitch.cpp Do not try to update dominator info while manipulating CFG. This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream. 2008-07-03 17:37:52 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
MemCpyOptimizer.cpp Fix two issues that Eli Friedman pointed out, where would misoptimized code like: 2008-06-01 22:26:26 +00:00
PredicateSimplifier.cpp InequalityGraph::node() can create new nodes, invalidating iterators across 2008-05-27 00:59:05 +00:00
Reassociate.cpp API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
Reg2Mem.cpp API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.) 2008-05-16 19:29:10 +00:00
Scalar.cpp C and Objective Caml bindings for mem2reg and reg2mem. 2008-03-20 17:16:03 +00:00
ScalarReplAggregates.cpp minor tidying of comments. 2008-06-23 17:11:23 +00:00
SCCP.cpp Enable first-class aggregates support. 2008-07-23 00:34:11 +00:00
SimplifyCFGPass.cpp rename SimplifyCFG.cpp -> SimplifyCFGPass.cpp 2008-05-14 20:38:44 +00:00
SimplifyLibCalls.cpp - Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag. 2008-06-30 07:31:25 +00:00
TailDuplication.cpp Revert 52223. 2008-06-12 20:55:39 +00:00
TailRecursionElimination.cpp Fix a case where tailcallelim wouldn't set the changed bit when it made a change. 2008-06-14 00:49:48 +00:00