[llvm] r297777 - [WebAssembly] Use LEB encoding for value types

Derek Schuff via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 14 13:23:23 PDT 2017


Author: dschuff
Date: Tue Mar 14 15:23:22 2017
New Revision: 297777

URL: http://llvm.org/viewvc/llvm-project?rev=297777&view=rev
Log:
[WebAssembly] Use LEB encoding for value types

Previously we were using the encoded LEB hex values
for the value types.  This change uses the decoded
negative value and the LEB encoder to write them out.

Differential Revision: https://reviews.llvm.org/D30847

Patch by Sam Clegg

Modified:
    llvm/trunk/include/llvm/MC/MCSymbolWasm.h
    llvm/trunk/include/llvm/Support/Wasm.h
    llvm/trunk/lib/MC/WasmObjectWriter.cpp
    llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
    llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
    llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
    llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
    llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h

Modified: llvm/trunk/include/llvm/MC/MCSymbolWasm.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCSymbolWasm.h?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCSymbolWasm.h (original)
+++ llvm/trunk/include/llvm/MC/MCSymbolWasm.h Tue Mar 14 15:23:22 2017
@@ -10,14 +10,15 @@
 #define LLVM_MC_MCSYMBOLWASM_H
 
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Wasm.h"
 
 namespace llvm {
 class MCSymbolWasm : public MCSymbol {
 private:
   bool IsFunction = false;
   std::string ModuleName;
-  SmallVector<unsigned, 1> Returns;
-  SmallVector<unsigned, 4> Params;
+  SmallVector<wasm::ValType, 1> Returns;
+  SmallVector<wasm::ValType, 4> Params;
 
   /// An expression describing how to calculate the size of a symbol. If a
   /// symbol has no size this field will be NULL.
@@ -39,13 +40,15 @@ public:
 
   const StringRef getModuleName() const { return ModuleName; }
 
-  const SmallVector<unsigned, 1> &getReturns() const { return Returns; }
-  void setReturns(SmallVectorImpl<unsigned> &&Rets) {
+  const SmallVector<wasm::ValType, 1> &getReturns() const { return Returns; }
+
+  void setReturns(SmallVectorImpl<wasm::ValType> &&Rets) {
     Returns = std::move(Rets);
   }
 
-  const SmallVector<unsigned, 4> &getParams() const { return Params; }
-  void setParams(SmallVectorImpl<unsigned> &&Pars) {
+  const SmallVector<wasm::ValType, 4> &getParams() const { return Params; }
+
+  void setParams(SmallVectorImpl<wasm::ValType> &&Pars) {
     Params = std::move(Pars);
   }
 };

Modified: llvm/trunk/include/llvm/Support/Wasm.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Wasm.h?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/Wasm.h (original)
+++ llvm/trunk/include/llvm/Support/Wasm.h Tue Mar 14 15:23:22 2017
@@ -53,14 +53,14 @@ enum : unsigned {
 };
 
 // Type immediate encodings used in various contexts.
-enum : unsigned {
-  WASM_TYPE_I32          = 0x7f,
-  WASM_TYPE_I64          = 0x7e,
-  WASM_TYPE_F32          = 0x7d,
-  WASM_TYPE_F64          = 0x7c,
-  WASM_TYPE_ANYFUNC      = 0x70,
-  WASM_TYPE_FUNC         = 0x60,
-  WASM_TYPE_NORESULT     = 0x40, // for blocks with no result values
+enum {
+  WASM_TYPE_I32          = -0x01,
+  WASM_TYPE_I64          = -0x02,
+  WASM_TYPE_F32          = -0x03,
+  WASM_TYPE_F64          = -0x04,
+  WASM_TYPE_ANYFUNC      = -0x10,
+  WASM_TYPE_FUNC         = -0x20,
+  WASM_TYPE_NORESULT     = -0x40, // for blocks with no result values
 };
 
 // Kinds of externals (for imports and exports).
@@ -81,6 +81,14 @@ enum : unsigned {
   WASM_OPCODE_F64_CONST  = 0x44,
 };
 
+// Subset of types that a value can have
+enum class ValType {
+  I32 = WASM_TYPE_I32,
+  I64 = WASM_TYPE_I64,
+  F32 = WASM_TYPE_F32,
+  F64 = WASM_TYPE_F64,
+};
+
 #define WASM_RELOC(name, value) name = value,
 
 enum : unsigned {

Modified: llvm/trunk/lib/MC/WasmObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WasmObjectWriter.cpp?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/MC/WasmObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/WasmObjectWriter.cpp Tue Mar 14 15:23:22 2017
@@ -109,6 +109,10 @@ private:
 
   void writeHeader(const MCAssembler &Asm);
 
+  void writeValueType(wasm::ValType Ty) {
+    encodeSLEB128(int32_t(Ty), getStream());
+  }
+
   void recordRelocation(MCAssembler &Asm, const MCAsmLayout &Layout,
                         const MCFragment *Fragment, const MCFixup &Fixup,
                         MCValue Target, bool &IsPCRel,
@@ -140,7 +144,7 @@ void WasmObjectWriter::startSection(Sect
   assert((Name != nullptr) == (SectionId == wasm::WASM_SEC_CUSTOM) &&
          "Only custom sections can have names");
 
-  write8(SectionId);
+  encodeULEB128(SectionId, getStream());
 
   Section.SizeOffset = getStream().tell();
 
@@ -290,10 +294,10 @@ struct WasmFunctionType {
   enum { Plain, Empty, Tombstone } State;
 
   // The return types of the function.
-  SmallVector<unsigned, 1> Returns;
+  SmallVector<wasm::ValType, 1> Returns;
 
   // The parameter types of the function.
-  SmallVector<unsigned, 4> Params;
+  SmallVector<wasm::ValType, 4> Params;
 
   WasmFunctionType() : State(Plain) {}
 
@@ -317,10 +321,10 @@ struct WasmFunctionTypeDenseMapInfo {
   }
   static unsigned getHashValue(const WasmFunctionType &FuncTy) {
     uintptr_t Value = FuncTy.State;
-    for (unsigned Ret : FuncTy.Returns)
-      Value += DenseMapInfo<unsigned>::getHashValue(Ret);
-    for (unsigned Param : FuncTy.Params)
-      Value += DenseMapInfo<unsigned>::getHashValue(Param);
+    for (wasm::ValType Ret : FuncTy.Returns)
+      Value += DenseMapInfo<int32_t>::getHashValue(int32_t(Ret));
+    for (wasm::ValType Param : FuncTy.Params)
+      Value += DenseMapInfo<int32_t>::getHashValue(int32_t(Param));
     return Value;
   }
   static bool isEqual(const WasmFunctionType &LHS,
@@ -756,13 +760,13 @@ void WasmObjectWriter::writeObject(MCAss
     encodeULEB128(FunctionTypes.size(), getStream());
 
     for (WasmFunctionType &FuncTy : FunctionTypes) {
-      write8(wasm::WASM_TYPE_FUNC);
+      encodeSLEB128(wasm::WASM_TYPE_FUNC, getStream());
       encodeULEB128(FuncTy.Params.size(), getStream());
-      for (unsigned Ty : FuncTy.Params)
-        write8(Ty);
+      for (wasm::ValType Ty : FuncTy.Params)
+        writeValueType(Ty);
       encodeULEB128(FuncTy.Returns.size(), getStream());
-      for (unsigned Ty : FuncTy.Returns)
-        write8(Ty);
+      for (wasm::ValType Ty : FuncTy.Returns)
+        writeValueType(Ty);
     }
 
     endSection(Section);
@@ -782,15 +786,15 @@ void WasmObjectWriter::writeObject(MCAss
       encodeULEB128(FieldName.size(), getStream());
       writeBytes(FieldName);
 
-      write8(Import.Kind);
+      encodeULEB128(Import.Kind, getStream());
 
       switch (Import.Kind) {
       case wasm::WASM_EXTERNAL_FUNCTION:
         encodeULEB128(Import.Type, getStream());
         break;
       case wasm::WASM_EXTERNAL_GLOBAL:
-        write8(Import.Type);
-        write8(0); // mutability
+        encodeSLEB128(Import.Type, getStream());
+        encodeULEB128(0, getStream()); // mutability
         break;
       default:
         llvm_unreachable("unsupported import kind");
@@ -820,7 +824,7 @@ void WasmObjectWriter::writeObject(MCAss
   // The number of tables, fixed to 1 for now.
   encodeULEB128(1, getStream());
 
-  write8(wasm::WASM_TYPE_ANYFUNC);
+  encodeSLEB128(wasm::WASM_TYPE_ANYFUNC, getStream());
 
   encodeULEB128(0, getStream());                 // flags
   encodeULEB128(TableElems.size(), getStream()); // initial
@@ -846,7 +850,7 @@ void WasmObjectWriter::writeObject(MCAss
 
     encodeULEB128(Globals.size(), getStream());
     for (const WasmGlobal &Global : Globals) {
-      write8(Global.Type);
+      encodeSLEB128(Global.Type, getStream());
       write8(Global.IsMutable);
 
       write8(wasm::WASM_OPCODE_I32_CONST);
@@ -866,7 +870,7 @@ void WasmObjectWriter::writeObject(MCAss
       encodeULEB128(Export.FieldName.size(), getStream());
       writeBytes(Export.FieldName);
 
-      write8(Export.Kind);
+      encodeSLEB128(Export.Kind, getStream());
 
       encodeULEB128(Export.Index, getStream());
     }
@@ -1007,7 +1011,7 @@ void WasmObjectWriter::writeObject(MCAss
   if (!CodeRelocations.empty()) {
     startSection(Section, wasm::WASM_SEC_CUSTOM, "reloc.CODE");
 
-    write8(wasm::WASM_SEC_CODE);
+    encodeULEB128(wasm::WASM_SEC_CODE, getStream());
 
     encodeULEB128(CodeRelocations.size(), getStream());
 
@@ -1020,7 +1024,7 @@ void WasmObjectWriter::writeObject(MCAss
   if (!DataRelocations.empty()) {
     startSection(Section, wasm::WASM_SEC_CUSTOM, "reloc.DATA");
 
-    write8(wasm::WASM_SEC_DATA);
+    encodeULEB128(wasm::WASM_SEC_DATA, getStream());
 
     encodeULEB128(DataRelocations.size(), getStream());
 

Modified: llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp Tue Mar 14 15:23:22 2017
@@ -141,12 +141,12 @@ extern "C" void LLVMInitializeWebAssembl
   }
 }
 
-WebAssembly::ValType WebAssembly::toValType(const MVT &Ty) {
+wasm::ValType WebAssembly::toValType(const MVT &Ty) {
   switch (Ty.SimpleTy) {
-  case MVT::i32: return WebAssembly::ValType::I32;
-  case MVT::i64: return WebAssembly::ValType::I64;
-  case MVT::f32: return WebAssembly::ValType::F32;
-  case MVT::f64: return WebAssembly::ValType::F64;
+  case MVT::i32: return wasm::ValType::I32;
+  case MVT::i64: return wasm::ValType::I64;
+  case MVT::f32: return wasm::ValType::F32;
+  case MVT::f64: return wasm::ValType::F64;
   default: llvm_unreachable("unexpected type");
   }
 }

Modified: llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h (original)
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h Tue Mar 14 15:23:22 2017
@@ -17,6 +17,7 @@
 
 #include "llvm/MC/MCInstrDesc.h"
 #include "llvm/Support/DataTypes.h"
+#include "llvm/Support/Wasm.h"
 
 namespace llvm {
 
@@ -149,40 +150,25 @@ static const unsigned StoreP2AlignOperan
 
 /// This is used to indicate block signatures.
 enum class ExprType {
-  Void    = 0x40,
-  I32     = 0x7f,
-  I64     = 0x7e,
-  F32     = 0x7d,
-  F64     = 0x7c,
-  I8x16   = 0x7b,
-  I16x8   = 0x7a,
-  I32x4   = 0x79,
-  F32x4   = 0x78,
-  B8x16   = 0x77,
-  B16x8   = 0x76,
-  B32x4   = 0x75
-};
-
-/// This is used to indicate local types.
-enum class ValType {
-  I32     = 0x7f,
-  I64     = 0x7e,
-  F32     = 0x7d,
-  F64     = 0x7c,
-  I8x16   = 0x7b,
-  I16x8   = 0x7a,
-  I32x4   = 0x79,
-  F32x4   = 0x78,
-  B8x16   = 0x77,
-  B16x8   = 0x76,
-  B32x4   = 0x75
+  Void    = -0x40,
+  I32     = -0x01,
+  I64     = -0x02,
+  F32     = -0x03,
+  F64     = -0x04,
+  I8x16   = -0x05,
+  I16x8   = -0x06,
+  I32x4   = -0x07,
+  F32x4   = -0x08,
+  B8x16   = -0x09,
+  B16x8   = -0x0a,
+  B32x4   = -0x0b
 };
 
 /// Instruction opcodes emitted via means other than CodeGen.
 static const unsigned Nop = 0x01;
 static const unsigned End = 0x0b;
 
-ValType toValType(const MVT &Ty);
+wasm::ValType toValType(const MVT &Ty);
 
 } // end namespace WebAssembly
 } // end namespace llvm

Modified: llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp Tue Mar 14 15:23:22 2017
@@ -152,30 +152,20 @@ void WebAssemblyTargetELFStreamer::emitI
 void WebAssemblyTargetELFStreamer::emitGlobalImport(StringRef name) {
 }
 
-static unsigned MVT2WasmType(MVT Ty) {
-  switch (Ty.SimpleTy) {
-  case MVT::i32: return wasm::WASM_TYPE_I32;
-  case MVT::i64: return wasm::WASM_TYPE_I64;
-  case MVT::f32: return wasm::WASM_TYPE_F32;
-  case MVT::f64: return wasm::WASM_TYPE_F64;
-  default: llvm_unreachable("unsupported type");
-  }
-}
-
 void WebAssemblyTargetWasmStreamer::emitParam(MCSymbol *Symbol,
                                               ArrayRef<MVT> Types) {
-  SmallVector<unsigned, 4> Params;
+  SmallVector<wasm::ValType, 4> Params;
   for (MVT Ty : Types)
-    Params.push_back(MVT2WasmType(Ty));
+    Params.push_back(WebAssembly::toValType(Ty));
 
   cast<MCSymbolWasm>(Symbol)->setParams(std::move(Params));
 }
 
 void WebAssemblyTargetWasmStreamer::emitResult(MCSymbol *Symbol,
                                                ArrayRef<MVT> Types) {
-  SmallVector<unsigned, 4> Returns;
+  SmallVector<wasm::ValType, 4> Returns;
   for (MVT Ty : Types)
-    Returns.push_back(MVT2WasmType(Ty));
+    Returns.push_back(WebAssembly::toValType(Ty));
 
   cast<MCSymbolWasm>(Symbol)->setReturns(std::move(Returns));
 }

Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp Tue Mar 14 15:23:22 2017
@@ -45,32 +45,32 @@ WebAssemblyMCInstLower::GetGlobalAddress
     const TargetMachine &TM = MF.getTarget();
     const Function &CurrentFunc = *MF.getFunction();
 
-    SmallVector<unsigned, 4> Returns;
-    SmallVector<unsigned, 4> Params;
+    SmallVector<wasm::ValType, 4> Returns;
+    SmallVector<wasm::ValType, 4> Params;
 
-    WebAssembly::ValType iPTR =
+    wasm::ValType iPTR =
         MF.getSubtarget<WebAssemblySubtarget>().hasAddr64() ?
-        WebAssembly::ValType::I64 :
-        WebAssembly::ValType::I32;
+        wasm::ValType::I64 :
+        wasm::ValType::I32;
 
     SmallVector<MVT, 4> ResultMVTs;
     ComputeLegalValueVTs(CurrentFunc, TM, FuncTy->getReturnType(), ResultMVTs);
     // WebAssembly can't currently handle returning tuples.
     if (ResultMVTs.size() <= 1)
       for (MVT ResultMVT : ResultMVTs)
-        Returns.push_back(unsigned(WebAssembly::toValType(ResultMVT)));
+        Returns.push_back(WebAssembly::toValType(ResultMVT));
     else
-      Params.push_back(unsigned(iPTR));
+      Params.push_back(iPTR);
 
     for (Type *Ty : FuncTy->params()) {
       SmallVector<MVT, 4> ParamMVTs;
       ComputeLegalValueVTs(CurrentFunc, TM, Ty, ParamMVTs);
       for (MVT ParamMVT : ParamMVTs)
-        Params.push_back(unsigned(WebAssembly::toValType(ParamMVT)));
+        Params.push_back(WebAssembly::toValType(ParamMVT));
     }
 
     if (FuncTy->isVarArg())
-      Params.push_back(unsigned(iPTR));
+      Params.push_back(iPTR);
 
     WasmSym->setReturns(std::move(Returns));
     WasmSym->setParams(std::move(Params));
@@ -95,8 +95,8 @@ MCSymbol *WebAssemblyMCInstLower::GetExt
   if (strcmp(Name, "__stack_pointer") == 0)
     return WasmSym;
 
-  SmallVector<unsigned, 4> Returns;
-  SmallVector<unsigned, 4> Params;
+  SmallVector<wasm::ValType, 4> Returns;
+  SmallVector<wasm::ValType, 4> Params;
   GetSignature(Subtarget, Name, Returns, Params);
 
   WasmSym->setReturns(std::move(Returns));
@@ -128,15 +128,15 @@ MCOperand WebAssemblyMCInstLower::LowerS
 }
 
 // Return the WebAssembly type associated with the given register class.
-static unsigned getType(const TargetRegisterClass *RC) {
+static wasm::ValType getType(const TargetRegisterClass *RC) {
   if (RC == &WebAssembly::I32RegClass)
-    return unsigned(WebAssembly::ExprType::I32);
+    return wasm::ValType::I32;
   if (RC == &WebAssembly::I64RegClass)
-    return unsigned(WebAssembly::ExprType::I64);
+    return wasm::ValType::I64;
   if (RC == &WebAssembly::F32RegClass)
-    return unsigned(WebAssembly::ExprType::F32);
+    return wasm::ValType::F32;
   if (RC == &WebAssembly::F64RegClass)
-    return unsigned(WebAssembly::ExprType::F64);
+    return wasm::ValType::F64;
   llvm_unreachable("Unexpected register class");
 }
 
@@ -172,8 +172,8 @@ void WebAssemblyMCInstLower::Lower(const
         if (Info.OperandType == WebAssembly::OPERAND_TYPEINDEX) {
           MCSymbol *Sym = Printer.createTempSymbol("typeindex");
           if (!isa<MCSymbolELF>(Sym)) {
-            SmallVector<unsigned, 4> Returns;
-            SmallVector<unsigned, 4> Params;
+            SmallVector<wasm::ValType, 4> Returns;
+            SmallVector<wasm::ValType, 4> Params;
 
             const MachineRegisterInfo &MRI =
                 MI->getParent()->getParent()->getRegInfo();

Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp Tue Mar 14 15:23:22 2017
@@ -971,10 +971,8 @@ RuntimeLibcallNames[RTLIB::UNKNOWN_LIBCA
 };
 
 void llvm::GetSignature(const WebAssemblySubtarget &Subtarget,
-                        RTLIB::Libcall LC,
-                        SmallVectorImpl<unsigned> &Rets,
-                        SmallVectorImpl<unsigned> &Params)
-{
+                        RTLIB::Libcall LC, SmallVectorImpl<wasm::ValType> &Rets,
+                        SmallVectorImpl<wasm::ValType> &Params) {
   assert(Rets.empty());
   assert(Params.empty());
 
@@ -986,315 +984,313 @@ void llvm::GetSignature(const WebAssembl
   case func:
     break;
   case f32_func_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
     break;
   case f32_func_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F64);
     break;
   case f32_func_i32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case f32_func_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::I64);
     break;
   case f32_func_i16:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case f64_func_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F32);
     break;
   case f64_func_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
     break;
   case f64_func_i32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::I32);
     break;
   case f64_func_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i32_func_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::F32);
     break;
   case i32_func_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::F64);
     break;
   case i32_func_i32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case i64_func_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::F32);
     break;
   case i64_func_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::F64);
     break;
   case i64_func_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case f32_func_f32_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
     break;
   case f32_func_f32_i32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case f32_func_i64_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case f64_func_f64_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
     break;
   case f64_func_f64_i32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::I32);
     break;
   case f64_func_i64_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i16_func_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::F32);
     break;
   case i8_func_i8_i8:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case func_f32_iPTR_iPTR:
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
     break;
   case func_f64_iPTR_iPTR:
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
     break;
   case i16_func_i16_i16:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case i32_func_f32_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
     break;
   case i32_func_f64_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
     break;
   case i32_func_i32_i32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case i64_func_i64_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i64_i64_func_f32:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Params.push_back(wasm::ValType::F32);
     break;
   case i64_i64_func_f64:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Params.push_back(wasm::ValType::F64);
     break;
   case i16_i16_func_i16_i16:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::I32);
+    Rets.push_back(wasm::ValType::I32);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Params.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case i32_i32_func_i32_i32:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
+    Rets.push_back(wasm::ValType::I32);
+    Rets.push_back(wasm::ValType::I32);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Params.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I32);
     break;
   case i64_i64_func_i64_i64:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i64_i64_func_i64_i64_i64_i64:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i64_i64_i64_i64_func_i64_i64_i64_i64:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i64_i64_func_i64_i64_i32:
 #if 0 // TODO: Enable this when wasm gets multiple-return-value support.
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
-    Rets.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
+    Rets.push_back(wasm::ValType::I64);
 #else
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
 #endif
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I32);
     break;
   case iPTR_func_iPTR_i32_iPTR:
-    Rets.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(iPTR));
+    Rets.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType(iPTR));
     break;
   case iPTR_func_iPTR_iPTR_iPTR:
-    Rets.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
+    Rets.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
     break;
   case f32_func_f32_f32_f32:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Rets.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
+    Params.push_back(wasm::ValType::F32);
     break;
   case f64_func_f64_f64_f64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Rets.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
+    Params.push_back(wasm::ValType::F64);
     break;
   case func_i64_i64_iPTR_iPTR:
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(iPTR));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType(iPTR));
     break;
   case func_iPTR_f32:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::F32));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::F32);
     break;
   case func_iPTR_f64:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::F64));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::F64);
     break;
   case func_iPTR_i32:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::I32));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::I32);
     break;
   case func_iPTR_i64:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::I64);
     break;
   case func_iPTR_i64_i64:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case func_iPTR_i64_i64_i64_i64:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case func_iPTR_i64_i64_i64_i64_i64_i64:
-    Params.push_back(unsigned(iPTR));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Params.push_back(wasm::ValType(iPTR));
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i32_func_i64_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case i32_func_i64_i64_i64_i64:
-    Rets.push_back(unsigned(WebAssembly::ExprType::I32));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
-    Params.push_back(unsigned(WebAssembly::ExprType::I64));
+    Rets.push_back(wasm::ValType::I32);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
+    Params.push_back(wasm::ValType::I64);
     break;
   case unsupported:
     llvm_unreachable("unsupported runtime library signature");
   }
 }
 
-void llvm::GetSignature(const WebAssemblySubtarget &Subtarget,
-                        const char *Name,
-                        SmallVectorImpl<unsigned> &Rets,
-                        SmallVectorImpl<unsigned> &Params)
-{
+void llvm::GetSignature(const WebAssemblySubtarget &Subtarget, const char *Name,
+                        SmallVectorImpl<wasm::ValType> &Rets,
+                        SmallVectorImpl<wasm::ValType> &Params) {
   assert(strcmp(RuntimeLibcallNames[RTLIB::DEOPTIMIZE], "__llvm_deoptimize") ==
          0);
 

Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h?rev=297777&r1=297776&r2=297777&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h (original)
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h Tue Mar 14 15:23:22 2017
@@ -25,13 +25,12 @@ class WebAssemblySubtarget;
 
 extern void GetSignature(const WebAssemblySubtarget &Subtarget,
                          RTLIB::Libcall LC,
-                         SmallVectorImpl<unsigned> &Rets,
-                         SmallVectorImpl<unsigned> &Params);
+                         SmallVectorImpl<wasm::ValType> &Rets,
+                         SmallVectorImpl<wasm::ValType> &Params);
 
 extern void GetSignature(const WebAssemblySubtarget &Subtarget,
-                         const char *Name,
-                         SmallVectorImpl<unsigned> &Rets,
-                         SmallVectorImpl<unsigned> &Params);
+                         const char *Name, SmallVectorImpl<wasm::ValType> &Rets,
+                         SmallVectorImpl<wasm::ValType> &Params);
 
 } // end namespace llvm
 




More information about the llvm-commits mailing list