Delete unnecessarily cautious LastCALLSEQ code.
authorDan Gohman <gohman@apple.com>
Tue, 26 Jul 2011 22:00:59 +0000 (22:00 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 26 Jul 2011 22:00:59 +0000 (22:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136156 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index aadfa2642034a2c0eeba32f7cc13402df581342a..57d6e8a08d021a714db43c4a79cc2a189150f0f7 100644 (file)
@@ -912,12 +912,7 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
     case ISD::BR_JT:
     case ISD::BR_CC:
     case ISD::BRCOND:
-      assert(LastCALLSEQ.size() == 1 && "branch inside CALLSEQ_BEGIN/END?");
-      // Branches tweak the chain to include LastCALLSEQ
-      Ops[0] = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, Ops[0],
-                           getLastCALLSEQ());
       Ops[0] = LegalizeOp(Ops[0]);
-      setLastCALLSEQ(DAG.getEntryNode());
       break;
     case ISD::SHL:
     case ISD::SRL:
@@ -1021,14 +1016,6 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
     // libcalls), create the new CALLSEQ_START node.
     Tmp1 = LegalizeOp(Node->getOperand(0));  // Legalize the chain.
 
-    // Merge in the last call to ensure that this call starts after the last
-    // call ended.
-    if (getLastCALLSEQ().getOpcode() != ISD::EntryToken) {
-      Tmp1 = DAG.getNode(ISD::TokenFactor, dl, MVT::Other,
-                         Tmp1, getLastCALLSEQ());
-      Tmp1 = LegalizeOp(Tmp1);
-    }
-
     // Do not try to legalize the target-specific arguments (#1+).
     if (Tmp1 != Node->getOperand(0)) {
       SmallVector<SDValue, 8> Ops(Node->op_begin(), Node->op_end());
@@ -1050,7 +1037,7 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
     setLastCALLSEQ(SDValue(CallEnd, 0));
 
     // Legalize the call, starting from the CALLSEQ_END.
-    LegalizeOp(getLastCALLSEQ());
+    LegalizeOp(SDValue(CallEnd, 0));
     return Result;
   }
   case ISD::CALLSEQ_END: