[WebAssembly] Refactor WasmSignature and use it for MCSymbolWasm
MCContext does not destroy MCSymbols on shutdown. So, rather than putting
SmallVectors (which may heap-allocate) inside MCSymbolWasm, use unowned pointer
to a WasmSignature instead. The signatures are now owned by the AsmPrinter.
Also uses WasmSignature instead of param and result vectors in TargetStreamer,
and leaves some TODOs for further simplification.
Differential Revision: https://reviews.llvm.org/D52580
llvm-svn: 343733
diff --git a/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp b/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
index 045d4fb..b7b8c4f 100644
--- a/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
+++ b/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
@@ -235,26 +235,19 @@
}
}
-const char *llvm::WebAssembly::TypeToString(MVT Ty) {
- switch (Ty.SimpleTy) {
- case MVT::i32:
+const char *llvm::WebAssembly::TypeToString(wasm::ValType Ty) {
+ switch (Ty) {
+ case wasm::ValType::I32:
return "i32";
- case MVT::i64:
+ case wasm::ValType::I64:
return "i64";
- case MVT::f32:
+ case wasm::ValType::F32:
return "f32";
- case MVT::f64:
+ case wasm::ValType::F64:
return "f64";
- case MVT::v16i8:
- case MVT::v8i16:
- case MVT::v4i32:
- case MVT::v2i64:
- case MVT::v4f32:
- case MVT::v2f64:
+ case wasm::ValType::V128:
return "v128";
- case MVT::ExceptRef:
+ case wasm::ValType::EXCEPT_REF:
return "except_ref";
- default:
- llvm_unreachable("unsupported type");
}
}