Laytan Laats
9647cb74ad
debug info fixes/refactor
...
This fixes (on my end) #3340 , #3117 , #2945 , #2922 , and #2762
A general refactor of debug info generation in order to fix issues and
increase stability.
What I believe is the root cause of a bunch of issues is that we use the
temporary metadata/forward declarations too much (/ hold onto them for
too long). It seems to cause problems with the reference counting inside
LLVM.
This PR reduces the use of these forward declarations to a minimum, it
creates it, fills in the fields, and resolves it, instead of waiting
until the end of generating code.
Some smaller issues I came across have also been solved.
2024-04-01 16:28:44 +02:00
gingerBill
9271372fef
Fix #field_align issues, by simplifying the LLVM struct type generation
2024-03-30 13:06:51 +00:00
gingerBill
6cb74b63ec
Fix #3286
2024-03-18 12:39:34 +00:00
gingerBill
c7c6852057
Support swizzle selector syntax .xyzw for #simd vectors
2024-03-12 12:11:48 +00:00
gingerBill
5a84a08225
Add general support for bit_fields
2024-02-22 17:24:42 +00:00
gingerBill
a4b8c1ea17
Begin work adding bit_field
2024-02-22 15:55:54 +00:00
gingerBill
f4782157d3
Implement instrumentation pass
2024-01-07 21:34:44 +00:00
Platin21
37c2e9bec3
Fixed Typo / Added check for 1
2024-01-02 21:14:17 +01:00
Platin21
da977cf1e6
Adds new flag for linker to know if it should link the system library or not
2024-01-02 20:55:15 +01:00
gingerBill
3102abf1aa
mem zero rather than store to a union where the variant is of size zero
2023-11-24 10:57:18 +00:00
gingerBill
d589914956
Ignore store undef calls
2023-10-29 20:43:02 +00:00
gingerBill
082324d7b9
Begin work on making the type info table be constantly initialized
2023-09-22 14:39:51 +01:00
gingerBill
e748d2f2af
Update to LLVM-17
2023-09-19 16:15:26 +01:00
gingerBill
c91898a888
Remove #relative slices; Replace with #relative multi-pointers
2023-08-05 16:05:39 +01:00
gingerBill
b495a302b0
Merge branch 'master' into tilde
2023-08-03 13:14:09 +01:00
gingerBill
65206fe33e
Go through loads of TODOs
2023-08-01 11:39:04 +01:00
gingerBill
b09cdc0f25
Hook up Tilde to the linker code
2023-07-24 12:01:23 +01:00
gingerBill
3072479c3c
Generalize name mangling rule to have a singular definition for a name separator
2023-07-07 23:52:56 +01:00
gingerBill
62031c24a2
Add extra mutex guards around module value access
2023-07-07 23:35:16 +01:00
gingerBill
1ff6212ffa
Always call lb_run_remove_dead_instruction_pass to fix -debug issues
2023-07-07 22:28:31 +01:00
gingerBill
8b8310711e
Fix #2594 zero sized union code generation
2023-06-26 17:36:27 +01:00
gingerBill
581eebb197
Fix a race condition when produced anonymous procedure literals with -use-separate-modules
2023-06-13 13:14:59 +01:00
gingerBill
2022a7615a
Make all id suffixes use atomics where possible
2023-06-12 14:10:18 +01:00
gingerBill
f622a8393c
Change ABI for wasm64p32 on slices and structs
2023-06-07 00:30:14 +01:00
gingerBill
2bc5e0ebd7
Fix non-constant compound literals of slices
2023-06-07 00:10:39 +01:00
gingerBill
4a75a1e839
Merge branch 'master' into separate-int-word-sizes
2023-06-06 22:42:04 +01:00
gingerBill
8bf32ac697
Minor change to handling of propagation of errors with --- as a value
2023-05-22 12:53:29 +01:00
gingerBill
685f7d0fea
Rename word_size to ptr_size internally to make it clearer
2023-04-20 12:18:13 +01:00
gingerBill
cde442fa2c
Add internal padding to types where ptr size != int size
2023-04-20 11:55:18 +01:00
gingerBill
843eaf8893
Fix race condition with -use-separate-modules due to type determination
2023-04-18 17:20:50 +01:00
gingerBill
8dc70f797c
Increase use of temporary_allocator() where possible
2023-03-16 15:16:17 +00:00
gingerBill
0602a16ad6
Reserve memory for procedures when generating the LLVM IR
2023-03-16 12:44:03 +00:00
gingerBill
99460c9e32
Minimize stack wastage with compound literals defining variables
2023-02-17 14:26:22 +00:00
Phil Homan
c6c4ad6188
fix #by_ptr argument overrides for Linux
2023-02-15 16:51:00 -08:00
gingerBill
48685e8bf1
Remove set volatile for store
2023-02-14 23:52:36 +00:00
gingerBill
0f697a0f26
Move in_multi_assignment check tighter
2023-02-14 23:52:23 +00:00
gingerBill
ccf4b48865
Add extra checks for multiple assignments when emitting stores
2023-01-27 11:47:00 +00:00
gingerBill
0d059aa797
Replace BlockingMutex with RwMutex
2023-01-16 18:08:28 +00:00
gingerBill
65c0255e7e
Replace RecursiveMutex with a BlockingMutex
2023-01-16 18:05:58 +00:00
gingerBill
b289a27c4e
Move the mutex up a little
2023-01-16 17:04:37 +00:00
gingerBill
e488cf4601
Enforce atomic on hasher id
2023-01-16 15:09:29 +00:00
gingerBill
1ab90de493
Minimize StringMap structure usage
2023-01-14 12:33:42 +00:00
gingerBill
1064bcd060
Clean up use of StringMap
2023-01-13 12:13:26 +00:00
gingerBill
1e21125527
Split out object generation more
2023-01-12 21:49:53 +00:00
gingerBill
4a8c37dd52
Prepare for arbitrary separate modules
2023-01-12 21:45:02 +00:00
gingerBill
3b22c6620c
Begin to generalize modules away from AstPackage * in -use-separate-modules
2023-01-12 17:13:25 +00:00
gingerBill
402a165b60
Correct missing procedures in other build modules which cause a linkage problem
2023-01-12 16:59:16 +00:00
gingerBill
8ef406324b
Multi thread more of the backend where possible
2023-01-05 17:26:51 +00:00
gingerBill
213a0499a1
Begin multithreading the llvm backend when -use-separate-modules is enabled
2023-01-05 12:29:16 +00:00
gingerBill
252be0fb41
Make all maps use heap allocator implicitly
2023-01-03 11:59:52 +00:00