llvm/test/Transforms/DeadArgElim
Tim Northover c4af8c9467 DeadArgElim: assess uses of entire return value aggregate.
Previously, a non-extractvalue use of an aggregate return value meant
the entire return was considered live (the algorithm gave up
entirely). This was correct, but conservative. It's better to actually
look at that Use, making the analysis results apply to all sub-values
under consideration.

E.g.

  %val = call { i32, i32 } @whatever()
  [...]
  ret { i32, i32 } %val

The return is using the entire aggregate (sub-values 0 and 1). We can
still simplify @whatever if we can prove that this return is itself
unused.

Also unifies the logic slightly between aggregate and non-aggregate
cases..

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228558 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-09 01:20:53 +00:00
..
2006-06-27-struct-ret.ll
2007-02-07-FuncRename.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2007-10-18-VarargsReturn.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2007-12-20-ParamAttrs.ll Use references to attribute groups on the call/invoke instructions. 2013-02-22 09:09:42 +00:00
2008-01-16-VarargsParamAttrs.ll
2008-06-23-DeadAfterLive.ll Fix grammar in test. 2011-05-22 01:16:00 +00:00
2009-03-17-MRE-Invoke.ll Update some tests to the new EH scheme. 2011-09-01 00:58:03 +00:00
2010-04-30-DbgInfo.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
2013-05-17-VarargsAndBlockAddress.ll Fix DeleteDeadVarargs not to crash on functions referenced by BlockAddresses 2013-06-13 19:51:17 +00:00
aggregates.ll DeadArgElim: assess uses of entire return value aggregate. 2015-02-09 01:20:53 +00:00
basictest.ll
canon.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
dbginfo.ll IR: Move MDLocation into place 2015-01-14 22:27:36 +00:00
dead_vaargs.ll musttail: Don't eliminate varargs packs if there is a forwarding call 2014-08-26 00:59:51 +00:00
deadexternal.ll Fix broken CHECK lines 2014-02-16 07:31:05 +00:00
deadretval2.ll
deadretval.ll
keepalive.ll IR: Change inalloca's grammar a bit 2014-03-09 06:41:58 +00:00
linkage.ll Fix a bug in Dead Argument Elimination. 2013-10-09 17:21:44 +00:00
multdeadretval.ll
returned.ll Start using CHECK-LABEL in some tests. 2013-07-12 14:54:12 +00:00
variadic_safety.ll Make DeadArgumentElimination more conservative on variadic functions 2013-06-09 02:17:27 +00:00