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 | f076e79388c3e0648c7f0ee72127a39ce7bc5ff5 (patch) | |
| tree | a1ebd921bd75800c57b5a0338083052adc123209 /llvm/lib | |
| parent | 95927c0fd02bd5f80c37ce8e66321422f4756224 (diff) | |
| download | bcm5719-llvm-f076e79388c3e0648c7f0ee72127a39ce7bc5ff5.tar.gz bcm5719-llvm-f076e79388c3e0648c7f0ee72127a39ce7bc5ff5.zip | |
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.
llvm-svn: 269350
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp b/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp index 8d60258322e..ac2af036b6f 100644 --- a/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp +++ b/llvm/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) { |

