Make deadargelim a bit less smart, so it doesn't choke on nested structs as
authorMatthijs Kooijman <matthijs@stdin.nl>
Tue, 15 Jul 2008 14:03:10 +0000 (14:03 +0000)
committerMatthijs Kooijman <matthijs@stdin.nl>
Tue, 15 Jul 2008 14:03:10 +0000 (14:03 +0000)
commiteb32b453b3f4aaea5f93665ec5291a7dab864c5d
tree29b0218988eb833bc04ca903362d9436edc63890
parent9c9418d0f36c8162f0a4f13193164a5509db0b5f
Make deadargelim a bit less smart, so it doesn't choke on nested structs as
return values that are still (partially) live. Instead of updating all uses of
a call instruction after removing some elements, it now just rebuilds the
original struct (With undef gaps where the unused values were) and leaves it to
instcombine to clean this up.

The added testcase still fails currently, but this is due to instcombine which
isn't good enough yet. I will fix that part next.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53608 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/IPO/DeadArgumentElimination.cpp
test/Transforms/DeadArgElim/multdeadretval.ll