llvm-6502/lib/Transforms/Scalar
Chris Lattner 896617b776 Improve ValueAlreadyLiveAtInst with a cheap and dirty, but effective
heuristic: the value is already live at the new memory operation if
it is used by some other instruction in the memop's block.  This is
cheap and simple to compute (moreso than full liveness).

This improves the new heuristic even more.  For example, it cuts two
out of three new instructions out of 255.vortex:DbmFileInGrpHdr, 
which is one of the functions that the heuristic regressed.  This
overall eliminates another 40 instructions from 403.gcc and visibly
reduces register pressure in 255.vortex (though this only actually
ends up saving the 2 instructions from the whole program).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60084 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-26 03:20:37 +00:00
..
ADCE.cpp Let instcombiner remove redundant dbg intrinsics. 2008-11-19 18:59:41 +00:00
BasicBlockPlacement.cpp
CMakeLists.txt CMake: updated list of source files. 2008-11-05 00:11:22 +00:00
CodeGenPrepare.cpp Improve ValueAlreadyLiveAtInst with a cheap and dirty, but effective 2008-11-26 03:20:37 +00:00
CondPropagate.cpp
ConstantProp.cpp
DCE.cpp Decrementing the iterator here could be wrong if the worklist is empty after the "erase". 2008-09-18 23:04:18 +00:00
DeadStoreElimination.cpp Factorize code: remove variants of "strip off 2008-10-01 15:25:41 +00:00
GVN.cpp fix memleak by cleaning the global sets on pass exit 2008-10-10 16:25:50 +00:00
GVNPRE.cpp
IndVarSimplify.cpp Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer. 2008-11-26 01:11:57 +00:00
InstructionCombining.cpp reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an 2008-11-21 16:42:48 +00:00
JumpThreading.cpp
LICM.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
LoopDeletion.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
LoopIndexSplit.cpp If the sign of exit condition and split condition does not match 2008-11-10 19:48:34 +00:00
LoopRotation.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
LoopStrengthReduce.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
LoopUnroll.cpp Change create*Pass factory functions to return Pass* instead of 2008-10-22 23:32:42 +00:00
LoopUnswitch.cpp Ignore conditions that are outside the loop. 2008-11-03 19:38:07 +00:00
Makefile
MemCpyOptimizer.cpp reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an 2008-11-21 16:42:48 +00:00
PredicateSimplifier.cpp Silence unused variable warnings. 2008-11-21 20:00:59 +00:00
Reassociate.cpp Fix build failure. 2008-11-21 21:00:20 +00:00
Reg2Mem.cpp
Scalar.cpp
ScalarReplAggregates.cpp Allow SROA of vectors. Removing this caused a 2008-11-04 20:54:03 +00:00
SCCP.cpp Fix unused variable warnings. 2008-11-21 01:52:59 +00:00
SimplifyCFGPass.cpp Large mechanical patch. 2008-09-25 21:00:45 +00:00
SimplifyHalfPowrLibCalls.cpp Add a new pass to simplify specific half_powr function calls. This is 2008-11-04 23:41:45 +00:00
SimplifyLibCalls.cpp reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an 2008-11-21 16:42:48 +00:00
TailDuplication.cpp
TailRecursionElimination.cpp