Index: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp =================================================================== --- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp +++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -2612,6 +2612,7 @@ DEBUG(dbgs() << "=> "; ResHi.getNode()->dump(CurDAG); dbgs() << '\n'); } + CurDAG->RemoveDeadNode(Node); return; } @@ -2796,6 +2797,7 @@ ReplaceUses(SDValue(Node, 1), Result); DEBUG(dbgs() << "=> "; Result.getNode()->dump(CurDAG); dbgs() << '\n'); } + CurDAG->RemoveDeadNode(Node); return; } @@ -2854,6 +2856,7 @@ // one, do not call ReplaceAllUsesWith. ReplaceUses(SDValue(Node, (Opcode == X86ISD::SUB ? 1 : 0)), SDValue(NewNode, 0)); + CurDAG->RemoveDeadNode(Node); return; } @@ -2889,6 +2892,7 @@ // one, do not call ReplaceAllUsesWith. ReplaceUses(SDValue(Node, (Opcode == X86ISD::SUB ? 1 : 0)), SDValue(NewNode, 0)); + CurDAG->RemoveDeadNode(Node); return; } @@ -2909,6 +2913,7 @@ // one, do not call ReplaceAllUsesWith. ReplaceUses(SDValue(Node, (Opcode == X86ISD::SUB ? 1 : 0)), SDValue(NewNode, 0)); + CurDAG->RemoveDeadNode(Node); return; } @@ -2929,6 +2934,7 @@ // one, do not call ReplaceAllUsesWith. ReplaceUses(SDValue(Node, (Opcode == X86ISD::SUB ? 1 : 0)), SDValue(NewNode, 0)); + CurDAG->RemoveDeadNode(Node); return; } }