gingerBill
5a84a08225
Add general support for bit_fields
2024-02-22 17:24:42 +00:00
Laytan
0e6dd56ac1
fix instrumentation in debug mode
2024-02-08 22:29:45 +01:00
gingerBill
67dcd916e8
Update instrumentation signature to support runtime.Source_Code_Location as last parameter.
2024-01-09 11:01:18 +00:00
gingerBill
f4782157d3
Implement instrumentation pass
2024-01-07 21:34:44 +00:00
gingerBill
c12eb3ec93
Improve returning a struct directly for certain ABIs; reuse the temp callee return struct memory when needed
2023-11-24 11:44:20 +00: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
jcmdln
8fe431e53e
Only check LLVM_VERSION_MAJOR >= 17 for PassBuilder inclusion
2023-10-15 12:03:56 -04:00
jcmdln
bd86cb22e0
Support LLVM >=17.0.1 on Darwin and Linux
2023-10-11 21:06:42 -04:00
gingerBill
648b83d6ea
Add or_break and or_continue constructs
2023-09-30 15:04:17 +01:00
gingerBill
082324d7b9
Begin work on making the type info table be constantly initialized
2023-09-22 14:39:51 +01:00
gingerBill
96fbafe359
Update ABI breaking changes for f16 types (due to LLVM 15+)
2023-09-21 10:38:44 +01:00
gingerBill
e82b0ea4cd
Add -o:aggressive for LLVM 17
2023-09-21 09:48:53 +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
bd81c6f5b4
Move linker code into separate file
2023-07-24 11:53:18 +01:00
gingerBill
7cd2d14b64
Very start of working on Tilde Backend for Odin
2023-07-14 11:58:18 +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
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
4a75a1e839
Merge branch 'master' into separate-int-word-sizes
2023-06-06 22:42:04 +01:00
jason
a9936d1570
implement random map seed
2023-05-16 23:49:55 -04:00
gingerBill
685f7d0fea
Rename word_size to ptr_size internally to make it clearer
2023-04-20 12:18:13 +01:00
gingerBill
843eaf8893
Fix race condition with -use-separate-modules due to type determination
2023-04-18 17:20:50 +01:00
gingerBill
30fa8f8ac2
Add missing enum
2023-04-18 16:08:54 +01:00
gingerBill
bfb231fb8a
Simplify copy elision on variable declarations
2023-03-16 17:24:29 +00:00
gingerBill
7c0257fcda
Fix value elision on declaration
2023-03-09 15:39:41 +00:00
gingerBill
99460c9e32
Minimize stack wastage with compound literals defining variables
2023-02-17 14:26:22 +00:00
gingerBill
94c1331c07
Implement @(fini) (opposite of @(init))
2023-02-15 11:31:51 +00:00
gingerBill
de0a3e0ab9
Minor change to byval for readonly parameters
2023-02-03 15:07:44 +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
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
9b47a5eddb
Fix macro issue
2023-01-11 00:49:04 +00:00
gingerBill
8ef406324b
Multi thread more of the backend where possible
2023-01-05 17:26:51 +00:00
gingerBill
23d0c52bf4
Refactor llvm backend code into separate procedures to make it simpler to profile
2023-01-05 16:42:02 +00:00
gingerBill
5eee8077dd
enum-ifiy function pass managers for lbModule
2023-01-05 15:56:45 +00:00
gingerBill
029cb6581b
Unify function pass managers for auxiliary procedures (e.g. startup type info, runtime, objc names)
2023-01-05 12:54:53 +00:00
gingerBill
213a0499a1
Begin multithreading the llvm backend when -use-separate-modules is enabled
2023-01-05 12:29:16 +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
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
0befadde1d
Basic copy elision support for multiple return values
2022-11-24 01:27:39 +00:00
gingerBill
0a0db23b17
Remove copy elision code
2022-11-22 15:49:27 +00:00
gingerBill
81f83d5780
Fix prototype
2022-11-13 23:51:59 +00:00
gingerBill
16fc961010
Begin work on map static set
2022-11-11 14:45:22 +00:00
gingerBill
8852d090b6
Correct static map get; make get take a pointer to simplify compiler internals
2022-11-10 12:46:53 +00:00