diff options
author | Devang Patel <dpatel@apple.com> | 2008-03-05 00:36:59 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2008-03-05 00:36:59 +0000 |
commit | e516aa1127f17f565f86c367eeda4cfead2e24cf (patch) | |
tree | 7e01b0723a31f210f6812f0d0e9770941adf247e /llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | |
parent | d5804b31c4570783de2b27bfe57562be6a8f3569 (diff) | |
download | llvm-e516aa1127f17f565f86c367eeda4cfead2e24cf.zip llvm-e516aa1127f17f565f86c367eeda4cfead2e24cf.tar.gz llvm-e516aa1127f17f565f86c367eeda4cfead2e24cf.tar.bz2 |
Skip functions that return multiple values.
llvm-svn: 47924
Diffstat (limited to 'llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp b/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp index f9aaa23..5d151ed 100644 --- a/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp +++ b/llvm/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<StructType>(F.getReturnType())) + return false; std::vector<BasicBlock*> ReturningBlocks; std::vector<BasicBlock*> UnwindingBlocks; std::vector<BasicBlock*> UnreachableBlocks; |