add some todos
authorChris Lattner <sabre@nondot.org>
Tue, 11 Apr 2006 02:00:08 +0000 (02:00 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 11 Apr 2006 02:00:08 +0000 (02:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27580 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 0bb6dd0301ff7b76d840d0c59c7a9591ba9a64d9..9c5c964332765cd95a991a4a9746434b78d5b3d6 100644 (file)
@@ -1427,10 +1427,16 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
             // Turn this into a return of the scalar type.
             Tmp2 = PackVectorOp(Tmp2, EVT);
             Result = DAG.UpdateNodeOperands(Result, Tmp1, Tmp2);
+            
+            // FIXME: Returns of gcc generic vectors smaller than a legal type
+            // should be returned in integer registers!
+            
             // The scalarized value type may not be legal, e.g. it might require
             // promotion or expansion.  Relegalize the return.
             Result = LegalizeOp(Result);
           } else {
+            // FIXME: Returns of gcc generic vectors larger than a legal vector
+            // type should be returned by reference!
             SDOperand Lo, Hi;
             SplitVectorOp(Tmp2, Lo, Hi);
             Result = DAG.getNode(ISD::RET, MVT::Other, Tmp1, Lo, Hi);
@@ -1458,6 +1464,8 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
           break;
         case Expand: {
           SDOperand Lo, Hi;
+          assert(Node->getOperand(i).getValueType() != MVT::Vector &&
+                 "FIXME: TODO: implement returning non-legal vector types!");
           ExpandOp(Node->getOperand(i), Lo, Hi);
           NewValues.push_back(Lo);
           NewValues.push_back(Hi);