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
gingerBill
d6cb105d5f
Fix LLVM type cycle nonsense with procedure types
2022-11-23 23:32:34 +00:00
gingerBill
7ab591667a
Basic support for new ABI experiment on Win64
2022-11-23 16:25:09 +00:00
gingerBill
cb183e968a
Fix #2202
2022-11-21 10:30:59 +00:00
gingerBill
25bec19b1f
Revert "Minor improvement to multi return value reducing stack usage"
2022-11-13 23:56:05 +00:00
gingerBill
a705a2e38b
Minor improvement to multi return value reducing stack usage
2022-11-13 22:55:32 +00:00
gingerBill
16fc961010
Begin work on map static set
2022-11-11 14:45:22 +00:00
gingerBill
1bcec3f769
Change map internal calls to use a pointer
2022-11-09 22:21:36 +00:00
gingerBill
a71daee545
Allow for -use-static-map-calls which generates a get procedure per map; add runtime.map_get
2022-11-08 14:58:05 +00:00
gingerBill
046dd55032
Change __dynamic_map_get signature
2022-11-08 13:02:32 +00:00
gingerBill
ed58374964
Make Map_Info store pointers to cell info rather than inline
2022-11-08 12:18:36 +00:00
gingerBill
810a1eee41
Remove the need for type->Map.internal_type and replace with the definition of runtime.Raw_Map
2022-11-08 11:13:46 +00:00
gingerBill
c96e0afbf1
Begin work on implementing the new map internals
2022-11-07 23:02:21 +00:00
gingerBill
4812601e78
Fix #2167 context.assertion_failure_proc = nil (context field assignments)
2022-11-01 12:56:17 +00:00
gingerBill
8fa571c283
Use direct parameter value in lb_find_ident when possible
2022-10-30 22:58:44 +00:00
gingerBill
0fe006157e
Remove extra pointer indirection
2022-09-27 00:18:19 +01:00
gingerBill
4d208dc092
Override lbArgKind to be indirect for #by_ptr parameters
2022-09-27 00:10:05 +01:00
gingerBill
0dce7769f4
Clean up private internal constant global handling
2022-09-22 00:18:03 +01:00
gingerBill
ff97a73152
Reduce unnecessary map gets
2022-09-21 13:03:13 +01:00
gingerBill
7840c1b89f
Change __dynamic_map_get and __dynamic_map_set to use separate parameters rather than take a singular struct
2022-09-17 12:48:12 +01:00
gingerBill
a3c04db828
Revert "Just get the value directly and store it in another global variable"
...
This reverts commit 190c3ab0cd .
2022-09-14 17:57:12 +01:00
gingerBill
190c3ab0cd
Just get the value directly and store it in another global variable
...
// global
x := &Foo{}
2022-09-14 17:50:31 +01:00
gingerBill
0c9aaed9f7
Fix #2029 Eumerated array of procs literal crashes the compiler with an llvm error
2022-09-07 11:09:22 +01:00
gingerBill
aeacf3a9d8
Correct max alignment handling throughout the llvm backend
2022-08-24 13:07:41 +01:00