Commit graph

471 commits

Author SHA1 Message Date
Brian Carroll
0af4361f2a repl: continue fleshing out the Wasm repl code. Generate wrapper function. 2022-02-08 11:03:48 +00:00
Brian Carroll
85b418ebdf wasm: get rid of Result from gen_wasm, rename a function, improve comments 2022-02-08 11:03:48 +00:00
Brian Carroll
c5ccc99e20 repl: rename Wasm32TestResult -> Wasm32Result 2022-02-08 11:03:48 +00:00
Brian Carroll
e9871947d3 repl: move wasm32_test_result to gen_wasm, and extract Wasm32Sized from FromWasm32Memory 2022-02-08 11:03:48 +00:00
Folkert
afd11e1cb1 move target -> roc_target 2022-01-26 23:33:29 +01:00
Folkert
c663a35e16 final phase 2022-01-26 15:44:24 +01:00
Mats Sigge
71f359fbdc Move macros from roc_reporting to new roc_error_macros module
The `internal_error!` and `user_error!´ macros can't be used everywhere
when they live in `roc_reporting` due to circular dependencies.
2022-01-23 18:40:04 +01:00
Brian Carroll
992105930b
Merge pull request #2363 from rtfeldman/wasm-refactor-lowlevels
Wasm: refactor low-level ops
2022-01-21 07:16:45 +00:00
Anton-4
a6537683a1
Merge pull request #2355 from rtfeldman/fix-lint-error
Fix a lint error by simplifying an if/else block
2022-01-17 12:49:57 +01:00
Brian Carroll
f354b4842b Wasm: Move Eq/NotEq into LowLevelCall 2022-01-17 09:35:08 +00:00
Brian Carroll
f635dd8776 Wasm: Refactor lowlevels to get more flexibility without increasing boilerplate. 2022-01-17 09:33:06 +00:00
Brian Carroll
88b779c3ff Wasm: Create CodeGenNumber 2022-01-17 09:33:06 +00:00
Brian Carroll
05a6a9c7ce Wasm: update comments on lowlevels 2022-01-17 09:33:06 +00:00
Jan Van Bruggen
c1dc0226f6 Fix a lint error by simplifying an if/else block
From `cargo clippy -- -D warnings`:
```
error: all if blocks contain the same code at the start
   --> compiler/gen_wasm/src/wasm_module/sections.rs:478:9
    |
478 | /         if bytes[*cursor] == 0 {
479 | |             u8::skip_bytes(bytes, cursor);
480 | |             u32::skip_bytes(bytes, cursor);
    | |___________________________________________^
    |
    = note: `-D clippy::branches-sharing-code` implied by `-D warnings`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#branches_sharing_code
help: consider moving the start statements out like this
    |
478 ~         u8::skip_bytes(bytes, cursor);
479 +         u32::skip_bytes(bytes, cursor);
480 +         if bytes[*cursor] == 0 {
    |

error: could not compile `roc_gen_wasm` due to previous error
warning: build failed, waiting for other jobs to finish...
error: build failed
```
2022-01-16 06:14:10 -07:00
Brian Carroll
5e68f298df Wasm: Reorganise Stmt and Expr methods 2022-01-15 15:53:41 +00:00
Brian Carroll
6bdc27a49e Wasm: Use Vec instead of MutSet for called preloads 2022-01-15 15:35:42 +00:00
Brian Carroll
94ea50f56a Wasm: Clarify some more magic numbers 2022-01-15 15:35:42 +00:00
Brian Carroll
9290d3ad5c Wasm: Clarify where magic constant 5 comes from 2022-01-15 15:35:42 +00:00
Brian Carroll
e37ca971bd Wasm: Simplify CodeBuilder serialization, based on Richard's suggestion 2022-01-15 15:35:37 +00:00
Brian Carroll
8c4fd93b07 Wasm: Remove old debug code that's never used. We have the HTML debugger now. 2022-01-15 13:27:34 +00:00
Brian Carroll
8d5a1cb661 Wasm: Replace _ todo with RuntimeError todo 2022-01-15 13:27:34 +00:00
Brian Carroll
c38134bdc0 Wasm: remove legacy unused ret_layout 2022-01-15 13:27:34 +00:00
Brian Carroll
bafb6e54d0 Wasm: Change panic for literals todo -> internal_error 2022-01-15 13:27:34 +00:00
Brian Carroll
91a0b21e70 Wasm: Get rid of some Backend compatibility code 2022-01-15 13:27:34 +00:00
Brian Carroll
f4137013cb Wasm: tweaks from self-review 2022-01-14 18:50:52 +00:00
Brian Carroll
c5134fa015 Wasm: rename DeadCodeMetadata to PreloadsCallGraph 2022-01-14 18:37:52 +00:00
Brian Carroll
4311b5a410 Wasm: Make dead functions unreachable, and the same for all return types 2022-01-14 18:21:13 +00:00
Brian Carroll
e7dc442af0 Wasm: fix double-counting bug in dead function replacement 2022-01-14 18:20:52 +00:00
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