llvm-project/llvm/test/CodeGen/WebAssembly
Derek Schuff ffa143ce81 [WebAssembly] Support 'unreachable' expression
Lower LLVM's 'unreachable' terminator to ISD::TRAP, and lower ISD::TRAP to
wasm's 'unreachable' expression.

WebAssembly type-checks expressions, but a noreturn function with a
return type that doesn't match the context will cause a check
failure. So we lower LLVM 'unreachable' to ISD::TRAP and then lower that
to WebAssembly's 'unreachable' expression, which typechecks in any
context and causes a trap if executed.

Differential Revision: http://reviews.llvm.org/D14515

llvm-svn: 252566
2015-11-10 00:30:57 +00:00
..
call.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
cfg-stackify.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
comparisons_f32.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
comparisons_f64.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
comparisons_i32.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
comparisons_i64.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
conv.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
cpus.ll WebAssembly: print basic integer assembly. 2015-07-31 17:53:38 +00:00
dead-vreg.ll WebAssembly: don't omit dead vregs from locals 2015-10-17 00:25:38 +00:00
f32.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
f64.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
fast-isel.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
func.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
global.ll [WebAssembly] Switch to a more traditional assembly syntax 2015-10-06 00:27:55 +00:00
globl.ll [WebAssembly] Switch to a more traditional assembly syntax 2015-10-06 00:27:55 +00:00
i32.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
i64.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
immediates.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
import.ll [WebAssembly] Fix import statement 2015-10-30 16:41:21 +00:00
lit.local.cfg
load-ext.ll [WebAssembly] Make expression-stack pushing explicit 2015-11-06 19:45:01 +00:00
load-store-i1.ll [WebAssembly] Use more explicit types in testcases. 2015-11-06 21:32:42 +00:00
load.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
loop-idiom.ll WebAssembly: disable some loop-idiom recognition 2015-10-28 17:50:23 +00:00
memory-addr32.ll [WebAssembly] Update wasm builtin functions to match spec changes. 2015-11-05 20:16:59 +00:00
memory-addr64.ll [WebAssembly] Update wasm builtin functions to match spec changes. 2015-11-05 20:16:59 +00:00
phi.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
return-int32.ll WebAssembly: fix call/return syntax. 2015-10-20 01:26:54 +00:00
return-void.ll [WebAssembly] Switch to a more traditional assembly syntax 2015-10-06 00:27:55 +00:00
select.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
store-trunc.ll WebAssembly: fix load/store syntax 2015-10-16 18:24:42 +00:00
store.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00
switch.ll [WebAssembly] Switch to a more traditional assembly syntax 2015-10-06 00:27:55 +00:00
unreachable.ll [WebAssembly] Support 'unreachable' expression 2015-11-10 00:30:57 +00:00
unused-argument.ll [WebAssembly] Add more explicit pushes to the tests. 2015-11-06 21:26:50 +00:00