diff options
author | Justin Bogner <mail@justinbogner.com> | 2016-05-12 21:14:47 +0000 |
---|---|---|
committer | Justin Bogner <mail@justinbogner.com> | 2016-05-12 21:14:47 +0000 |
commit | 156b5ed92ccd1ba255551f360dbaf13b8594f6b3 (patch) | |
tree | 8301f99dfbe475193c96c55de522483d1eb5eaeb /lib/Target/BPF | |
parent | 42e9bbeb4c443addca4bd7d5449e7064a80d022b (diff) |
SDAG: Implement Select instead of SelectImpl in BPFDAGToDAGISel
- Where we were returning a node before, call ReplaceNode instead.
- Where we were calling SelectNodeTo, just return afterwards.
Part of llvm.org/pr26808.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269350 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/BPF')
-rw-r--r-- | lib/Target/BPF/BPFISelDAGToDAG.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/lib/Target/BPF/BPFISelDAGToDAG.cpp b/lib/Target/BPF/BPFISelDAGToDAG.cpp index 8d60258322e..ac2af036b6f 100644 --- a/lib/Target/BPF/BPFISelDAGToDAG.cpp +++ b/lib/Target/BPF/BPFISelDAGToDAG.cpp @@ -46,7 +46,7 @@ private: // Include the pieces autogenerated from the target description. #include "BPFGenDAGISel.inc" - SDNode *SelectImpl(SDNode *N) override; + void Select(SDNode *N) override; // Complex Pattern for address selection. bool SelectAddr(SDValue Addr, SDValue &Base, SDValue &Offset); @@ -115,7 +115,7 @@ bool BPFDAGToDAGISel::SelectFIAddr(SDValue Addr, SDValue &Base, SDValue &Offset) return false; } -SDNode *BPFDAGToDAGISel::SelectImpl(SDNode *Node) { +void BPFDAGToDAGISel::Select(SDNode *Node) { unsigned Opcode = Node->getOpcode(); // Dump information about the Node being selected @@ -124,7 +124,7 @@ SDNode *BPFDAGToDAGISel::SelectImpl(SDNode *Node) { // If we have a custom node, we already have selected! if (Node->isMachineOpcode()) { DEBUG(dbgs() << "== "; Node->dump(CurDAG); dbgs() << '\n'); - return NULL; + return; } // tablegen selection should be handled here. @@ -168,22 +168,17 @@ SDNode *BPFDAGToDAGISel::SelectImpl(SDNode *Node) { EVT VT = Node->getValueType(0); SDValue TFI = CurDAG->getTargetFrameIndex(FI, VT); unsigned Opc = BPF::MOV_rr; - if (Node->hasOneUse()) - return CurDAG->SelectNodeTo(Node, Opc, VT, TFI); - return CurDAG->getMachineNode(Opc, SDLoc(Node), VT, TFI); + if (Node->hasOneUse()) { + CurDAG->SelectNodeTo(Node, Opc, VT, TFI); + return; + } + ReplaceNode(Node, CurDAG->getMachineNode(Opc, SDLoc(Node), VT, TFI)); + return; } } // Select the default instruction - SDNode *ResNode = SelectCode(Node); - - DEBUG(dbgs() << "=> "; - if (ResNode == nullptr || ResNode == Node) - Node->dump(CurDAG); - else - ResNode->dump(CurDAG); - dbgs() << '\n'); - return ResNode; + SelectCode(Node); } FunctionPass *llvm::createBPFISelDag(BPFTargetMachine &TM) { |