llvm-project/llvm/test/CodeGen/WebAssembly
Jun Bum Lim 90b6b5074a [CodeGenPrep] Skip merging empty case blocks
This is recommit of r287553 after fixing the invalid loop info after eliminating an empty block and unit test failures in AVR and WebAssembly :

Summary: Merging an empty case block into the header block of switch could cause ISel to add COPY instructions in the header of switch, instead of the case block, if the case block is used as an incoming block of a PHI. This could potentially increase dynamic instructions, especially when the switch is in a loop. I added a test case which was reduced from the benchmark I was targetting.

Reviewers: t.p.northover, mcrosier, manmanren, wmi, joerg, davidxl

Subscribers: joerg, qcolombet, danielcdh, hfinkel, mcrosier, llvm-commits

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

llvm-svn: 289988
2016-12-16 20:38:39 +00:00
..
address-offsets.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
byval.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
call.ll [WebAssembly] Fix for 0xc call_indirect changes 2016-10-21 16:38:07 +00:00
cfg-stackify.ll [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
cfi.ll [WebAssembly] Fix CFI index to account for padding nullptr function 2016-08-08 23:56:01 +00:00
comparisons_f32.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
comparisons_f64.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
comparisons_i32.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
comparisons_i64.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
conv.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
copysign-casts.ll
cpus.ll
dbgvalue.ll Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
dead-vreg.ll
divrem-constant.ll [WebAssembly] Don't expand divisions by constants. 2016-05-18 14:29:42 +00:00
f32.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
f64.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
fast-isel-noreg.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
fast-isel.ll [WebAssembly] Preliminary fast-isel support. 2016-05-10 17:39:48 +00:00
frem.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
func.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
global.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
globl.ll [WebAssembly] Emit .import_global assembler directives 2016-12-01 00:11:15 +00:00
i32-load-store-alignment.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
i32.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
i64-load-store-alignment.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
i64.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
i128.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
ident.ll
immediates.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
implicit-def.ll [WebAssembly] Convert stackified IMPLICIT_DEF into constant 0. 2016-11-08 19:40:38 +00:00
indirect-import.ll [WebAssembly] Emit type signatures for declared functions 2016-06-03 18:34:36 +00:00
inline-asm.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
irreducible-cfg.ll [WebAssembly] Account for implicit operands when computing operand indices. 2016-04-26 01:40:56 +00:00
legalize.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
lit.local.cfg
load-ext.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
load-store-i1.ll [WebAssembly] Update extending load test for new i1 behavior 2016-10-20 00:10:34 +00:00
load.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
lower-em-ehsjlj-options.ll [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302) 2016-09-01 21:05:15 +00:00
lower-em-exceptions-whitelist.ll [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302) 2016-09-01 21:05:15 +00:00
lower-em-exceptions.ll [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302) 2016-09-01 21:05:15 +00:00
lower-em-sjlj.ll [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302) 2016-09-01 21:05:15 +00:00
mem-intrinsics.ll Codegen: Tail-duplicate during placement. 2016-10-11 20:36:43 +00:00
memory-addr32.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
negative-base-reg.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
non-executable-stack.ll
offset-folding.ll
offset.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
phi.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
reg-stackify.ll [WebAssembly] Fix for 0xc call_indirect changes 2016-10-21 16:38:07 +00:00
return-int32.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
return-void.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
returned.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
select.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
signext-zeroext.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
simd-arith.ll [WebAssembly] Initial SIMD128 support. 2016-08-02 23:16:09 +00:00
stack-alignment.ll [WebAssembly] Emit a BasePointer when we have overly-aligned stack objects 2016-11-07 22:00:48 +00:00
store-trunc.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
store.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
switch.ll [WebAssemby] Implement block signatures. 2016-10-06 22:29:32 +00:00
unreachable.ll [WebAssembly] Preliminary fast-isel support. 2016-05-10 17:39:48 +00:00
unused-argument.ll [WebAssembly] Optimize away return instructions using fallthroughs. 2016-05-21 00:21:56 +00:00
userstack.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
varargs.ll [WebAssembly] Remove the output operand from stores. 2016-10-06 22:08:28 +00:00
vtable.ll