Commit graph

84 commits

Author SHA1 Message Date
Folkert
1e744dca7c
missing functions for dev backend for glue 2024-01-27 14:51:09 +01:00
Folkert
c019ced31d
various 2023-11-18 23:05:55 +01:00
Richard Feldman
dc7e8b43bd
Rename Float to Frac in more places 2023-09-11 08:50:13 -04:00
Folkert
334253f47f
check inside a lambda set for whether it is reference counted 2023-07-26 20:06:37 +02:00
Ayaz Hafiz
00730be6fb
Fix doc comments 2023-07-12 17:16:12 -05:00
Ayaz Hafiz
937e042c8f
Fixed erased with nullable unwrapped union 2023-07-12 16:01:44 -05:00
Ayaz Hafiz
a8d821bf87
Remove all box references 2023-07-12 15:50:00 -05:00
Ayaz Hafiz
1d1db83cc7
Add needed file 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
7ea85e44d2
Add Layout::Erased 2023-07-12 14:43:24 -05:00
Ayaz Hafiz
63db2c0eea
Add erased layout 2023-07-12 14:17:57 -05:00
Ayaz Hafiz
6312d75ee0
Add FunctionPointer layout 2023-07-12 13:59:50 -05:00
Folkert
6d2d65bb1e
remove Boxed layout 2023-07-09 15:47:28 +02:00
Folkert
7637506037
skip is_null check if possible 2023-06-24 14:49:49 +02:00
Folkert
17512873e8
add LayoutRepr::Ptr 2023-06-24 14:49:45 +02:00
Ayaz Hafiz
bc41db2a34
Get rid of passing target_info a bunch 2023-06-17 18:13:00 -05:00
Ayaz Hafiz
5b0d47c9eb
Drop Layout::alignment_bytes_for_llvm 2023-06-16 10:30:44 -05:00
Ayaz Hafiz
2294f6994f
TERRIBLE HACK to support x86 compilation 2023-06-16 10:30:44 -05:00
Ayaz Hafiz
90533bc014
Add Layout::LIST_U8 2023-06-16 10:30:42 -05:00
Ayaz Hafiz
de44e90fda
Add Layout::STR_PTR 2023-06-16 10:30:40 -05:00
Folkert
59da1ea891
consistently name function symbols
previously the dev backend did not take into account lambda name information to generate function names. This could cause the same function name to be defined twice
2023-06-11 13:39:43 +02:00
Ayaz Hafiz
57bd0d29d6
Be sure to preserve layout wrappers during reification 2023-06-06 16:03:53 -05:00
Ayaz Hafiz
9a8d138424
eq_repr should chase under reprs 2023-06-06 16:03:53 -05:00
Ayaz Hafiz
5274dbcd00
Add a Newtype variant to LayoutWrapper 2023-06-06 16:03:52 -05:00
Ayaz Hafiz
457cdabc5c
Make repr private and accessible only via the interner 2023-06-06 16:01:27 -05:00
Ayaz Hafiz
a67c148be7
Convert LayoutRepr::Struct into a tuple variant 2023-05-16 11:58:16 -05:00
Ayaz Hafiz
1b84cbafe3
Only compare reprs in gen_dev 2023-05-11 12:48:38 -05:00
Ayaz Hafiz
931d26206f
Only check for repr equality in codegen 2023-05-11 09:23:45 -05:00
Ayaz Hafiz
8ca71c7eda
Get started with semantic layouts for tag unions 2023-05-10 18:47:10 -05:00
Ayaz Hafiz
4d50817968
Preserve semantic when reifying recursion layouts 2023-05-10 17:29:00 -05:00
Ayaz Hafiz
49b8886b82
Hide semantic repr in layout 2023-05-10 17:24:45 -05:00
Ayaz Hafiz
31c9cc8227
Hide away SemanticRepr definition 2023-05-10 17:10:58 -05:00
Ayaz Hafiz
a37a0f1770
DbgDeep for semantic reprs 2023-05-10 17:09:50 -05:00
Ayaz Hafiz
4296d5a349
Drop Layout::struct_no_name_order 2023-05-10 15:58:51 -05:00
Ayaz Hafiz
1170b542b6
Remove field_order_hash from struct layouts 2023-05-10 15:49:30 -05:00
Ayaz Hafiz
43d4135dc8
Semantic layouts for tuples 2023-05-10 15:40:44 -05:00
Ayaz Hafiz
c06ffc434b
Begin generating semantic reprs for records 2023-05-10 15:38:25 -05:00
Ayaz Hafiz
58fe2bb4e0
Ignore all semantic layouts for now 2023-05-10 15:21:01 -05:00
Ayaz Hafiz
f100e8753c
Introduce the concept of SemanticRepr 2023-05-10 13:51:04 -05:00
Ayaz Hafiz
c3eeb5e2cc
Wrap layouts in a LayoutRepr constructor
Part 1 of support semantic layout representations.
2023-05-10 13:22:10 -05:00
Folkert
af2ab24525
simplify and fully implement comparisons 2023-04-23 19:58:31 +02:00
Folkert
4cd8f0a056 clippy --fix fixes 2023-04-21 12:05:51 +02:00
Folkert
9a6f9ad26e
functions in structs, in general 2023-04-04 15:01:17 +02:00
Ayaz Hafiz
e5c3376e90
Debug ProcLayouts 2023-02-20 18:49:18 -06:00
Ayaz Hafiz
a3de22c88a
Do not fixup recursion pointers in non-recursive lambda sets
If a lambda set is non-recursive, but contains naked recursion pointers,
we should not fill those naked pointers in with the slot of the lambda
set during interning. Such naked pointers must belong to an encompassing
lambda set that is in fact recursive, and will be filled in later.

For example, `LambdaSet([Foo, LambdaSet(Bar, [<rec>])] as <rec>)` should
not have the inner lambda set's capture be filled in with itself.

Also, during reification of recursion pointers, we do not need to
traverse re-inserted lambda sets again, since they were just fixed-up.

Closes #5026
2023-02-13 17:14:04 -06:00
Ayaz Hafiz
0af5929411
Add comments for debug reprs 2023-01-30 17:22:16 -06:00
Ayaz Hafiz
4a59e24081
Address lints 2023-01-30 16:48:46 -06:00
Ayaz Hafiz
c3064dad73
Add method to get index of interned layout 2023-01-30 15:53:37 -06:00
Ayaz Hafiz
c1a937e393
Add method to debug whole nested structure of interned layout 2023-01-30 15:53:13 -06:00
Ayaz Hafiz
a294cae9cd
Don't store recursive unions by recursive pointer head-on 2023-01-25 18:05:43 -06:00
Ayaz Hafiz
36beda63ba
Lints 2023-01-25 18:00:32 -06:00