Ayaz Hafiz
f451ba49f1
Toss out when-recursive from llvm backend
2023-01-25 12:48:06 -06:00
Ayaz Hafiz
37d9307fbf
Call insert_recursive for union layouts
2023-01-23 15:40:40 -06:00
Ayaz Hafiz
8750127111
Begin support for looping-back recursive pointers to their source layouts
2023-01-23 14:37:48 -06:00
Folkert
437498b7ac
list decrement must use capacity, not length
2023-01-14 13:14:37 +01:00
Ayaz Hafiz
03ece6e274
Update llvm backend
2023-01-11 14:39:10 -06:00
Richard Feldman
94ccb0fd8d
Merge pull request #4849 from roc-lang/intern-layouts-5-lambda-set-layout-cache
...
Reduce layout intern allocations
2023-01-10 20:35:09 -05:00
Ayaz Hafiz
066bc7d953
Make sure to bump index of nullable-wrapped tag indices after null variants
...
Fixes a bug in ref-counting.
2023-01-10 10:01:50 -06:00
Ayaz Hafiz
ce717dca8b
Do not require allocating Layouts in arena before interning
...
This should reduce memory spend, the interner has its own effective
arena anyway
2023-01-10 09:47:13 -06:00
Ayaz Hafiz
50826d1a83
Inline interners into the layout interner module
...
I realized that we'll need to make the layout interner more complicated
to support things like recursive pointers pointing to their parents and
to support lambda set layout caching. Since the layout interner is the
only user of intern crate right now anyway, just inline the whole thing.
2023-01-03 14:19:39 -06:00
Ayaz Hafiz
512a1721ae
Push mutable layout interner through llvm backend
2022-12-29 10:04:43 -06:00
Ayaz Hafiz
e4b5252e51
List takes interned element
2022-12-29 08:52:37 -06:00
Ayaz Hafiz
7ab7fdfa7b
Push interned layouts as mut throughout the backend, and intern box layouts
2022-12-28 18:51:26 -06:00
Folkert
9bf8d65170
upgrade most build_load usages
2022-12-20 00:11:45 +01:00
Folkert
f2d0953e0a
upgrade build_in_bounds_gep
2022-12-19 20:21:27 +01:00
Folkert
bc9c813fec
already do some of the llvm struct_gep conversion work
2022-12-19 19:57:31 +01:00
Folkert
3720c38e2b
convert to pointer_cast where we can
2022-12-17 23:21:19 +01:00
Ayaz Hafiz
3685ad2ed2
Ensure that llvm gen_ wrappers account different recursive pointers
...
Closes #2551
2022-12-02 13:38:32 -06:00
Folkert
134de80150
various updates
2022-11-03 17:18:27 +01:00
Folkert
66a1ba00eb
1.65 clippy fixes
2022-11-03 16:20:37 +01:00
Folkert
bb19644d40
make inc/dec private on non-windows
2022-10-26 16:47:12 +02:00
Folkert
38d7e57248
make refcounting functions link as External
2022-10-26 16:41:20 +02:00
Ayaz Hafiz
8cd4281173
Complex bitcast recursive tag union pointers when we need them to be opaque
...
Resolves a discussion on Zulip: https://roc.zulipchat.com/#narrow/stream/231635-compiler-development/topic/When.20recursive.20structs.20aren't.20recursive
2022-09-14 20:58:54 -05:00
Ayaz Hafiz
3b4b1838b8
Push layout interner further through Layout
2022-08-31 14:33:52 -05:00
Folkert
4977d1c65e
use RocUnion constants for tag index
2022-07-22 21:13:53 +02:00
Folkert
4d55b756bb
remove dict/set layout
2022-07-13 11:41:19 +02:00
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes
2022-07-01 17:37:43 +02:00