Commit graph

355 commits

Author SHA1 Message Date
Brendan Hansknecht
d76394ac31
Fix the nonnull attribute
The current version will fail if run through the `opt` tool.
nonnull should have no data attached.
2024-01-27 08:36:06 -08:00
Luke Boswell
6bdcc4743a
Merge pull request #6363 from roc-lang/windows-llvm-setjmp-longjmp
fix for bugged setjmp/longjmp on windows/llvm
2024-01-09 22:00:15 +11:00
Brendan Hansknecht
3559326996
Set debug info version
We just missed setting it. Set it as specified in the docs: https://thedan64.github.io/inkwell/inkwell/debug_info/index.html#setting-up-the-module-for-holding-debug-info
Not sure why it is 3, but that is the value in the llvm tutorial as well: https://llvm.org/docs/SourceLevelDebugging.html

Fixes #6367
2024-01-08 20:28:42 -08:00
Folkert
b9b19d6054
fix for bugged setjmp/longjmp on windows/llvm 2024-01-07 23:04:11 +01:00
Anton-4
cd632fe549
Merge branch 'main' of github.com:roc-lang/roc into clippy-1.74 2023-12-25 17:05:37 +01:00
Anton-4
384cf2decf
add __udivti3 to must_keep
Fixes Undefined Symbol in relocation...
2023-12-13 12:09:15 +01:00
Brendan Hansknecht
ec6d8142e7
Re-enable early DCE with fix for M1 mac
I won't claim to know why `__muloti4` is special, but none of the other compiler-rt functions are,
but seems to work and stop tests from hanging.

It also enables early DCE again which saves a tiny bit of compile time.
2023-12-12 10:43:14 -08:00
Richard Feldman
95a4bb988c
Merge pull request #6255 from roc-lang/glue-panic-handler
make glue use a setjmp/longjmp panic handler
2023-12-11 16:33:26 -05:00
Richard Feldman
67d7385b9a
Clean up some obsolete asserts 2023-12-11 15:15:59 -05:00
Folkert
d2d87949c8
remove random write to pointer 2023-12-11 21:07:15 +01:00
Folkert
590282b14f
make glue use a setjmp/longjmp panic handler 2023-12-11 20:33:21 +01:00
Brendan Hansknecht
fb049b661a
Remove early DCE of builtins
Early DCE was sometimes cleaning up functions that we actaully still needed.
At some point we can come back to it and try to properly protect all special functions.
Until then, this still enables DCE, but it runs later with the full generated Roc module.
2023-12-11 10:44:57 -08:00
Brendan Hansknecht
b39d604745
Dict follow up and addition of releaseExcessCapacity 2023-12-10 00:06:58 -08:00
Brendan Hansknecht
1ad9933b38
add some missed symbols that roc needs 2023-12-09 18:33:23 -08:00
Brendan Hansknecht
e621de328d
fix dce of compiler-rt 2023-12-09 18:11:23 -08:00
Brendan Hansknecht
05c1b6c583
more debug info corrections 2023-12-04 14:27:02 -08:00
Brendan Hansknecht
496cd6710a
fix debug info and add it all to the llvm backend 2023-12-04 12:55:33 -08:00
Brendan Hansknecht
787d7f85ac
switch dbg arg ordering to make it backwards compatible 2023-12-02 21:18:32 -08:00
Brendan Hansknecht
3966d63e2f
add src and location to dbg 2023-12-02 21:18:31 -08:00
Ayaz
aaba3f4d82
Merge branch 'main' into clippy-1.74 2023-12-02 20:09:06 -06:00
Brendan Hansknecht
1f14aa84a2
misc cleanup suggestions 2023-11-29 21:05:56 -08:00
Brendan Hansknecht
e6cc43492a
rip out old dbg and setup reasonable base debug location info 2023-11-29 21:05:49 -08:00
Brendan Hansknecht
3d6c140a30
get minimal roc_dbg working 2023-11-29 21:05:49 -08:00
Folkert
c019ced31d
various 2023-11-18 23:05:55 +01:00
HajagosNorbert
9c21ac1388
rename to GetElementPointer, index -> indices 2023-11-13 15:48:05 +01:00
HajagosNorbert
90223022af
remove tag_id in favor of index 2023-11-13 15:48:05 +01:00
HajagosNorbert
347431d1df
index to slice of indicies 2023-11-13 15:48:05 +01:00
Folkert
ec0eddb8b2
fix bug in use of alignment in free for tag unions 2023-10-23 13:50:34 -07: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
Brendan Hansknecht
2e2e609547
update zig to 0.11 and update build script
Also update memcpy to avoid recursive memcpy due to optimizations.
2023-10-23 13:50:30 -07:00
Richard Feldman
c5ec8aba4f
Fix to_cc_type a bit 2023-10-17 06:40:16 -04:00
Folkert
94ca207772
formatting 2023-10-07 19:11:37 +02:00
Folkert
6ab54c02e2
drop into_iter in some places 2023-10-07 19:11:36 +02:00
Folkert
7fb4b60b21
move around hostexposedalias logic 2023-08-09 15:09:03 +02:00
Folkert
cdd2aab217
add alloca as an expression 2023-07-30 18:46:00 +02:00
Folkert
ce640fe65f
unwrap lambda sets for RC 2023-07-28 17:21:30 +02:00
Folkert
334253f47f
check inside a lambda set for whether it is reference counted 2023-07-26 20:06:37 +02: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
3a3ee4dedf
Elide lifetimes 2023-07-12 16:10:59 -05:00
Ayaz Hafiz
a8d821bf87
Remove all box references 2023-07-12 15:50:00 -05:00
Ayaz Hafiz
6ba6b04a17
Pass function pointer directly rather than load/store into alloca 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
1cd9deffe2
Sorry checker 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
f37cc48e88
Build erased load in llvm 2023-07-12 14:45:02 -05:00
Ayaz Hafiz
e1c88c6101
Build erased types 2023-07-12 14:45:01 -05:00
Ayaz Hafiz
b8c1436a75
Pass less arguments around 2023-07-12 14:45:00 -05:00
Ayaz Hafiz
13d1232f7d
Erased functions do not take a func spec 2023-07-12 14:44:17 -05:00
Ayaz Hafiz
7c8e7bbea3
pub crate 2023-07-12 14:43:40 -05:00
Ayaz Hafiz
74d0f8d2e5
llvm types for erasure, function pointer 2023-07-12 14:43:40 -05:00
Ayaz Hafiz
283b9d53d6
Add Expr::ErasedLoad 2023-07-12 14:42:46 -05:00
Ayaz Hafiz
2c838aa5c2
Add mono Expr::ErasedMake 2023-07-12 14:40:16 -05:00