[WebAssembly] Refactor WasmSignature and use it for MCSymbolWasm
authorDerek Schuff <dschuff@google.com>
Wed, 3 Oct 2018 22:22:48 +0000 (22:22 +0000)
committerDerek Schuff <dschuff@google.com>
Wed, 3 Oct 2018 22:22:48 +0000 (22:22 +0000)
commit77a7a38006eed3dda8f63b1a352f3f60398bda41
treefeb6080c3570ffc594004af3e1514a1bfa55fd12
parent3ed33eade06d583f2a93fe253975bc07a39fbd9e
[WebAssembly] Refactor WasmSignature and use it for MCSymbolWasm

MCContext does not destroy MCSymbols on shutdown. So, rather than putting
SmallVectors (which may heap-allocate) inside MCSymbolWasm, use unowned pointer
to a WasmSignature instead. The signatures are now owned by the AsmPrinter.
Also uses WasmSignature instead of param and result vectors in TargetStreamer,
and leaves some TODOs for further simplification.

 Differential Revision: https://reviews.llvm.org/D52580

llvm-svn: 343733
19 files changed:
llvm/include/llvm/BinaryFormat/Wasm.h
llvm/include/llvm/MC/MCSymbolWasm.h
llvm/include/llvm/Object/Wasm.h
llvm/include/llvm/Object/WasmTraits.h
llvm/lib/MC/WasmObjectWriter.cpp
llvm/lib/Object/WasmObjectFile.cpp
llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp
llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.h
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h
llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.cpp
llvm/lib/Target/WebAssembly/WebAssemblyMachineFunctionInfo.h
llvm/test/MC/WebAssembly/external-func-address.ll
llvm/test/MC/WebAssembly/types.ll
llvm/tools/obj2yaml/wasm2yaml.cpp