diff options
| author | Dan Gohman <dan433584@gmail.com> | 2019-02-01 22:27:34 +0000 |
|---|---|---|
| committer | Dan Gohman <dan433584@gmail.com> | 2019-02-01 22:27:34 +0000 |
| commit | f726e4454c55d55d37bd1a05065fc392d89e05c8 (patch) | |
| tree | f9b73f3aa270d37fa71e0859fe0d83b040f62b1e /llvm/include | |
| parent | cae8459ad2d4cce5806bc8d64ef0020bc20e3252 (diff) | |
| download | bcm5719-llvm-f726e4454c55d55d37bd1a05065fc392d89e05c8.tar.gz bcm5719-llvm-f726e4454c55d55d37bd1a05065fc392d89e05c8.zip | |
[WebAssembly] Add codegen support for the import_field attribute
This adds the LLVM side of https://reviews.llvm.org/D57602 -- the
import_field attribute. See that patch for details.
Differential Revision: https://reviews.llvm.org/D57603
llvm-svn: 352931
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/MC/MCSymbolWasm.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/llvm/include/llvm/MC/MCSymbolWasm.h b/llvm/include/llvm/MC/MCSymbolWasm.h index e3f70cf6d1b..a39d1ce4b77 100644 --- a/llvm/include/llvm/MC/MCSymbolWasm.h +++ b/llvm/include/llvm/MC/MCSymbolWasm.h @@ -18,7 +18,8 @@ class MCSymbolWasm : public MCSymbol { bool IsWeak = false; bool IsHidden = false; bool IsComdat = false; - std::string ModuleName; + Optional<std::string> ImportModule; + Optional<std::string> ImportName; wasm::WasmSignature *Signature = nullptr; Optional<wasm::WasmGlobalType> GlobalType; Optional<wasm::WasmEventType> EventType; @@ -31,7 +32,7 @@ public: // Use a module name of "env" for now, for compatibility with existing tools. // This is temporary, and may change, as the ABI is not yet stable. MCSymbolWasm(const StringMapEntry<bool> *Name, bool isTemporary) - : MCSymbol(SymbolKindWasm, Name, isTemporary), ModuleName("env") {} + : MCSymbol(SymbolKindWasm, Name, isTemporary) {} static bool classof(const MCSymbol *S) { return S->isWasm(); } const MCExpr *getSize() const { return SymbolSize; } @@ -54,8 +55,21 @@ public: bool isComdat() const { return IsComdat; } void setComdat(bool isComdat) { IsComdat = isComdat; } - const StringRef getModuleName() const { return ModuleName; } - void setModuleName(StringRef Name) { ModuleName = Name; } + const StringRef getImportModule() const { + if (ImportModule.hasValue()) { + return ImportModule.getValue(); + } + return "env"; + } + void setImportModule(StringRef Name) { ImportModule = Name; } + + const StringRef getImportName() const { + if (ImportName.hasValue()) { + return ImportName.getValue(); + } + return getName(); + } + void setImportName(StringRef Name) { ImportName = Name; } const wasm::WasmSignature *getSignature() const { return Signature; } void setSignature(wasm::WasmSignature *Sig) { Signature = Sig; } |

