Commit graph

443 commits

Author SHA1 Message Date
Brian Carroll
c7da7ca689 Wasm: Parse the Name section, export init_refcount_test, and don't DCE exports 2022-01-14 18:20:52 +00:00
Brian Carroll
3d00217b53 Wasm: rename build_module_help -> build_module_without_test_wrapper 2022-01-14 18:20:52 +00:00
Brian Carroll
22d7ccfbd7 Wasm: Comment explaining DCE 2022-01-14 18:20:52 +00:00
Brian Carroll
6b204d11a2 Wasm: sort and deduplicate on each round of live function tracing 2022-01-14 18:20:52 +00:00
Brian Carroll
9dabc2db15 Wasm: adjust dead code elimination to account for import function indices 2022-01-14 18:20:52 +00:00
Brian Carroll
ca2597973e Wasm: store function_count on the ImportSection 2022-01-14 18:20:52 +00:00
Brian Carroll
7a4593170c Wasm: reuse existing SkipBytes code for opcodes 2022-01-14 18:20:52 +00:00
Brian Carroll
8a01c3f98a Wasm: implement dead code elimination 2022-01-14 18:20:52 +00:00
Brian Carroll
98400cae1b Wasm: Move code around 2022-01-14 18:20:52 +00:00
Brian Carroll
61d46be923 Wasm: Parse the Code section to collect metadata for dead function elimination 2022-01-14 18:20:52 +00:00
Brian Carroll
48f14f9a83 Wasm: Implement SkipBytes for OpCode 2022-01-14 18:20:52 +00:00
Brian Carroll
2ade357ea9 Wasm: Specify the format of immediate operands for each opcode 2022-01-14 18:20:52 +00:00
Brian Carroll
dd79a9b35a Clippy fixes 2022-01-13 05:41:52 +00:00
Brian Carroll
c8181c3a19 Wasm: use parsed data from object file in the backend 2022-01-13 05:41:52 +00:00
Brian Carroll
8a384ffa88 Wasm: parse just enough of the Import section to count functions 2022-01-13 05:41:52 +00:00
Brian Carroll
9f8f31b2b6 Wasm: adjust function indices for preloading 2022-01-13 05:41:52 +00:00
Brian Carroll
9f0e0d5099 Wasm: create a hashmap of exported functions 2022-01-13 05:41:52 +00:00
Brian Carroll
fa46ab95fc Wasm: rename some constants 2022-01-13 05:41:52 +00:00
Brian Carroll
f9fbe461d1 Wasm: Fix section parsing bug 2022-01-13 05:41:52 +00:00
Brian Carroll
3067358a33 Wasm: test for LEB-128 decoder 2022-01-13 05:41:52 +00:00
Brian Carroll
9c0abcd0da Wasm: Preload WasmModule from object file bytes 2022-01-13 05:41:52 +00:00
Brian Carroll
d3554b2ac0 Wasm: Create Section trait for common functionality between module sections 2022-01-13 05:41:52 +00:00
Brian Carroll
fd79613f0d Wasm: load platform object file in tests and pass the bytes to the backend 2022-01-13 05:41:52 +00:00
Brian Carroll
5d5e0eca96 Wasm: Convert remaining sections to store bytes, and add .size() methods 2022-01-13 05:41:52 +00:00
Brian Carroll
f4ac5bffa3 Wasm: replace builtins imports with a hashmap 2022-01-13 05:41:52 +00:00
Brian Carroll
5a39002e8b Wasm: Serialize WasmModule without linking info 2022-01-13 05:41:52 +00:00
Brian Carroll
b8ab6af203 Wasm: move WasmModule definition to mod.rs 2022-01-13 05:41:52 +00:00
Brian Carroll
d88b86e884 Wasm: change TypeSection tests to unit tests rather than integration tests 2022-01-13 05:41:52 +00:00
Brian Carroll
8e7f398e50 Wasm: Remove code to adjust function indices based on imports
With pre-linking we don't need this anymore. Pure Roc code can't add Imports.
2022-01-13 05:41:52 +00:00
Richard Feldman
d0e3c45986
Merge pull request #2328 from rtfeldman/wasm-module-refactor
Wasm module refactor
2022-01-12 11:28:12 -05:00
ayazhafiz
2c41c43aea Implement saturated add/subtract 2022-01-10 22:37:08 -05:00
Brian Carroll
c5653951a4 Wasm: improve the TypeSection preload test 2022-01-10 10:26:43 +00:00
Brian Carroll
8f73b722ff Wasm: fix release build 2022-01-10 10:26:43 +00:00
Brian Carroll
fc677e8d58 Wasm: add preloading logic for Types section 2022-01-10 10:26:43 +00:00
Brian Carroll
59278a02d6 Wasm: Create a LinkingSegment to keep string data aligned correctly 2022-01-10 10:26:43 +00:00
Brian Carroll
c89f74f7e8 Wasm: clippy fixes 2022-01-10 10:26:43 +00:00
Brian Carroll
a1f737d6d8 Wasm: Create OpaqueSection for sections that may be used in builtins but not by us 2022-01-10 10:26:43 +00:00
Brian Carroll
738434329e Wasm: refactor the model of the Linking section 2022-01-10 10:26:42 +00:00
Brian Carroll
6db7dbed1c Wasm: Store DataSection as bytes and segment count 2022-01-10 10:26:42 +00:00
Brian Carroll
265171ad17 Wasm: Make sure string constants are placed at a properly aligned offset 2022-01-10 10:26:42 +00:00
Brian Carroll
b8f51fb1bb Wasm: add preloaded_bytes and preloaded_count to Code section 2022-01-10 10:26:42 +00:00
Brian Carroll
743e14148c Wasm: Store Function section as bytes and a count 2022-01-10 10:26:42 +00:00
Brian Carroll
7a6c6b675c Wasm: Store type signatures in serialized form 2022-01-10 10:26:42 +00:00
rvcas
d2f95bde63 chore(StrToNum): layout is always a Struct, we don't need the Union case 2022-01-03 18:15:46 -05:00
Brian Carroll
aec8d1bf3d Merge branch 'trunk' of github.com:rtfeldman/roc into str_to_num 2022-01-02 12:31:59 +00:00
Brian Carroll
f767014f30
Merge pull request #2301 from rtfeldman/wasm-refcount-list
Wasm refcounting for lists
2021-12-31 13:25:38 +00:00
Brian Carroll
83d6c82e0b Wasm: avoid two memory loads for ListLen, at the cost of +1 instruction byte 2021-12-30 15:40:55 +00:00
Brian Carroll
0912f8fd45 Wasm: replace a local.set/get pair with a local.tee 2021-12-30 15:40:00 +00:00
Brian Carroll
acade33497 Wasm bugfix: allocate using the heap alignment, not the stack alignment 2021-12-30 15:37:09 +00:00
rvcas
e7825127d6 Merge branch 'trunk' into str_to_num 2021-12-29 18:17:33 -05:00