Commit Graph

136 Commits

Author SHA1 Message Date
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
gingerBill
600f2b7284 Use heap_allocator for all hash set types 2023-01-03 11:53:59 +00:00
gingerBill
fa562ec5d6 Remove unneeded local_entity_map 2023-01-02 15:40:25 +00:00
gingerBill
529383f5b1 Correct a race condition when checking the procedure body 2023-01-02 15:30:04 +00:00
gingerBill
5c519f0e8d Remove the synchronization primitive init/destroy calls 2023-01-01 16:19:21 +00:00
gingerBill
c1f5be24e2 Remove dead code in the compiler 2022-12-18 22:49:10 +00:00
gingerBill
6cdec65ca1 gb_internal LLVM backend 2022-12-18 22:32:05 +00:00
gingerBill
34a048f7da Replace compiler for loops for the hash-table types to simplify code usage 2022-12-09 11:29:28 +00:00
gingerBill
d88b052d2d Naïve optimization of named _split_ multiple return valued when defer is never used
This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables
are not allocated to represent the named return values by using that specific memory.

In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not,
or is ever passed to a nested procedure call (e.g. possibly escapes).
2022-11-25 23:57:55 +00:00
gingerBill
ae81117f70 Merge branch 'master' into multiple-return-abi-experiment 2022-11-23 23:43:00 +00:00