diff options
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp index f6e24f7..431dc7f 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp @@ -73,14 +73,13 @@ WebAssemblyMCInstLower::GetGlobalAddressSymbol(const MachineOperand &MO) const { SmallVector<MVT, 4> ParamMVTs; const auto *const F = dyn_cast<Function>(Global); computeSignatureVTs(FuncTy, F, CurrentFunc, TM, ParamMVTs, ResultMVTs); - auto Signature = signatureFromMVTs(ResultMVTs, ParamMVTs); + auto Signature = signatureFromMVTs(Ctx, ResultMVTs, ParamMVTs); bool InvokeDetected = false; auto *WasmSym = Printer.getMCSymbolForFunction( F, WebAssembly::WasmEnableEmEH || WebAssembly::WasmEnableEmSjLj, - Signature.get(), InvokeDetected); - WasmSym->setSignature(Signature.get()); - Printer.addSignature(std::move(Signature)); + Signature, InvokeDetected); + WasmSym->setSignature(Signature); WasmSym->setType(wasm::WASM_SYMBOL_TYPE_FUNCTION); return WasmSym; } @@ -142,12 +141,12 @@ MCOperand WebAssemblyMCInstLower::lowerSymbolOperand(const MachineOperand &MO, MCOperand WebAssemblyMCInstLower::lowerTypeIndexOperand( SmallVectorImpl<wasm::ValType> &&Returns, SmallVectorImpl<wasm::ValType> &&Params) const { - auto Signature = std::make_unique<wasm::WasmSignature>(std::move(Returns), - std::move(Params)); + auto Signature = Ctx.createWasmSignature(); + Signature->Returns = std::move(Returns); + Signature->Params = std::move(Params); MCSymbol *Sym = Printer.createTempSymbol("typeindex"); auto *WasmSym = cast<MCSymbolWasm>(Sym); - WasmSym->setSignature(Signature.get()); - Printer.addSignature(std::move(Signature)); + WasmSym->setSignature(Signature); WasmSym->setType(wasm::WASM_SYMBOL_TYPE_FUNCTION); const MCExpr *Expr = MCSymbolRefExpr::create(WasmSym, MCSymbolRefExpr::VK_WASM_TYPEINDEX, Ctx); |