Commit graph

227 commits

Author SHA1 Message Date
Brian Carroll
c510226c15 Reorganise Wasm lowlevels to get pointer equality working correctly 2021-12-19 21:20:06 +00:00
Brian Carroll
a1d883600c Equality operator for records 2021-12-18 17:25:00 +00:00
rvcas
b9bd75d643 Merge branch 'trunk' into wasm_arrays 2021-12-17 11:54:23 -05:00
rvcas
bc94683100 feat(wasm): copy value to memory 2021-12-17 11:37:40 -05:00
Brian Carroll
1b98673704 Separate stack and heap pointers & create Symbols for list literals 2021-12-17 11:45:54 +00:00
rvcas
bed288330f feat(wasm): try different offsets 2021-12-16 22:27:16 -05:00
rvcas
fc07070617 feat(wasm): trying to add the rest of the elements to the list 2021-12-16 22:14:15 -05:00
rvcas
b35deacebe feat(wasm): use allocate with ref count 2021-12-16 21:23:13 -05:00
rvcas
c14b4b81e0 Merge branch 'trunk' into wasm_arrays 2021-12-16 21:07:12 -05:00
Brian Carroll
3eb9e9f7ac Traverse nested layouts for code gen helpers 2021-12-16 16:56:56 +00:00
Brian Carroll
86d8e2789e Implement Wasm string equality 2021-12-16 16:56:56 +00:00
Brian Carroll
e1a04c2661 Only check layout is implemented for RC, not other ops 2021-12-16 16:56:56 +00:00
Brian Carroll
cd91be678f Setup for specializing equality checks 2021-12-16 16:52:47 +00:00
Brian Carroll
efef2be958 Rename mono IR code gen helpers 2021-12-16 16:52:47 +00:00
Brian Carroll
71de2289ae Rename helper proc generator struct 2021-12-16 16:52:47 +00:00
Brian Carroll
0547647341 Rename code gen helper file in mono 2021-12-16 16:52:47 +00:00
Brian Carroll
594fe9124d Wasm support for 128-bit number literals, isFinite, ==, and != 2021-12-13 09:05:07 +00:00
Brian Carroll
c290bbe7a7 Move layout calculations to layout module 2021-12-12 12:22:10 +00:00
Brian Carroll
2a53e2711d formatting 2021-12-12 08:41:34 +00:00
Brian Carroll
044a2015bb Make better use of Layout methods for GetTagId 2021-12-12 08:35:02 +00:00
Brian Carroll
9594b05c96 Add some debug features to gen_wasm 2021-12-11 20:33:54 +00:00
Brian Carroll
9bf1b9aae3 Fix double-offset bug 2021-12-11 20:33:11 +00:00
Brian Carroll
c53b3c3686 Skip refcounting on unimplemented layouts 2021-12-11 20:33:11 +00:00
Brian Carroll
f3ca3be507 Add Wasm support for recursive tags, along with GetTagId and UnionAtIndex 2021-12-11 20:33:11 +00:00
rvcas
6ada59d7a1 feat(wasm): the beginnings of a real array 2021-12-10 14:44:19 -05:00
Brian Carroll
bab8a0b8a0 Fix alignment bug 2021-12-10 14:52:59 +00:00
Brian Carroll
3f7b3bef87 Merge branch 'trunk' of github.com:rtfeldman/roc into wasm-tags 2021-12-09 09:28:11 +00:00
Brian Carroll
1dda8859c4 Update gen_wasm's error handling to remove Result and use macros consistently 2021-12-09 00:11:44 +00:00
Brian Carroll
8a1a164544 Prevent >8 bit alignment specifier in Wasm store instruction, which is not allowed 2021-12-08 21:42:48 +00:00
Brian Carroll
1ba654c5b2 Change round_up_to_alignment to a macro to work on more Rust types 2021-12-08 21:11:10 +00:00
Brian Carroll
6a801ebc7e gen_wasm: add support for non-recursive Tags 2021-12-08 20:45:49 +00:00
Brian Carroll
f6b6d91c56 More accurate comment for EmptyArray 2021-12-08 20:30:26 +00:00
Brian Carroll
73c9c7089a Fix gen_wasm Let statement for heap-allocating expressions
When we allocate on the heap we'll need to force LocalId storage.
In that case we don't want CodeBuilder to track the Symbol,
even though it has WasmLayout::Primitive.
So basically it was always the wrong condition to check, but we
got away with it when we had no heap allocations.
2021-12-08 20:30:26 +00:00
Brian Carroll
6b30ab79ac Fix release build of Wasm backend 2021-12-01 00:03:01 +00:00
Brian Carroll
ea64b6488c Add some disabled debugging statements 2021-11-30 12:59:03 +00:00
Brian Carroll
b1ba1d2db9 WasmBackend no longer needs any public fields, only methods 2021-11-30 10:58:03 +00:00
Brian Carroll
a08633fd36 Debugging improvements 2021-11-30 10:58:03 +00:00
Brian Carroll
8a137126fe Fix bug with linker info for refcount procs 2021-11-30 10:57:59 +00:00
Brian Carroll
22ccb6eca4 Prefix string constants with REFCOUNT_MAX 2021-11-30 09:57:31 +00:00
Brian Carroll
c2a2ff2957 Create Expr::to_pretty in mono IR 2021-11-30 09:57:26 +00:00
Brian Carroll
3581c7f5be Use readable debug names throughout refcount proc generator 2021-11-30 09:57:00 +00:00
Brian Carroll
820d9e0ab4 Register debug names for new Symbols, and refactor to avoid borrow-checker issues 2021-11-30 09:57:00 +00:00
Brian Carroll
e7d8c7c895 Make gen_wasm's Env mutable 2021-11-30 09:57:00 +00:00
Brian Carroll
f4d52f7084 Add alignment argument to Zig decref call 2021-11-30 09:57:00 +00:00
Brian Carroll
2ad032f894 Integrate refcount proc generator with Wasm backend 2021-11-30 09:57:00 +00:00
Brian Carroll
61575cea7e Generate calls to refcount procs from Wasm backend 2021-11-30 09:57:00 +00:00
rvcas
27e77f446f feat(wasm): implement EmptyArray 2021-11-29 15:08:52 -05:00
Brian Carroll
1f747e971f Clippy & fmt 2021-11-29 01:09:31 +00:00
Brian Carroll
88bf6bf1b7 Clean up Wasm calling convention code 2021-11-29 00:17:45 +00:00
Brian Carroll
27af5897d1 Handle zero-size structs 2021-11-28 21:04:40 +00:00