llvm-6502/test/Transforms
Owen Anderson 5aa4f2a085 Add support to GVN for performing sret return slot optimization. This means that, if an sret function tail calls
another sret function, it should pass its own sret parameter to the tail callee, allowing it to fill in the correct
return value.  llvm-gcc does not emit this by default.  Instead, it allocates space in the caller for the sret of
the tail call and then uses memcpy to copy the result into the caller's sret parameter.  This optimization detects
and optimizes that case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47265 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-18 09:24:53 +00:00
..
ADCE Ding dong, the DoesntAccessMemoryFns and 2007-11-23 19:30:27 +00:00
ArgumentPromotion Don't drop function/call return attributes like 'nounwind'. 2008-02-01 20:37:16 +00:00
BlockPlacement Convert .cvsignore files 2007-06-29 16:35:07 +00:00
BranchFolding Don't branch fold inline asm statements. 2007-10-19 21:09:55 +00:00
CodeExtractor Convert .cvsignore files 2007-06-29 16:35:07 +00:00
CondProp Fix PR1575 and test/Transforms/CondProp/2007-08-01-InvalidRead.ll 2007-08-02 04:47:05 +00:00
ConstantMerge Convert .cvsignore files 2007-06-29 16:35:07 +00:00
ConstProp Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros. 2007-11-23 22:42:31 +00:00
DeadArgElim Test case for varargs parameter attribute issue I just fixed. 2008-01-17 07:26:31 +00:00
DeadStoreElimination Make DSE much more aggressive by performing DCE earlier. Update a testcase to reflect this increased aggressiveness. 2008-01-30 01:24:47 +00:00
DecomposeMultiDimRefs Convert .cvsignore files 2007-06-29 16:35:07 +00:00
GCSE Convert .cvsignore files 2007-06-29 16:35:07 +00:00
GlobalDCE Convert .cvsignore files 2007-06-29 16:35:07 +00:00
GlobalOpt Remove any 'nest' parameter attributes if the function 2008-02-16 20:56:04 +00:00
GVN Add support to GVN for performing sret return slot optimization. This means that, if an sret function tail calls 2008-02-18 09:24:53 +00:00
GVNPRE For PR1553: 2007-07-19 23:13:04 +00:00
IndVarsSimplify Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops. 2007-11-25 22:41:31 +00:00
Inline Revert r46393: readonly/readnone functions are no 2008-01-27 18:12:58 +00:00
InstCombine optimize away stackrestore calls that have no intervening alloca or call. 2008-02-18 06:12:38 +00:00
IPConstantProp Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LCSSA Bunch of tests to check loop passes. 2007-07-31 08:04:17 +00:00
LICM Update this testcase. The output needs to be disabled to pass. 2008-01-01 01:34:36 +00:00
LoopIndexSplit If loop header is also loop exiting block then OrigPN is incoming value for B loop header. 2008-02-14 23:18:47 +00:00
LoopRotate Ding dong, the DoesntAccessMemoryFns and 2007-11-23 19:30:27 +00:00
LoopSimplify Fix PR1752 and LoopSimplify/2007-10-28-InvokeCrash.ll: terminators 2007-10-29 02:30:37 +00:00
LoopStrengthReduce Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
LoopUnroll Be more careful modifying the use_list while also iterating through it. 2008-01-27 18:35:00 +00:00
LoopUnswitch Fix bug in updating dominance frontier after loop 2007-10-05 22:29:34 +00:00
LowerInvoke Fix PR2029 2008-02-14 19:18:13 +00:00
LowerSetJmp Convert .cvsignore files 2007-06-29 16:35:07 +00:00
LowerSwitch Convert tests using "| wc -l | grep ..." to use the count script. 2007-08-15 13:36:28 +00:00
Mem2Reg Don't promote volatile loads/stores. This is needed (for example) to handle setjmp/longjmp properly. 2007-08-26 21:43:30 +00:00
PredicateSimplifier Excuse me. 2007-09-20 00:57:00 +00:00
PruneEH Make PruneEH update the nounwind/noreturn attributes 2007-12-10 19:09:40 +00:00
RaiseAllocations Do not raise free() call that is called through invoke instruction. 2007-10-17 20:12:58 +00:00
Reassociate Split up subtracts into add+negate if they have a reassociable use or operand 2008-02-17 20:51:26 +00:00
ScalarRepl Fix a bug where scalarrepl would discard offset if type would match. 2008-01-30 00:39:15 +00:00
SCCP Fix PR1938 by forcing the code that uses an undefined value to branch one 2008-01-28 00:32:30 +00:00
SimplifyCFG don't hoist FP additions into unconditional adds + selects. This 2008-01-03 07:25:26 +00:00
SimplifyLibCalls Convert tests using "grep -c ... | grep ..." to use the count script. 2007-08-15 13:49:33 +00:00
StripSymbols Do not strip llvm.used values. 2008-01-16 03:33:05 +00:00
TailCallElim remove obsolete testcase 2007-09-10 23:51:41 +00:00
TailDup Change the x86 assembly output to use tab characters to separate the 2007-07-31 20:11:57 +00:00