[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Chris Lattner lattner at cs.uiuc.edu
Sat Mar 18 22:47:33 PST 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.324 -> 1.325
---
Log message:

Allow SCALAR_TO_VECTOR to be custom lowered.


---
Diffs of the changes:  (+9 -0)

 LegalizeDAG.cpp |    9 +++++++++
 1 files changed, 9 insertions(+)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.324 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.325
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.324	Sun Mar 19 00:31:19 2006
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Sun Mar 19 00:47:21 2006
@@ -783,9 +783,18 @@
     default: assert(0 && "This action is not supported yet!");
     case TargetLowering::Legal:
       break;
+    case TargetLowering::Custom:
+      Tmp3 = TLI.LowerOperation(Result, DAG);
+      if (Tmp3.Val) {
+        Result = Tmp3;
+        break;
+      }
+      // FALLTHROUGH
     case TargetLowering::Expand: {
       // If the target doesn't support this, store the value to a temporary
       // stack slot, then EXTLOAD the vector back out.
+      // TODO: If a target doesn't support this, create a stack slot for the
+      // whole vector, then store into it, then load the whole vector.
       SDOperand StackPtr = 
         CreateStackTemporary(Node->getOperand(0).getValueType());
       SDOperand Ch = DAG.getNode(ISD::STORE, MVT::Other, DAG.getEntryNode(),






More information about the llvm-commits mailing list