Brendan Hansknecht
6dc5bfb1b7
Use roc_target over target_lexicon
...
Tailors a target class for our needs.
Replaces tons of uses across the entire compiler.
This is a base for later adding new targets like thumb.
2024-03-31 10:50:26 -07:00
Richard Feldman
0b42a902ab
Have List.withCapacity lowlevel use u64 over usize
2024-01-31 20:29:17 -05:00
Brendan Hansknecht
05c1b6c583
more debug info corrections
2023-12-04 14:27:02 -08:00
Brendan Hansknecht
3d6c140a30
get minimal roc_dbg
working
2023-11-29 21:05:49 -08:00
Brendan Hansknecht
398bf2f96c
update rust code to llvm-16 and fix build
...
also update:
- llvm frame address
- erased function type
- dec passing to zig
- gen dev storage size
2023-10-23 13:50:31 -07:00
Ayaz Hafiz
d7a30966c1
Add explicit casts
...
For some reason these can no longer be inferred.
2023-07-17 09:50:37 -05:00
Ayaz Hafiz
7ea85e44d2
Add Layout::Erased
2023-07-12 14:43:24 -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
17512873e8
add LayoutRepr::Ptr
2023-06-24 14:49:45 +02:00
Ayaz Hafiz
41597cbab7
Do not make LayoutInterner mutable
2023-06-17 18:13:03 -05:00
Ayaz Hafiz
46e0ce32f4
no insert direct in expect
2023-06-17 18:13:02 -05:00
Ayaz Hafiz
6139918e3b
Remove insert_direct_no_semantic in compare eq
2023-06-17 18:13:02 -05:00
Ayaz Hafiz
ee25735731
LayoutIds use LayoutRepr
2023-06-17 18:13:02 -05:00
Ayaz Hafiz
390e9f8648
load_roc_value by layoutrepr
2023-06-17 18:13:01 -05:00
Ayaz Hafiz
5979405b79
Store value by layoutrepr
2023-06-17 18:13:01 -05:00
Ayaz Hafiz
bc41db2a34
Get rid of passing target_info a bunch
2023-06-17 18:13:00 -05:00
Ayaz Hafiz
8495f3b085
Have basic_type_from_layout take LayoutRepr
2023-06-17 18:12:17 -05:00
Ayaz Hafiz
b5a963195b
Fix struct clone
2023-06-16 10:30:42 -05:00
Ayaz Hafiz
bbef63f28f
Move load_symbol_and_layout to scope
2023-06-16 10:30:39 -05:00
Ayaz Hafiz
8d3d4ed9d8
Move LLVM scope ops to a separate module
2023-06-16 10:30:38 -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
4296d5a349
Drop Layout::struct_no_name_order
2023-05-10 15:58:51 -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
Anton-4
9748e4a4dc
many clippy fixes
2023-04-24 16:21:46 +02:00
Folkert
c0f49ce62c
correctly add padding between data and tag id
2023-03-28 19:46:26 +02:00
Folkert
0072192897
prepare for llvm 15
2023-01-28 14:51:47 +01:00
Ayaz Hafiz
f451ba49f1
Toss out when-recursive from llvm backend
2023-01-25 12:48:06 -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
dca1c665ae
fix list elementes being cloned to the wrong place
2023-01-14 14:25:23 +01:00
Ayaz Hafiz
03ece6e274
Update llvm backend
2023-01-11 14:39:10 -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
0011636ba9
Allow all the arguments
2022-12-29 11:42:24 -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
0f46ea83d0
standardize WhenRecursive
2022-12-19 19:05:25 +01:00
Folkert
3720c38e2b
convert to pointer_cast where we can
2022-12-17 23:21:19 +01:00
Folkert
8e36456765
de-duplicate tag extract value code
2022-12-17 22:56:05 +01:00
Ayaz Hafiz
2dc19207a3
Throw away usage of stored variables on receiver side
2022-12-14 17:00:37 -06:00
Ayaz Hafiz
fe90355265
Store specialized variables of expect lookups in expect frames
2022-12-14 17:00:36 -06:00
Folkert
95fe9cbccd
pass the pointer to shared memory around, instead of using a global
2022-12-08 23:22:26 +01:00
Folkert
e7f3c6f281
inline dbg
2022-11-23 21:23:28 +01:00