[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