diff options
| author | Justin Bogner <mail@justinbogner.com> | 2016-05-11 21:13:17 +0000 |
|---|---|---|
| committer | Justin Bogner <mail@justinbogner.com> | 2016-05-11 21:13:17 +0000 |
| commit | 31d7da3b5f43c40ce1ab3f0ed42b44225f052416 (patch) | |
| tree | 9ec68c918d00b515cb6b47128d628c819f710e83 /llvm/lib | |
| parent | b3534c494ff3380d6a30fbb2a6c265cad2efcaec (diff) | |
| download | bcm5719-llvm-31d7da3b5f43c40ce1ab3f0ed42b44225f052416.tar.gz bcm5719-llvm-31d7da3b5f43c40ce1ab3f0ed42b44225f052416.zip | |
SDAG: Add a helper to replace and remove a node during ISel
It's very common to want to replace a node and then remove it since
it's dead, especially as we port backends from the SDNode *Select API
to the void Select one. This helper makes this sequence a bit less
verbose.
llvm-svn: 269236
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index db7e5fe5756..92be2c0f42d 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -2014,8 +2014,7 @@ void X86DAGToDAGISel::Select(SDNode *Node) { break; } case X86ISD::GlobalBaseReg: - ReplaceUses(Node, getGlobalBaseReg()); - CurDAG->RemoveDeadNode(Node); + ReplaceNode(Node, getGlobalBaseReg()); return; case X86ISD::SHRUNKBLEND: { @@ -2127,8 +2126,7 @@ void X86DAGToDAGISel::Select(SDNode *Node) { SDValue Ops[] = {N1, InFlag}; SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops); - ReplaceUses(SDValue(Node, 0), SDValue(CNode, 0)); - ReplaceUses(SDValue(Node, 1), SDValue(CNode, 1)); + ReplaceNode(Node, CNode); return; } @@ -2152,9 +2150,7 @@ void X86DAGToDAGISel::Select(SDNode *Node) { SDValue Ops[] = {N1, InFlag}; SDNode *CNode = CurDAG->getMachineNode(Opc, dl, VTs, Ops); - ReplaceUses(SDValue(Node, 0), SDValue(CNode, 0)); - ReplaceUses(SDValue(Node, 1), SDValue(CNode, 1)); - ReplaceUses(SDValue(Node, 2), SDValue(CNode, 2)); + ReplaceUses(Node, CNode); return; } |

