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 | |
| 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
| -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) {  | 

