diff options
author | Sam Clegg <sbc@chromium.org> | 2019-02-07 01:24:44 +0000 |
---|---|---|
committer | Sam Clegg <sbc@chromium.org> | 2019-02-07 01:24:44 +0000 |
commit | d6ef8da31780ea2fbce89873528295e5983d8323 (patch) | |
tree | 5bb4ed450c1f8c1235d6135b0923565ac561c7eb /llvm/lib/MC | |
parent | 40b1c0746231ebbd1364526638a494d8dc2a25af (diff) | |
download | bcm5719-llvm-d6ef8da31780ea2fbce89873528295e5983d8323.tar.gz bcm5719-llvm-d6ef8da31780ea2fbce89873528295e5983d8323.zip |
[WebAssembly] Add symbol flag to the binary format llvm.used
Summary:
Rather than add a new attribute
See https://github.com/WebAssembly/tool-conventions/issues/64
Subscribers: dschuff, jgravelle-google, aheejin, sunfish, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57864
llvm-svn: 353360
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCAsmInfoWasm.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/MC/MCWasmStreamer.cpp | 4 | ||||
-rw-r--r-- | llvm/lib/MC/WasmObjectWriter.cpp | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCAsmInfoWasm.cpp b/llvm/lib/MC/MCAsmInfoWasm.cpp index 65a937b7716..ce6ec7ef211 100644 --- a/llvm/lib/MC/MCAsmInfoWasm.cpp +++ b/llvm/lib/MC/MCAsmInfoWasm.cpp @@ -18,6 +18,7 @@ void MCAsmInfoWasm::anchor() {} MCAsmInfoWasm::MCAsmInfoWasm() { HasIdentDirective = true; + HasNoDeadStrip = true; WeakRefDirective = "\t.weak\t"; PrivateGlobalPrefix = ".L"; PrivateLabelPrefix = ".L"; diff --git a/llvm/lib/MC/MCWasmStreamer.cpp b/llvm/lib/MC/MCWasmStreamer.cpp index 36571fce062..86fa7219785 100644 --- a/llvm/lib/MC/MCWasmStreamer.cpp +++ b/llvm/lib/MC/MCWasmStreamer.cpp @@ -121,6 +121,10 @@ bool MCWasmStreamer::EmitSymbolAttribute(MCSymbol *S, MCSymbolAttr Attribute) { case MCSA_Cold: break; + case MCSA_NoDeadStrip: + Symbol->setExported(); + break; + default: // unrecognized directive llvm_unreachable("unexpected MCSymbolAttr"); diff --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp index b5260bbceae..00d48659890 100644 --- a/llvm/lib/MC/WasmObjectWriter.cpp +++ b/llvm/lib/MC/WasmObjectWriter.cpp @@ -1454,6 +1454,8 @@ uint64_t WasmObjectWriter::writeObject(MCAssembler &Asm, Flags |= wasm::WASM_SYMBOL_BINDING_LOCAL; if (WS.isUndefined()) Flags |= wasm::WASM_SYMBOL_UNDEFINED; + if (WS.isExported()) + Flags |= wasm::WASM_SYMBOL_EXPORTED; wasm::WasmSymbolInfo Info; Info.Name = WS.getName(); |