[llvm] r348816 - [WebAssembly] TargetStreamer cleanup (NFC)

Heejin Ahn via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 10 16:53:59 PST 2018


Author: aheejin
Date: Mon Dec 10 16:53:59 2018
New Revision: 348816

URL: http://llvm.org/viewvc/llvm-project?rev=348816&view=rev
Log:
[WebAssembly] TargetStreamer cleanup (NFC)

Summary:
- Unify mixed argument names (`Symbol` and `Sym`) to `Sym`
- Changed `MCSymbolWasm*` argument of `emit***` functions to `const
  MCSymbolWasm*`. It seems not very intuitive that emit function in the
  streamer modifies symbol contents.
- Moved empty function bodies to the header
- clang-format

Reviewers: aardappel, dschuff, sbc100

Subscribers: jgravelle-google, sunfish, llvm-commits

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

Modified:
    llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
    llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
    llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp

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=348816&r1=348815&r2=348816&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp Mon Dec 10 16:53:59 2018
@@ -39,7 +39,8 @@ WebAssemblyTargetAsmStreamer::WebAssembl
 WebAssemblyTargetWasmStreamer::WebAssemblyTargetWasmStreamer(MCStreamer &S)
     : WebAssemblyTargetStreamer(S) {}
 
-static void PrintTypes(formatted_raw_ostream &OS, ArrayRef<wasm::ValType> Types) {
+static void printTypes(formatted_raw_ostream &OS,
+                       ArrayRef<wasm::ValType> Types) {
   bool First = true;
   for (auto Type : Types) {
     if (First)
@@ -54,21 +55,22 @@ static void PrintTypes(formatted_raw_ost
 void WebAssemblyTargetAsmStreamer::emitLocal(ArrayRef<wasm::ValType> Types) {
   if (!Types.empty()) {
     OS << "\t.local  \t";
-    PrintTypes(OS, Types);
+    printTypes(OS, Types);
   }
 }
 
 void WebAssemblyTargetAsmStreamer::emitEndFunc() { OS << "\t.endfunc\n"; }
 
-void WebAssemblyTargetAsmStreamer::emitFunctionType(MCSymbolWasm *Symbol) {
-  OS << "\t.functype\t" << Symbol->getName() << " (";
-  auto &Params = Symbol->getSignature()->Params;
+void WebAssemblyTargetAsmStreamer::emitFunctionType(const MCSymbolWasm *Sym) {
+  assert(Sym->isFunction());
+  OS << "\t.functype\t" << Sym->getName() << " (";
+  auto &Params = Sym->getSignature()->Params;
   for (auto &Ty : Params) {
     if (&Ty != &Params[0]) OS << ", ";
     OS << WebAssembly::TypeToString(Ty);
   }
   OS << ") -> (";
-  auto &Returns = Symbol->getSignature()->Returns;
+  auto &Returns = Sym->getSignature()->Returns;
   for (auto &Ty : Returns) {
     if (&Ty != &Returns[0]) OS << ", ";
     OS << WebAssembly::TypeToString(Ty);
@@ -76,7 +78,7 @@ void WebAssemblyTargetAsmStreamer::emitF
   OS << ")\n";
 }
 
-void WebAssemblyTargetAsmStreamer::emitGlobalType(MCSymbolWasm *Sym) {
+void WebAssemblyTargetAsmStreamer::emitGlobalType(const MCSymbolWasm *Sym) {
   assert(Sym->isGlobal());
   OS << "\t.globaltype\t" << Sym->getName() << ", " <<
         WebAssembly::TypeToString(
@@ -84,7 +86,7 @@ void WebAssemblyTargetAsmStreamer::emitG
         '\n';
 }
 
-void WebAssemblyTargetAsmStreamer::emitEventType(MCSymbolWasm *Sym) {
+void WebAssemblyTargetAsmStreamer::emitEventType(const MCSymbolWasm *Sym) {
   assert(Sym->isEvent());
   OS << "\t.eventtype\t" << Sym->getName();
   if (Sym->getSignature()->Returns.empty())
@@ -99,7 +101,7 @@ void WebAssemblyTargetAsmStreamer::emitE
   OS << '\n';
 }
 
-void WebAssemblyTargetAsmStreamer::emitImportModule(MCSymbolWasm *Sym,
+void WebAssemblyTargetAsmStreamer::emitImportModule(const MCSymbolWasm *Sym,
                                                     StringRef ModuleName) {
   OS << "\t.import_module\t" << Sym->getName() << ", " << ModuleName << '\n';
 }
@@ -131,20 +133,3 @@ void WebAssemblyTargetWasmStreamer::emit
 void WebAssemblyTargetWasmStreamer::emitIndIdx(const MCExpr *Value) {
   llvm_unreachable(".indidx encoding not yet implemented");
 }
-
-void WebAssemblyTargetWasmStreamer::emitFunctionType(MCSymbolWasm *Symbol) {
-  // Symbol already has its arguments and result set.
-  Symbol->setType(wasm::WASM_SYMBOL_TYPE_FUNCTION);
-}
-
-void WebAssemblyTargetWasmStreamer::emitGlobalType(MCSymbolWasm *Sym) {
-  // Not needed.
-}
-
-void WebAssemblyTargetWasmStreamer::emitEventType(MCSymbolWasm *Sym) {
-  // Not needed.
-}
-void WebAssemblyTargetWasmStreamer::emitImportModule(MCSymbolWasm *Sym,
-                                                     StringRef ModuleName) {
-  Sym->setModuleName(ModuleName);
-}

Modified: llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h?rev=348816&r1=348815&r2=348816&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h (original)
+++ llvm/trunk/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h Mon Dec 10 16:53:59 2018
@@ -36,15 +36,16 @@ public:
   /// .endfunc
   virtual void emitEndFunc() = 0;
   /// .functype
-  virtual void emitFunctionType(MCSymbolWasm *Symbol) = 0;
+  virtual void emitFunctionType(const MCSymbolWasm *Sym) = 0;
   /// .indidx
   virtual void emitIndIdx(const MCExpr *Value) = 0;
   /// .globaltype
-  virtual void emitGlobalType(MCSymbolWasm *Sym) = 0;
+  virtual void emitGlobalType(const MCSymbolWasm *Sym) = 0;
   /// .eventtype
-  virtual void emitEventType(MCSymbolWasm *Sym) = 0;
+  virtual void emitEventType(const MCSymbolWasm *Sym) = 0;
   /// .import_module
-  virtual void emitImportModule(MCSymbolWasm *Sym, StringRef ModuleName) = 0;
+  virtual void emitImportModule(const MCSymbolWasm *Sym,
+                                StringRef ModuleName) = 0;
 
 protected:
   void emitValueType(wasm::ValType Type);
@@ -59,11 +60,11 @@ public:
 
   void emitLocal(ArrayRef<wasm::ValType> Types) override;
   void emitEndFunc() override;
-  void emitFunctionType(MCSymbolWasm *Symbol) override;
+  void emitFunctionType(const MCSymbolWasm *Sym) override;
   void emitIndIdx(const MCExpr *Value) override;
-  void emitGlobalType(MCSymbolWasm *Sym) override;
-  void emitEventType(MCSymbolWasm *Sym) override;
-  void emitImportModule(MCSymbolWasm *Sym, StringRef ModuleName) override;
+  void emitGlobalType(const MCSymbolWasm *Sym) override;
+  void emitEventType(const MCSymbolWasm *Sym) override;
+  void emitImportModule(const MCSymbolWasm *Sym, StringRef ModuleName) override;
 };
 
 /// This part is for Wasm object output
@@ -73,11 +74,12 @@ public:
 
   void emitLocal(ArrayRef<wasm::ValType> Types) override;
   void emitEndFunc() override;
-  void emitFunctionType(MCSymbolWasm *Symbol) override;
+  void emitFunctionType(const MCSymbolWasm *Sym) override {}
   void emitIndIdx(const MCExpr *Value) override;
-  void emitGlobalType(MCSymbolWasm *Sym) override;
-  void emitEventType(MCSymbolWasm *Sym) override;
-  void emitImportModule(MCSymbolWasm *Sym, StringRef ModuleName) override;
+  void emitGlobalType(const MCSymbolWasm *Sym) override {}
+  void emitEventType(const MCSymbolWasm *Sym) override {}
+  void emitImportModule(const MCSymbolWasm *Sym,
+                        StringRef ModuleName) override {}
 };
 
 /// This part is for null output
@@ -88,11 +90,11 @@ public:
 
   void emitLocal(ArrayRef<wasm::ValType>) override {}
   void emitEndFunc() override {}
-  void emitFunctionType(MCSymbolWasm *) override {}
+  void emitFunctionType(const MCSymbolWasm *) override {}
   void emitIndIdx(const MCExpr *) override {}
-  void emitGlobalType(MCSymbolWasm *) override {}
-  void emitEventType(MCSymbolWasm *) override {}
-  void emitImportModule(MCSymbolWasm *, StringRef) override {}
+  void emitGlobalType(const MCSymbolWasm *) override {}
+  void emitEventType(const MCSymbolWasm *) override {}
+  void emitImportModule(const MCSymbolWasm *, StringRef) override {}
 };
 
 } // end namespace llvm

Modified: llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp?rev=348816&r1=348815&r2=348816&view=diff
==============================================================================
--- llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp Mon Dec 10 16:53:59 2018
@@ -94,6 +94,7 @@ void WebAssemblyAsmPrinter::EmitEndOfAsm
       SmallVector<MVT, 4> Params;
       ComputeSignatureVTs(F.getFunctionType(), F, TM, Params, Results);
       auto *Sym = cast<MCSymbolWasm>(getSymbol(&F));
+      Sym->setType(wasm::WASM_SYMBOL_TYPE_FUNCTION);
       if (!Sym->getSignature()) {
         auto Signature = SignatureFromMVTs(Results, Params);
         Sym->setSignature(Signature.get());
@@ -110,6 +111,7 @@ void WebAssemblyAsmPrinter::EmitEndOfAsm
           F.hasFnAttribute("wasm-import-module")) {
         StringRef Name =
             F.getFnAttribute("wasm-import-module").getValueAsString();
+        Sym->setModuleName(Name);
         getTargetStreamer()->emitImportModule(Sym, Name);
       }
     }
@@ -164,6 +166,7 @@ void WebAssemblyAsmPrinter::EmitFunction
   auto *WasmSym = cast<MCSymbolWasm>(CurrentFnSym);
   WasmSym->setSignature(Signature.get());
   addSignature(std::move(Signature));
+  WasmSym->setType(wasm::WASM_SYMBOL_TYPE_FUNCTION);
 
   // FIXME: clean up how params and results are emitted (use signatures)
   getTargetStreamer()->emitFunctionType(WasmSym);




More information about the llvm-commits mailing list