Heejin Ahn
0db40de6ca
[WebAssembly] Optimize Irreducible Control Flow
...
Summary:
Irreducible control flow is not that rare, e.g. it happens in malloc and
3 other places in the libc portions linked in to a hello world program.
This patch improves how we handle that code: it emits a br_table to
dispatch to only the minimal necessary number of blocks. This reduces
the size of malloc by 33%, and makes it comparable in size to asm2wasm's
malloc output.
Added some tests, and verified this passes the emscripten-wasm tests run
on the waterfall (binaryen2, wasmobj2, other).
Reviewers: aheejin, sunfish
Subscribers: mgrang, jgravelle-google, sbc100, dschuff, llvm-commits
Differential Revision: https://reviews.llvm.org/D55467
Patch by Alon Zakai (kripken)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350367 91177308-0d34-0410-b5e6-96231b3b80d8
2019-01-03 23:10:11 +00:00
..
2018-11-13 19:14:02 +00:00
2018-11-19 17:10:36 +00:00
2018-10-25 23:45:48 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-10-04 23:31:00 +00:00
2018-08-27 15:45:51 +00:00
2018-10-24 23:31:24 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-05-10 17:49:11 +00:00
2018-05-10 17:49:11 +00:00
2018-05-10 17:49:11 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-10-25 23:55:10 +00:00
2018-12-11 01:11:04 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-05-10 17:49:11 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-12-20 04:20:32 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2019-01-03 23:10:11 +00:00
2019-01-03 23:10:11 +00:00
2019-01-03 23:10:11 +00:00
2019-01-03 23:10:11 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2015-07-06 23:14:57 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-05-10 17:49:11 +00:00
2018-11-20 19:25:07 +00:00
2018-11-08 22:56:26 +00:00
2018-11-20 19:25:07 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-05-10 17:49:11 +00:00
2018-11-18 11:58:47 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-08 02:35:28 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2019-01-02 20:43:08 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-12-21 06:58:15 +00:00
2018-08-27 15:45:51 +00:00
2018-12-17 22:04:44 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-11-19 17:10:36 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-08-27 15:45:51 +00:00
2018-05-10 17:49:11 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-11-19 17:10:36 +00:00
2018-07-02 16:03:49 +00:00
2018-11-16 18:59:51 +00:00
2018-11-16 00:47:18 +00:00