[llvm-commits] [llvm] r47924 - /llvm/trunk/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
Devang Patel
dpatel at apple.com
Tue Mar 4 16:36:59 PST 2008
Author: dpatel
Date: Tue Mar 4 18:36:59 2008
New Revision: 47924
URL: http://llvm.org/viewvc/llvm-project?rev=47924&view=rev
Log:
Skip functions that return multiple values.
Modified:
llvm/trunk/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
Modified: llvm/trunk/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp?rev=47924&r1=47923&r2=47924&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp Tue Mar 4 18:36:59 2008
@@ -50,6 +50,11 @@
// 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;
More information about the llvm-commits
mailing list