llvm-project/llvm/test/CodeGen/WebAssembly
Sam Clegg 492f752969 [WebAssembly] Initial implementation of PIC code generation
This change implements lowering of references global symbols in PIC
mode.

This change implements lowering of global references in PIC mode using a
new @GOT reference type. @GOT references can be used with function or
data symbol names combined with the get_global instruction. In this case
the linker will insert the wasm global that stores the address of the
symbol (either in memory for data symbols or in the wasm table for
function symbols).

For now I'm continuing to use the R_WASM_GLOBAL_INDEX_LEB relocation
type for this type of reference which means that this relocation type
can refer to either a global or a function or data symbol. We could
choose to introduce specific relocation types for GOT entries in the
future.  See the current dynamic linking proposal:

https://github.com/WebAssembly/tool-conventions/blob/master/DynamicLinking.md

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

llvm-svn: 357022
2019-03-26 19:46:15 +00:00
..
PR40172.ll [WebAssembly][FastISel] Do not assume naive CmpInst lowering 2019-01-14 22:03:43 +00:00
PR40267.ll [LegalizeVectorTypes] Allow illegal indices when splitting extract_vector_elt 2019-01-31 00:35:37 +00:00
PR41149.ll [SelectionDAG] Add scalarization of ABS node (PR41149) 2019-03-21 11:18:54 +00:00
add-prototypes-conflit.ll [WebAssembly] Don't error on conflicting uses of prototype-less functions 2019-02-20 22:40:57 +00:00
add-prototypes.ll [WebAssembly] Default to something reasonable in WebAssemblyAddMissingPrototypes 2019-02-21 03:27:00 +00:00
address-offsets.ll [WebAssembly] Initial implementation of PIC code generation 2019-03-26 19:46:15 +00:00
atomic-mem-consistency.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
atomic-rmw.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
bulk-memory-intrinsics.ll [WebAssembly] Bulk memory intrinsics and builtins 2019-02-13 22:11:16 +00:00
bulk-memory.ll [WebAssembly] Use named operands to identify loads and stores 2019-03-09 04:31:37 +00:00
byval.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
call-pic.ll [WebAssembly] Initial implementation of PIC code generation 2019-03-26 19:46:15 +00:00
call.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
cfg-stackify-dbg-skip.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
cfg-stackify-eh.ll [WebAssembly] Don't analyze branches after CFGStackify 2019-03-26 18:21:20 +00:00
cfg-stackify.ll [WebAssembly] Remove icmp undef in stackify test 2019-03-15 11:13:26 +00:00
cfi.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
comparisons-f32.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
comparisons-f64.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
comparisons-i32.ll [WebAssembly][FastISel] Do not assume naive CmpInst lowering 2019-01-14 22:03:43 +00:00
comparisons-i64.ll [WebAssembly][FastISel] Do not assume naive CmpInst lowering 2019-01-14 22:03:43 +00:00
conv-trap.ll [WebAssembly] Disable MachineBlockPlacement pass 2019-03-05 20:35:34 +00:00
conv.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
copysign-casts.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
cpus.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
custom-sections.ll [WebAssembly] Add languages from debug info to producers section 2019-01-18 02:47:48 +00:00
dbgvalue.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
dead-vreg.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
divrem-constant.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
eh-labels.mir [WebAssembly] Place 'try' and 'catch' correctly wrt EH_LABELs 2019-03-13 00:37:31 +00:00
eh-lsda.ll Reland "[WebAssembly] LSDA info generation" 2018-10-25 23:55:10 +00:00
exception.ll [WebAssembly] Make rethrow take an except_ref type argument 2019-03-16 05:38:57 +00:00
explicit-locals.mir [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
f16.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
f32.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
f64.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
fast-isel-br-i1.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
fast-isel-i24.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
fast-isel-i256.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
fast-isel-noreg.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
fast-isel.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
frem.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
func.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
function-bitcasts-varargs.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
function-bitcasts.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
function-info.mir [WebAssembly] Add CFGStacikfied field to WebAssemblyFunctionInfo 2019-03-26 17:46:14 +00:00
global.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
global_dtors.ll [WebAssembly] Fix crash when @llvm.global_dtors is external 2019-03-01 00:12:13 +00:00
globl.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
i32-load-store-alignment.ll Fix typo in comment 2019-01-09 14:20:20 +00:00
i32.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
i64-load-store-alignment.ll Fix typo in comment 2019-01-09 14:20:20 +00:00
i64.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
i128-returned.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
i128.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
ident.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
immediates.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
implicit-def.ll [WebAssembly] Disable MachineBlockPlacement pass 2019-03-05 20:35:34 +00:00
import-module.ll [WebAssembly] Add codegen support for the import_field attribute 2019-02-01 22:27:34 +00:00
indirect-import.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
inline-asm-m.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
inline-asm-roundtrip.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
inline-asm.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
irreducible-cfg-exceptions.ll [WebAssembly] Improve readability of irreducibility tests 2019-03-19 05:10:39 +00:00
irreducible-cfg.ll [WebAssembly] Improve readability of irreducibility tests 2019-03-19 05:10:39 +00:00
legalize.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
libcalls.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
lit.local.cfg
load-ext-atomic.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
load-ext.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
load-store-i1.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
load-store-pic.ll [WebAssembly] Initial implementation of PIC code generation 2019-03-26 19:46:15 +00:00
load.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
lower-em-ehsjlj-options.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
lower-em-exceptions-whitelist.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
lower-em-exceptions.ll [WebAssembly] WebAssemblyLowerEmscriptenEHSjLj: use getter/setter for accessing tempRet0 2018-11-20 19:25:07 +00:00
lower-em-sjlj-longjmp-only.ll [WebAssembly] Fix LowerEmscriptenEHSjLj when there's only longjmp 2018-11-08 22:56:26 +00:00
lower-em-sjlj.ll [WebAssembly] WebAssemblyLowerEmscriptenEHSjLj: use getter/setter for accessing tempRet0 2018-11-20 19:25:07 +00:00
lower-global-dtors.ll [WebAssembly] Disable MachineBlockPlacement pass 2019-03-05 20:35:34 +00:00
main-declaration.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
main-no-args.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
main-three-args.ll [WebAssembly] Re-enable main-function signature rewriting 2019-01-29 10:53:42 +00:00
main-with-args.ll [WebAssembly] Re-enable main-function signature rewriting 2019-01-29 10:53:42 +00:00
mem-intrinsics.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
memory-addr32.ll [WebAssembly] Remove tests for old intrinsics. 2019-01-14 18:25:29 +00:00
muloti4.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
negative-base-reg.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
non-executable-stack.ll [WebAsembly] Update default triple in test files to wasm32-unknown-unkown. 2018-05-10 17:49:11 +00:00
null-streamer.ll [WebAssembly] Add null streamer support 2018-11-18 11:58:47 +00:00
offset-atomics.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
offset-fastisel.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
offset-folding.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
offset.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
phi.ll [WebAssembly] Disable MachineBlockPlacement pass 2019-03-05 20:35:34 +00:00
reg-stackify.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
regcopy.mir [WebAssembly] Add V128 to WebAssemblyInstrInfo::copyPhysReg 2018-11-08 02:35:28 +00:00
return-int32.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
return-void.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
returned.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
select.ll [WebAssembly] Fix select of and (PR40805) 2019-02-23 18:59:01 +00:00
signext-arg.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
signext-inreg.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
signext-zeroext.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
simd-arith.ll [WebAssembly] Expand SIMD shifts while V8's implementation disagrees 2019-01-15 02:16:03 +00:00
simd-bitcasts.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-build-pair.ll [WebAssembly] Expand BUILD_PAIR nodes 2019-01-28 23:44:31 +00:00
simd-build-vector.ll [WebAssembly] Fix a regression selecting negative build_vector lanes 2019-01-31 23:22:39 +00:00
simd-comparisons.ll [WebAssembly] Lower SIMD nnan setcc nodes 2019-03-19 00:55:34 +00:00
simd-conversions.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-ext-load-trunc-store.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-intrinsics.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-load-store-alignment.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-nested-shuffles.ll [WebAssembly] Fix invalid machine instrs in -O0, verify in tests 2018-12-21 06:58:15 +00:00
simd-noopt.ll [WebAssembly][NFC] Elaborate on simd-noopt test comment 2019-01-02 20:43:08 +00:00
simd-offset.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-scalar-to-vector.ll [WebAssembly] Lower SCALAR_TO_VECTOR to splats 2019-01-29 23:44:48 +00:00
simd-select.ll [WebAssembly] Fix select of and (PR40805) 2019-02-23 18:59:01 +00:00
simd-sext-inreg.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-unsupported.ll [WebAssembly] Expand operations not supported by SIMD 2019-03-02 03:32:25 +00:00
simd.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
stack-alignment.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
stack-insts.ll [WebAssembly] Fix assembler parsing of br_table. 2018-12-17 22:04:44 +00:00
store-trunc-atomic.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
store-trunc.ll [WebAssembly] Added default stack-only instruction mode for MC. 2018-08-27 15:45:51 +00:00
store.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
switch.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
target-features.ll [WebAssembly] Target features section 2019-03-20 20:26:45 +00:00
tls.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
umulo-128-legalisation-lowering.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
umulo-i64.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
unreachable.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
unsupported-function-bitcasts.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
unused-argument.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
userstack.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
varargs.ll [WebAssembly] Properly align fp128 arguments in outgoing varargs arguments 2019-02-26 05:20:19 +00:00
vector-sdiv.ll [WebAssembly] Convert remaining tests from elf to wasm output format 2018-07-02 16:03:49 +00:00
vtable.ll [WebAssembly] Remove uses of ThreadModel 2019-02-28 18:39:08 +00:00
wasmehprepare.ll [WebAssembly] Add immarg attribute to intrinsics 2019-03-19 05:02:30 +00:00