From: Devang Patel Date: Wed, 5 Mar 2008 00:36:59 +0000 (+0000) Subject: Skip functions that return multiple values. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4d519457d1ee72d14d62a5823b03449dc0e3df6e;p=oota-llvm.git Skip functions that return multiple values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47924 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp index f9aaa236666..5d151ed70a0 100644 --- a/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp +++ b/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp @@ -50,6 +50,11 @@ bool UnifyFunctionExitNodes::runOnFunction(Function &F) { // Loop over all of the blocks in a function, tracking all of the blocks that // return. // + + // PHINode can not handle aggregates returned by multiple value ret + // instructions. TODO: Handle each return value independently. + if (isa(F.getReturnType())) + return false; std::vector ReturningBlocks; std::vector UnwindingBlocks; std::vector UnreachableBlocks;