[PATCH] D42585: [WebAssembly] Add symbol table to LLD, 2/2

Nicholas Wilson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 26 10:15:39 PST 2018


ncw created this revision.
ncw added reviewers: sbc100, sunfish.
Herald added subscribers: llvm-commits, aheejin, jgravelle-google, dschuff, jfb.

WebAssembly object files will now have an explicit symbol table. This commit is the second of two halves, adding the actual symbol table itself.

The main changes are adding first-class support for Globals throughout the code as a third type of symbol, alongside existing Function/Data symbols, and Data symbols now no longer use Wasm globals in the intermediate format.

The end result is a bit more boilerplate, but a surprisingly nice reduction of complexity in the core logic, which becomes quite pleasingly neater.

Must be committed simultaneously with https://reviews.llvm.org/D42495, which adds symbol-table support to Clang/LLC.


Repository:
  rLLD LLVM Linker

https://reviews.llvm.org/D42585

Files:
  test/wasm/alias.ll
  test/wasm/archive.ll
  test/wasm/call-indirect.ll
  test/wasm/comdats.ll
  test/wasm/data-layout.ll
  test/wasm/export.ll
  test/wasm/init-fini.ll
  test/wasm/load-undefined.ll
  test/wasm/local-symbols.ll
  test/wasm/locals-duplicate.test
  test/wasm/many-functions.ll
  test/wasm/relocatable.ll
  test/wasm/signature-mismatch.ll
  test/wasm/stack-pointer.ll
  test/wasm/symbol-type-mismatch.ll
  test/wasm/visibility-hidden.ll
  test/wasm/weak-alias-overide.ll
  test/wasm/weak-alias.ll
  test/wasm/weak-symbols.ll
  test/wasm/weak-undefined.ll
  wasm/Config.h
  wasm/Driver.cpp
  wasm/InputChunks.cpp
  wasm/InputChunks.h
  wasm/InputFiles.cpp
  wasm/InputFiles.h
  wasm/OutputSegment.h
  wasm/SymbolTable.cpp
  wasm/SymbolTable.h
  wasm/Symbols.cpp
  wasm/Symbols.h
  wasm/Writer.cpp
  wasm/WriterUtils.cpp
  wasm/WriterUtils.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42585.131612.patch
Type: text/x-patch
Size: 167906 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180126/8ca0210a/attachment-0001.bin>


More information about the llvm-commits mailing list