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