llvm-project/llvm/test/CodeGen/WebAssembly
Thomas Lively 5286180999 [WebAssembly] Fix RegStackify and ExplicitLocals to handle multivalue
Summary:
There is still room for improvement in the handling of multivalue
nodes in both passes, but the current algorithm is at least correct
and optimizes some simpler cases. In order to make future
optimizations of these passes easier and build confidence that the
current algorithms are correct, this CL also adds a script that
automatically and exhaustively generates interesting multivalue test
cases.

Reviewers: aheejin, dschuff

Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72902
2020-02-18 14:56:09 -08: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
PR41841.ll [WebAssembly] Don't assume that zext/sext result is i32/i64 in fast isel (PR41841) 2019-05-13 19:40:18 +00:00
add-prototypes-conflict.ll [WebAssembly] Fix a typo in a test file name 2019-07-09 01:21:04 +00:00
add-prototypes.ll [WebAssembly] Make sret parameter work with AddMissingPrototypes 2019-07-09 02:10:33 +00:00
address-offsets.ll [WebAssembly] Limit PIC support to the Emscripten target 2019-06-05 20:01:01 +00:00
atomic-fence.ll [WebAssembly] Add atomic.fence instruction 2019-08-28 23:13:43 +00:00
atomic-fence.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +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] Restore defaults for stores per memop 2019-09-18 23:18:16 +00:00
byval.ll [WebAssembly] Update CodeGen test expectations after rL354697. NFC 2019-02-23 00:07:39 +00:00
call-pic.ll [WebAssembly] Limit PIC support to the Emscripten target 2019-06-05 20:01:01 +00:00
call.ll [WebAssembly] Implement tail calls and unify tablegen call classes 2019-06-26 16:17:15 +00:00
cfg-stackify-dbg-skip.ll [WebAssembly] Run ExplicitLocals pass after CFGStackify 2019-03-30 09:29:57 +00:00
cfg-stackify-dbg.mir [WebAssembly] Handle END_LOOP in unreachable BB in CFGStackify 2019-03-29 19:36:51 +00:00
cfg-stackify-eh.ll [WebAssembly] Fix a bug in 'try' placement 2019-10-08 16:15:39 +00:00
cfg-stackify.ll [WebAssembly] Emit br_table for most switch instructions 2019-04-23 21:30:30 +00:00
cfi.ll
clear-cache.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08: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] Trapping fptoint builtins and intrinsics 2019-10-15 01:11:51 +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 Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
custom-sections.ll [WebAssembly] Add languages from debug info to producers section 2019-01-18 02:47:48 +00:00
dbgvalue.ll
dead-vreg.ll [WebAssembly] replaced .param/.result by .functype 2018-11-19 17:10:36 +00:00
debugtest-opt.ll [WebAssembly] Preserve debug frame base information through register coloring 2020-01-28 16:58:15 -08:00
divrem-constant.ll
eh-labels.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
eh-lsda.ll Reland "[WebAssembly] LSDA info generation" 2018-10-25 23:55:10 +00:00
exception.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
explicit-locals.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
export-name.ll [WebAssembly] Add new `export_name` clang attribute for controlling wasm export names 2019-12-11 11:54:57 -08:00
f16.ll [WebAssembly] Support f16 libcalls 2019-04-30 19:17:59 +00:00
f32.ll [SelectionDAG] Do minnum->minimum at legalization time instead of building time 2019-07-01 11:00:23 +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
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] Handle aliases in WebAssemblyFixFunctionBitcasts 2019-08-21 19:52:33 +00:00
function-info.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
global.ll [AsmPrinter] Print FP constant in hexadecimal form instead 2020-02-07 16:00:55 +00:00
global_dtors.ll [WebAssembly] Fix crash when @llvm.global_dtors is external 2019-03-01 00:12:13 +00:00
globl.ll
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
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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
indirectbr.ll [WebAssembly] Enable IndirectBrExpandPass 2019-07-03 23:54:06 +00:00
inline-asm-m.ll
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
inlineasm-output-template.ll [AsmPrinter] refactor to support %c w/ GlobalAddress' 2019-04-26 18:45:04 +00:00
irreducible-cfg-exceptions.ll [WebAssembly] Improve readability of irreducibility tests 2019-03-19 05:10:39 +00:00
irreducible-cfg.ll [WebAssembly] Optimize the number of routing blocks in FixIrreducibleCFG 2019-03-30 01:31:11 +00:00
irreducible-cfg.mir [WebAssembly] Optimize the number of routing blocks in FixIrreducibleCFG 2019-03-30 01:31:11 +00:00
legalize.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
libcalls.ll [WebAssembly] Add cbrt function signatures 2020-02-13 13:18:42 -08:00
lit.local.cfg
llround-conv-i32.ll [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
load-ext-atomic.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
load-ext.ll
load-store-i1.ll
load-store-pic.ll [WebAssembly] Limit PIC support to the Emscripten target 2019-06-05 20:01:01 +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-resume-only.ll [WebAssembly] Fix resume-only case in Emscripten EH 2020-01-23 18:13:52 -08:00
lower-em-exceptions-whitelist.ll [WebAssembly] Fix conflict between ret legalization and sjlj 2019-08-05 21:36:09 +00:00
lower-em-exceptions.ll [WebAssembly] Fix conflict between ret legalization and sjlj 2019-08-05 21:36:09 +00:00
lower-em-sjlj-alias.ll [WebAssembly] Compare functions by names in Emscripten Sjlj 2019-09-03 22:26:49 +00:00
lower-em-sjlj-sret.ll [WebAssembly] Combine emscripten SjLj tests 2019-08-26 21:41:17 +00:00
lower-em-sjlj.ll [WebAssembly] Add debug info to insts in Emscripten SjLj 2020-02-07 19:08:39 -08: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
multi-return.ll [WebAssembly] Track frame registers through VReg and local allocation 2020-01-17 17:23:56 -08:00
multivalue-stackify.ll [WebAssembly] Fix RegStackify and ExplicitLocals to handle multivalue 2020-02-18 14:56:09 -08:00
multivalue-stackify.py [WebAssembly] Fix RegStackify and ExplicitLocals to handle multivalue 2020-02-18 14:56:09 -08:00
multivalue.ll [WebAssembly] Fix RegStackify and ExplicitLocals to handle multivalue 2020-02-18 14:56:09 -08:00
mutable-globals.ll [WebAssembly] Add mutable globals feature 2019-03-29 22:00:18 +00:00
negative-base-reg.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
null-streamer.ll [WebAssembly] Add null streamer support 2018-11-18 11:58:47 +00:00
offset-atomics.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08: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] Make LBB markers not affected by test order 2019-04-23 21:17:03 +00:00
reference-types.ll [WebAssembly] Add reference types target feature 2020-01-24 14:26:27 -08:00
reg-argument.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
reg-copy.mir [WebAssembly] Make returns variadic 2019-10-09 21:42:08 +00:00
reg-stackify.ll [WebAssembly] Assembler/InstPrinter: support call_indirect type index. 2019-08-01 18:08:26 +00:00
return-address-emscripten.ll [WebAssembly] Implement __builtin_return_address for emscripten 2019-05-23 01:24:01 +00:00
return-address-unknown.ll [WebAssembly] Implement __builtin_return_address for emscripten 2019-05-23 01:24:01 +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 miscompile of select with and 2019-11-15 16:22:01 -08: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] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-bitcasts.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-build-pair.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-build-vector.ll [WebAssembly] v8x16.swizzle and rewrite BUILD_VECTOR lowering 2019-10-09 17:39:19 +00:00
simd-comparisons.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-conversions.ll [WebAssembly] Add unimplemented-simd128 subtarget feature 2019-01-10 22:32:11 +00:00
simd-extended-extract.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-illegal-signext.ll [WebAssembly] Implement ReplaceNodeResults to fix a SIMD crash 2019-05-23 18:09:26 +00:00
simd-intrinsics.ll [WebAssembly] Add avgr_u intrinsics and require nuw in patterns 2019-12-18 15:31:38 -08:00
simd-load-splat.ll Reland "[WebAssembly] Handle multiple loads of splatted loads" 2019-10-31 20:02:24 -07: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] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08:00
simd-reductions.ll [WebAssembly] Optimize ISel for SIMD Boolean reductions 2019-06-19 00:02:13 +00:00
simd-scalar-to-vector.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08: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 more SIMD float ops 2019-05-24 00:15:04 +00:00
simd.ll [WebAssembly] Enable recently implemented SIMD operations 2020-02-04 18:36:32 -08: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
stack-protector.ll Use SETNE directly rather than SUB/SETNE 0 for stack guard check 2020-02-18 13:21:26 +00:00
store-trunc-atomic.ll
store-trunc.ll
store.ll [WebAssembly] Massive instruction renaming 2019-01-08 06:25:55 +00:00
switch.ll [WebAssembly] Make LBB markers not affected by test order 2019-04-23 21:17:03 +00:00
tailcall.ll [WebAssembly] Make stack pointer args inhibit tail calls 2020-02-13 16:43:53 -08:00
target-features-tls.ll [WebAssembly] Implement thread-local storage (local-exec model) 2019-07-16 22:00:45 +00:00
target-features.ll [WebAssembly] Update bleeding-edge CPU features 2020-01-24 14:27:35 -08:00
tls-general-dynamic.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
tls-local-exec.ll [WebAssembly] Compile all TLS on Emscripten as local-exec 2019-07-16 22:22: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
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