llvm-6502/lib/Transforms/IPO
Matthijs Kooijman d16918f843 Restructure dead argument elimination, try #3 :-)
Rewrite the DeadArgumentElimination pass, to use a more explicit tracking of
dependencies between return values and/or arguments. Also make the handling of
arguments and return values the same.

The pass now looks properly inside returned structs, but only at the first
level (ie, not inside nested structs).

This version fixed a few more bugs and was cleaned up a bit. It now passes all
of LLVM's testing, and should still pass SPEC2006. There is still a minor bug
with regard to returning nested structs. Since there is currently nothing that
emits such IR, I will fix that in a seperate commit (partly because it requires
a non-trivial fix).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53400 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-10 10:24:08 +00:00
..
ArgumentPromotion.cpp convert more operand loops to iterator formulation 2008-05-29 01:59:18 +00:00
ConstantMerge.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
DeadArgumentElimination.cpp Restructure dead argument elimination, try #3 :-) 2008-07-10 10:24:08 +00:00
DeadTypeElimination.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
ExtractGV.cpp Factor code to copy global value attributes like 2008-05-26 19:58:59 +00:00
GlobalDCE.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
GlobalOpt.cpp convert more operand loops to iterator formulation 2008-05-29 01:59:18 +00:00
IndMemRemoval.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
Inliner.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
InlineSimple.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
Internalize.cpp Rename a few variables to be more consistent. 2008-06-24 09:14:10 +00:00
IPConstantPropagation.cpp Use a CallSite to find the nth argument of a call/invoke instruction instead of 2008-06-19 08:53:24 +00:00
LoopExtractor.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
LowerSetJmp.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
PruneEH.cpp Less conservative verison of previous patch, 2008-05-16 23:18:52 +00:00
RaiseAllocations.cpp Use Instruction::eraseFromParent(). 2008-06-21 22:08:46 +00:00
StripDeadPrototypes.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
StripSymbols.cpp Clean up the use of static and anonymous namespaces. This turned up 2008-05-13 00:00:25 +00:00
StructRetPromotion.cpp Let StructRetPromotion check if all if its users are really calls or invokesn, 2008-06-05 08:57:20 +00:00