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
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
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
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
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
9dabc2db15
Wasm: adjust dead code elimination to account for import function indices
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
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
9f8f31b2b6
Wasm: adjust function indices for preloading
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
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
b8ab6af203
Wasm: move WasmModule definition to mod.rs
2022-01-13 05:41:52 +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
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
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
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
Brian Carroll
6b932f9743
Clarify some lowlevel code to make it clearer what to do when adding new ones
2021-12-29 22:11:33 +00:00
rvcas
0d187fb53c
feat(wasm): use mono layout to figure out the correct intrinsic
2021-12-28 21:38:43 -05:00
Folkert de Vries
249878cbd9
Merge pull request #2281 from rtfeldman/i/2149
...
(llvm) Generate code for tag unions less than 64 bits in size correctly
2021-12-27 22:38:08 +01:00
Brian Carroll
0d8a2c8a49
Use tail call elimination where possible in ==
for tag unions
2021-12-27 18:08:43 +00:00
ayazhafiz
326bfe9aa3
Ensure WASM code gen uses proper tag ID alignment
...
We should use the alignment of the tag ID layout, not the alignment of
the rest of the data in the tag union. The reason is that the tag ID may
be smaller than the data.
2021-12-26 17:45:05 -06:00
Brian Carroll
e10acd59ee
Debug config for Wasm backend
2021-12-26 10:45:18 +00:00
Brian Carroll
da4cf721cc
Fix equality on empty structures
2021-12-26 10:40:45 +00:00
Brian Carroll
ca501fdcf1
Restructure CodeGenHelp to generate IR immediately, in depth-first traversal
2021-12-26 10:40:45 +00:00
Brian Carroll
471e2c3143
Completely delete Wasm BlockType
2021-12-21 23:14:55 +00:00
Brian Carroll
1c20075d7b
Change usage of Wasm if
instruction now that we don't support block results anymore
2021-12-21 23:14:55 +00:00
Folkert de Vries
2f1c648602
Merge pull request #2253 from rtfeldman/wasm-no-block-results
...
Wasm: fix nested conditionals
2021-12-21 16:35:22 +01:00
Brian Carroll
2a141b3586
Automatically clean up any unused values at the end of a block
2021-12-21 13:16:15 +00:00
Brian Carroll
17dc6668ec
Make all Wasm blocks NoResult and always put return value in a local var.
2021-12-21 13:16:15 +00:00
Brian Carroll
6480a720ae
Move symbol_layouts to storage.rs
2021-12-20 16:06:39 +00:00
Brian Carroll
3b2aa0bf6a
Fix bugs with symbol layouts in Wasm
2021-12-20 09:53:24 +00:00
Brian Carroll
9b833720d4
Further refactor and debug ==
in Wasm
2021-12-20 08:39:16 +00:00
Brian Carroll
f59e0e249b
Use native instructions for NotEq in Wasm
2021-12-19 21:20:06 +00:00
Brian Carroll
e0ffaca3df
Refactor Wasm equality operator
2021-12-19 21:20:06 +00:00