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

Chris Lattner lattner at cs.uiuc.edu
Wed Dec 21 10:03:04 PST 2005



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.236 -> 1.237
---
Log message:

fix a bug I introduced that broke recursive expansion of nodes (e.g. scalarizing vectors)


---
Diffs of the changes:  (+6 -3)

 LegalizeDAG.cpp |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.236 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.237
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.236	Mon Dec 19 18:53:54 2005
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Wed Dec 21 12:02:52 2005
@@ -3827,9 +3827,12 @@
                                           std::make_pair(Lo, Hi))).second;
   assert(isNew && "Value already expanded?!?");
   
-  // Make sure the resultant values have been legalized themselves.
-  Lo = LegalizeOp(Lo);
-  Hi = LegalizeOp(Hi);
+  // Make sure the resultant values have been legalized themselves, unless this
+  // is a type that requires multi-step expansion.
+  if (getTypeAction(NVT) != Expand && NVT != MVT::isVoid) {
+    Lo = LegalizeOp(Lo);
+    Hi = LegalizeOp(Hi);
+  }
 }
 
 






More information about the llvm-commits mailing list