diff options
| author | Heejin Ahn <aheejin@gmail.com> | 2018-11-18 11:58:47 +0000 |
|---|---|---|
| committer | Heejin Ahn <aheejin@gmail.com> | 2018-11-18 11:58:47 +0000 |
| commit | e0f8b9bfc651221ab1a647082b9ec009d9295762 (patch) | |
| tree | 5adad5959a78a84453200e1d0c55d9ea616b363e /llvm/lib | |
| parent | 7a391ff918d7a68d476c2ea89243dc47b825900f (diff) | |
| download | bcm5719-llvm-e0f8b9bfc651221ab1a647082b9ec009d9295762.tar.gz bcm5719-llvm-e0f8b9bfc651221ab1a647082b9ec009d9295762.zip | |
[WebAssembly] Add null streamer support
Summary: Now `llc -filetype=null` works.
Reviewers: eush
Subscribers: dschuff, jgravelle-google, sbc100, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D54660
llvm-svn: 347155
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h | 17 |
2 files changed, 23 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp index 24dd5238f71..390f367c297 100644 --- a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp +++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp @@ -90,6 +90,10 @@ static MCTargetStreamer *createAsmTargetStreamer(MCStreamer &S, return new WebAssemblyTargetAsmStreamer(S, OS); } +static MCTargetStreamer *createNullTargetStreamer(MCStreamer &S) { + return new WebAssemblyTargetNullStreamer(S); +} + // Force static initialization. extern "C" void LLVMInitializeWebAssemblyTargetMC() { for (Target *T : @@ -120,6 +124,8 @@ extern "C" void LLVMInitializeWebAssemblyTargetMC() { createObjectTargetStreamer); // Register the asm target streamer. TargetRegistry::RegisterAsmTargetStreamer(*T, createAsmTargetStreamer); + // Register the null target streamer. + TargetRegistry::RegisterNullTargetStreamer(*T, createNullTargetStreamer); } } diff --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h index 68527542e3e..3f1c6e158b2 100644 --- a/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h +++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h @@ -88,6 +88,23 @@ public: void emitImportModule(MCSymbolWasm *Sym, StringRef ModuleName) override; }; +/// This part is for null output +class WebAssemblyTargetNullStreamer final : public WebAssemblyTargetStreamer { +public: + explicit WebAssemblyTargetNullStreamer(MCStreamer &S) + : WebAssemblyTargetStreamer(S) {} + + void emitParam(MCSymbol *Symbol, ArrayRef<MVT> Types) override {} + void emitResult(MCSymbol *Symbol, ArrayRef<MVT> Types) override {} + void emitLocal(ArrayRef<MVT> Types) override {} + void emitEndFunc() override {} + void emitIndirectFunctionType(MCSymbolWasm *Symbol) override {} + void emitIndIdx(const MCExpr *Value) override {} + void emitGlobalType(MCSymbolWasm *Sym) override {} + void emitEventType(MCSymbolWasm *Sym) override {} + void emitImportModule(MCSymbolWasm *Sym, StringRef ModuleName) override {} +}; + } // end namespace llvm #endif |

