summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2016-05-11 21:13:17 +0000
committerJustin Bogner <mail@justinbogner.com>2016-05-11 21:13:17 +0000
commit31d7da3b5f43c40ce1ab3f0ed42b44225f052416 (patch)
tree9ec68c918d00b515cb6b47128d628c819f710e83 /llvm/lib
parentb3534c494ff3380d6a30fbb2a6c265cad2efcaec (diff)
downloadbcm5719-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.cpp10
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;
}
OpenPOWER on IntegriCloud