[WebAssembly] Factor out a TypeToString function, since we need it in multiple places.
authorDan Gohman <dan433584@gmail.com>
Sun, 6 Dec 2015 19:42:29 +0000 (19:42 +0000)
committerDan Gohman <dan433584@gmail.com>
Sun, 6 Dec 2015 19:42:29 +0000 (19:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254884 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h
lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp

index 9b94806c9533e1debcb483d028b5c413f2ad6d9e..3a151dec16f39ccb0b01475c17b245540cc6a238 100644 (file)
@@ -98,22 +98,7 @@ void WebAssemblyInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
     case WebAssembly::PARAM:
     case WebAssembly::RESULT:
     case WebAssembly::LOCAL:
     case WebAssembly::PARAM:
     case WebAssembly::RESULT:
     case WebAssembly::LOCAL:
-      switch (Op.getImm()) {
-      case MVT::i32:
-        O << "i32";
-        break;
-      case MVT::i64:
-        O << "i64";
-        break;
-      case MVT::f32:
-        O << "f32";
-        break;
-      case MVT::f64:
-        O << "f64";
-        break;
-      default:
-        llvm_unreachable("unexpected type");
-      }
+      O << WebAssembly::TypeToString(MVT::SimpleValueType(Op.getImm()));
       break;
     default:
       O << Op.getImm();
       break;
     default:
       O << Op.getImm();
@@ -126,3 +111,18 @@ void WebAssemblyInstPrinter::printOperand(const MCInst *MI, unsigned OpNo,
     Op.getExpr()->print(O, &MAI);
   }
 }
     Op.getExpr()->print(O, &MAI);
   }
 }
+
+const char *llvm::WebAssembly::TypeToString(MVT Ty) {
+  switch (Ty.SimpleTy) {
+  case MVT::i32:
+    return "i32";
+  case MVT::i64:
+    return "i64";
+  case MVT::f32:
+    return "f32";
+  case MVT::f64:
+    return "f64";
+  default:
+    llvm_unreachable("unsupported type");
+  }
+}
index 319c8ee1d5d9edc64bc7e019a5183ab921da4a28..20569da0b110d5871a525511e7624f60cebf41bd 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "llvm/MC/MCInstPrinter.h"
 #include "llvm/Support/raw_ostream.h"
 
 #include "llvm/MC/MCInstPrinter.h"
 #include "llvm/Support/raw_ostream.h"
+#include "llvm/CodeGen/MachineValueType.h"
 
 namespace llvm {
 
 
 namespace llvm {
 
@@ -40,6 +41,12 @@ public:
   static const char *getRegisterName(unsigned RegNo);
 };
 
   static const char *getRegisterName(unsigned RegNo);
 };
 
+namespace WebAssembly {
+
+const char *TypeToString(MVT Ty);
+
+} // end namespace WebAssembly
+
 } // end namespace llvm
 
 #endif
 } // end namespace llvm
 
 #endif
index cfabc21ea4d933bf5727ee3a008b860037820284..1b175a7f8d5b2e3fa6907d781126580ece4898bf 100644 (file)
@@ -115,21 +115,7 @@ std::string WebAssemblyAsmPrinter::regToString(const MachineOperand &MO) {
 }
 
 const char *WebAssemblyAsmPrinter::toString(MVT VT) const {
 }
 
 const char *WebAssemblyAsmPrinter::toString(MVT VT) const {
-  switch (VT.SimpleTy) {
-  default:
-    break;
-  case MVT::f32:
-    return "f32";
-  case MVT::f64:
-    return "f64";
-  case MVT::i32:
-    return "i32";
-  case MVT::i64:
-    return "i64";
-  }
-  DEBUG(dbgs() << "Invalid type " << EVT(VT).getEVTString() << '\n');
-  llvm_unreachable("invalid type");
-  return "<invalid>";
+  return WebAssembly::TypeToString(VT);
 }
 
 //===----------------------------------------------------------------------===//
 }
 
 //===----------------------------------------------------------------------===//