diff options
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp index b43b7dbfc36b..1bf070e9ec9c 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp @@ -14,7 +14,7 @@ //===----------------------------------------------------------------------===// #include "WebAssemblyAsmPrinter.h" -#include "MCTargetDesc/WebAssemblyMCExpr.h" +#include "MCTargetDesc/WebAssemblyMCAsmInfo.h" #include "MCTargetDesc/WebAssemblyMCTargetDesc.h" #include "MCTargetDesc/WebAssemblyTargetStreamer.h" #include "TargetInfo/WebAssemblyTargetInfo.h" @@ -24,6 +24,7 @@ #include "WebAssemblyMachineFunctionInfo.h" #include "WebAssemblyRegisterInfo.h" #include "WebAssemblyRuntimeLibcallSignatures.h" +#include "WebAssemblyTargetMachine.h" #include "WebAssemblyUtilities.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/SmallSet.h" @@ -155,9 +156,11 @@ static std::string getEmscriptenInvokeSymbolName(wasm::WasmSignature *Sig) { //===----------------------------------------------------------------------===// MCSymbolWasm *WebAssemblyAsmPrinter::getMCSymbolForFunction( - const Function *F, bool EnableEmEH, wasm::WasmSignature *Sig, - bool &InvokeDetected) { + const Function *F, wasm::WasmSignature *Sig, bool &InvokeDetected) { MCSymbolWasm *WasmSym = nullptr; + + const bool EnableEmEH = + WebAssembly::WasmEnableEmEH || WebAssembly::WasmEnableEmSjLj; if (EnableEmEH && isEmscriptenInvokeName(F->getName())) { assert(Sig); InvokeDetected = true; @@ -344,9 +347,7 @@ void WebAssemblyAsmPrinter::emitDecls(const Module &M) { // will discard it later if it turns out not to be necessary. auto Signature = signatureFromMVTs(OutContext, Results, Params); bool InvokeDetected = false; - auto *Sym = getMCSymbolForFunction( - &F, WebAssembly::WasmEnableEmEH || WebAssembly::WasmEnableEmSjLj, - Signature, InvokeDetected); + auto *Sym = getMCSymbolForFunction(&F, Signature, InvokeDetected); // Multiple functions can be mapped to the same invoke symbol. For // example, two IR functions '__invoke_void_i8*' and '__invoke_void_i32' @@ -404,7 +405,7 @@ void WebAssemblyAsmPrinter::emitEndOfAsmFile(Module &M) { if (!F.isIntrinsic() && F.hasAddressTaken()) { MCSymbolWasm *FunctionTable = WebAssembly::getOrCreateFunctionTableSymbol(OutContext, Subtarget); - OutStreamer->emitSymbolAttribute(FunctionTable, MCSA_NoDeadStrip); + OutStreamer->emitSymbolAttribute(FunctionTable, MCSA_NoDeadStrip); break; } } |
