Support dwarf fission for wasm object files
authorDerek Schuff <dschuff@chromium.org>
Sat, 8 Aug 2020 04:23:11 +0000 (21:23 -0700)
committerDerek Schuff <dschuff@chromium.org>
Thu, 17 Sep 2020 21:42:41 +0000 (14:42 -0700)
commit0ff28fa6a75617d61b1aeea77463d6a1684c3c89
treefa2203080de5d2cef797767758e189db593f82a7
parenta0017c2bc258690146f18491317144e487ddb101
Support dwarf fission for wasm object files

Initial support for dwarf fission sections (-gsplit-dwarf) on wasm.
The most interesting change is support for writing 2 files (.o and .dwo) in the
wasm object writer. My approach moves object-writing logic into its own function
and calls it twice, swapping out the endian::Writer (W) in between calls.
It also splits the import-preparation step into its own function (and skips it when writing a dwo).

Differential Revision: https://reviews.llvm.org/D85685
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/split-debug.c
llvm/include/llvm/MC/MCWasmObjectWriter.h
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
llvm/lib/MC/MCAsmBackend.cpp
llvm/lib/MC/MCObjectFileInfo.cpp
llvm/lib/MC/WasmObjectWriter.cpp
llvm/test/DebugInfo/WebAssembly/fission-cu.ll [new file with mode: 0644]
llvm/test/DebugInfo/WebAssembly/fission-sections.ll [new file with mode: 0644]