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

Chris Lattner sabre at nondot.org
Fri Apr 27 10:13:10 PDT 2007



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.489 -> 1.490
---
Log message:

Fix incorrect legalization of EHSELECTOR.  This fixes
CodeGen/Generic/2007-04-14-EHSelectorCrash.ll and PR1326: http://llvm.org/PR1326 


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

 LegalizeDAG.cpp |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.489 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.490
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.489	Fri Apr 27 02:33:31 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Fri Apr 27 12:12:52 2007
@@ -692,12 +692,14 @@
       Result = TLI.LowerOperation(Op, DAG);
       if (Result.Val) break;
       // Fall Thru
-    case TargetLowering::Legal:
-      Result = DAG.getNode(ISD::MERGE_VALUES, VT, DAG.getConstant(0, VT), Tmp1).
-                  getValue(Op.ResNo);
+    case TargetLowering::Legal: {
+      SDOperand Ops[] = { DAG.getConstant(0, VT), Tmp1 };
+      Result = DAG.getNode(ISD::MERGE_VALUES, DAG.getVTList(VT, MVT::Other),
+                           Ops, 2).getValue(Op.ResNo);
       break;
     }
     }
+    }
     break;
   case ISD::EHSELECTION: {
     Tmp1 = LegalizeOp(Node->getOperand(0));
@@ -714,12 +716,14 @@
       Result = TLI.LowerOperation(Op, DAG);
       if (Result.Val) break;
       // Fall Thru
-    case TargetLowering::Legal:
-      Result = DAG.getNode(ISD::MERGE_VALUES, VT, DAG.getConstant(0, VT), Tmp2).
-                  getValue(Op.ResNo);
+    case TargetLowering::Legal: {
+      SDOperand Ops[] = { DAG.getConstant(0, VT), Tmp2 };
+      Result = DAG.getNode(ISD::MERGE_VALUES, DAG.getVTList(VT, MVT::Other),
+                           Ops, 2).getValue(Op.ResNo);
       break;
     }
     }
+    }
     break;
   case ISD::AssertSext:
   case ISD::AssertZext:






More information about the llvm-commits mailing list