[RISCV][NFC] Clean up RISCVDAGToDAGISel::Select
authorAlex Bradbury <asb@lowrisc.org>
Tue, 21 Nov 2017 12:00:19 +0000 (12:00 +0000)
committerAlex Bradbury <asb@lowrisc.org>
Tue, 21 Nov 2017 12:00:19 +0000 (12:00 +0000)
As pointed out in post-commit review of r318738, `return ReplaceNode(..)` when
both ReplaceNode and the current function return void is confusing. This patch
moves to using a more obvious early return, and moves to just using an if to
catch the one case we currently care about. A future patch that adds further
custom instruction selection can introduce a switch.

llvm-svn: 318757

llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp

index 97ad7a5..5b038df 100644 (file)
@@ -65,21 +65,16 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
   // Instruction Selection not handled by the auto-generated tablegen selection
   // should be handled here.
   EVT VT = Node->getValueType(0);
-  switch (Opcode) {
-  case ISD::Constant:
-    if (VT == XLenVT) {
-      ConstantSDNode *ConstNode = cast<ConstantSDNode>(Node);
-      // Materialize zero constants as copies from X0. This allows the coalescer
-      // to propagate these into other instructions.
-      if (ConstNode->isNullValue()) {
-        SDValue New = CurDAG->getCopyFromReg(CurDAG->getEntryNode(),
-                                             SDLoc(Node), RISCV::X0, XLenVT);
-        return ReplaceNode(Node, New.getNode());
-      }
+  if (Opcode == ISD::Constant && VT == XLenVT) {
+    auto *ConstNode = cast<ConstantSDNode>(Node);
+    // Materialize zero constants as copies from X0. This allows the coalescer
+    // to propagate these into other instructions.
+    if (ConstNode->isNullValue()) {
+      SDValue New = CurDAG->getCopyFromReg(CurDAG->getEntryNode(), SDLoc(Node),
+                                           RISCV::X0, XLenVT);
+      ReplaceNode(Node, New.getNode());
+      return;
     }
-    break;
-  default:
-    break;
   }
 
   // Select the default instruction.