Commit graph

3906 commits

Author SHA1 Message Date
Folkert
9d1e2a0ef1 support zero-sized values (empty record, unit type)
They now use no stack space
2020-03-19 11:31:06 +01:00
Dan Bruder
2c630fd014 Use sorted fields from struct layout as well as layout.stack_size in crane and llvm access 2020-03-19 05:59:29 -04:00
Dan Bruder
59bcda21f5 tests pass for crane f64 2020-03-19 05:46:11 -04:00
Chad Stearns
3984a8d60e Merging in remote 2020-03-19 01:10:57 -04:00
Chad Stearns
beb94dc6f5 Cargo Fmt 2020-03-19 01:10:04 -04:00
Richard Feldman
04f8b93a9b the clippiest of clips 2020-03-18 21:31:01 -04:00
Richard Feldman
8f51b2d429 Don't hardcode elem_bytes in llvm 2020-03-18 21:31:01 -04:00
Richard Feldman
0a045ccec8 Don't hardcode List slots in Cranelift 2020-03-18 21:31:01 -04:00
Richard Feldman
43c4fadd6e Use usize length, no capacity for llvm List 2020-03-18 21:31:01 -04:00
Richard Feldman
59368caa0c Revert various attempts to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
c425490317 Another failed attempt to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
6e977d96fc Failed attempt to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
eed9fb0e69 Have Env store TargetData instead of pointer_bytes 2020-03-18 21:26:51 -04:00
Folkert
b93fe4e341 make arbitrary AccessAtIndex work
it now uses that actual layout, not a hardcoded one
2020-03-19 00:25:16 +01:00
Folkert
f3f135eca5 make Layout Hash 2020-03-18 23:26:17 +01:00
Folkert
b28a6ffa33 optimize tag union layout calculation 2020-03-18 22:42:10 +01:00
Folkert
0996f264e7 simplify Byte layout 2020-03-18 22:22:32 +01:00
Folkert
c11f374eb0 simplify Bool layout 2020-03-18 22:15:03 +01:00
Folkert
f906c9b4b4 uncomment cranelift tests 2020-03-18 21:39:39 +01:00
Folkert
99db336033 Working pattern match on Result Int Int 2020-03-18 21:35:10 +01:00
Folkert
53bd47221c WIP things seem to work in theory 2020-03-18 16:44:53 +01:00
Folkert
845e30658e WIP 2020-03-18 02:20:21 +01:00
Folkert
165c5d8363 load/store all tags in llvm 2020-03-17 22:04:11 +01:00
Folkert
6253d2d1af pattern match on single-tag tag unions
in LLVM and crane
2020-03-17 19:44:59 +01:00
Folkert
b5abed5f54 variables in pattern matches on single tags 2020-03-17 16:27:09 +01:00
Folkert
ba69987c1a llvm one element tag store 2020-03-17 15:29:40 +01:00
Folkert
b6ca5e2fb9 allow Attr wrapper in tag union ext
this should not happen, but we sometimes call this function on the whole tag, which then may be Attr-wrapped
2020-03-17 15:27:05 +01:00
Folkert
9d756a3b2c generate unpacked tags in Crane 2020-03-17 15:26:21 +01:00
Folkert
c3d550116b make patterns store their bound variables 2020-03-17 14:04:26 +01:00
Folkert
6310341b7e Merge remote-tracking branch 'origin/trunk' into pattern-compilation 2020-03-17 12:49:30 +01:00
Richard Feldman
9d950389f5 Implement list cloning and List.set in Cranelift 2020-03-17 00:45:07 -04:00
Richard Feldman
c0d0675919 Clean up some comments and names 2020-03-17 00:44:35 -04:00
Richard Feldman
97d084e224 Reproduce List.set on a shared list failing 2020-03-16 21:55:38 -04:00
Richard Feldman
77bf2547ac Add sfe_to_memcpy 2020-03-16 21:55:24 -04:00
Richard Feldman
e7b391cd6b Improve some docs 2020-03-16 21:55:12 -04:00
Richard Feldman
f9e013793c Drop unused mono::Expr::Pointer 2020-03-16 21:47:08 -04:00
Richard Feldman
bfe7c1b330 Update a comment 2020-03-16 21:27:49 -04:00
Richard Feldman
ae0d2f09d1 Some more Str docs revisions 2020-03-16 20:55:31 -04:00
Folkert
c20f777dba comment tests that fail for llvm 2020-03-17 00:36:58 +01:00
Folkert
ab332a37c3 take the maximum of all tags when calculating layout 2020-03-17 00:36:58 +01:00
Folkert
444e3063e0 reserve tag union as array of bytes in llvm 2020-03-17 00:36:58 +01:00
Folkert
6ff22de9dd store/define tags in llvm 2020-03-17 00:36:58 +01:00
Folkert
72ca6d675c further tag support in Cranelift 2020-03-17 00:36:58 +01:00
Folkert
74ec3682a2 add tests 2020-03-17 00:36:58 +01:00
Folkert
5fca5fe631 collect tags from aliases 2020-03-17 00:36:58 +01:00
Folkert
c9a90c32e3 prepare for Tag code gen 2020-03-17 00:36:58 +01:00
Folkert
e742b77e0b parity with old implementation 2020-03-17 00:36:58 +01:00
Folkert
d875f8bfce implement layout for Tag 2020-03-17 00:36:58 +01:00
Folkert
8c7124aba6 first pass 2020-03-17 00:36:58 +01:00
Richard Feldman
6637bfb226 Add some more Str docs 2020-03-16 02:40:20 -04:00