[PATCH] D91637: [WebAssembly] Only emit indirect function table import if needed
Andy Wingo via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 24 07:31:58 PST 2020
wingo added inline comments.
================
Comment at: llvm/lib/MC/WasmObjectWriter.cpp:503
+ Type == wasm::R_WASM_TABLE_INDEX_I64) {
+ // TABLE_INDEX relocs implicitly use the default indirect function table.
+ auto TableName = "__indirect_function_table";
----------------
sbc100 wrote:
> Perhaps add a TODO here since we probably don't to keep this here long right?
We keep this one, I think. Currently `call_indirect` has no relocs. In the future it will have `TABLE_NUMBER` relocs. `TABLE_INDEX` relocs will stay around, used for function pointers.
In some future it might be useful to have the `TABLE_INDEX` relocs specify an "address space" in the form of a table number (table symbol reference); i.e. the `EXTENDED_TABLE_INDEX` reloc would be against both a function symbol and a table symbol. But until then, and until such a use case arises, I think `TABLE_INDEX` relocs still implicitly use `__indirect_function_table`. WDYT?
================
Comment at: llvm/test/MC/WebAssembly/reloc-pic.s:94
+# CHECK-NEXT: Value: 1
+# CHECK-NEXT: Functions: [ 5 ]
# CHECK-NEXT: - Type: DATACOUNT
----------------
sbc100 wrote:
> What happened here?
This is the result of replacing the whole `CHECK`+`CHECK_NEXT`* block with the output of the command in question. Harmless AFAIU, but extraneous also, so I have removed it.
================
Comment at: llvm/test/MC/WebAssembly/tables.s:211
+# BIN-NEXT: Table: 3
+# BIN-NEXT: - Index: 4
----------------
sbc100 wrote:
> Where these here before but just not being checked for I guess?
I just checked and yes, they were here before and not being checked for.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91637/new/
https://reviews.llvm.org/D91637
More information about the llvm-commits
mailing list