1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms/DeadArgElim
David Majnemer db93b7df86 [DeadArgElim] Split the invoke successor edge
Invoking a function which returns an aggregate can sometimes be
transformed to return a scalar value.  However, this means that we need
to create an insertvalue instruction(s) to recreate the correct
aggregate type.  We achieved this by inserting an insertvalue
instruction at the invoke's normal successor.  However, this is not
feasible if the normal successor uses the invoke's return value inside a
PHI node.

Instead, split the edge between the invoke and the unwind successor and
create the insertvalue instruction in the new basic block.  The new
basic block's successor will be the old invoke successor which leaves
us with IR which is well behaved.

This fixes PR24906.

llvm-svn: 248387
2015-09-23 15:41:09 +00:00
..
2006-06-27-struct-ret.ll
2007-02-07-FuncRename.ll
2007-10-18-VarargsReturn.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2007-12-20-ParamAttrs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-01-16-VarargsParamAttrs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-06-23-DeadAfterLive.ll
2009-03-17-MRE-Invoke.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2010-04-30-DbgInfo.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2013-05-17-VarargsAndBlockAddress.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
aggregates.ll [DeadArgElim] Split the invoke successor edge 2015-09-23 15:41:09 +00:00
basictest.ll
canon.ll
dbginfo.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
dead_vaargs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
deadexternal.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
deadretval2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
deadretval.ll
keepalive.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
linkage.ll Fix a bug in Dead Argument Elimination. 2013-10-09 17:21:44 +00:00
multdeadretval.ll
naked_functions.ll DeadArgElim: don't eliminate arguments from naked functions 2015-09-01 18:06:46 +00:00
returned.ll Start using CHECK-LABEL in some tests. 2013-07-12 14:54:12 +00:00
variadic_safety.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00