[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