gingerBill
6959554040
Calculate size and alignment, and reuse memory for all variadic calls within a procedure body
2024-07-14 13:44:47 +01:00
gingerBill
5027c7081e
Reuse slice variable for variadic parameters
2024-07-14 12:50:33 +01:00
gingerBill
3dff83f3dc
Mock out #no_capture for future use
2024-07-14 12:39:30 +01:00
gingerBill
8642d719f0
Imply #no_capture to all variadic parameters
2024-07-14 12:19:47 +01:00
gingerBill
edc793d7c1
Add #no_capture args: ..T to reuse the backing array stack memory
2024-07-14 11:39:05 +01:00
gingerBill
34c6868e78
Merge pull request #3895 from laytan/fix-optimization-mode-attribute
...
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-10 13:22:57 +01:00
Laytan Laats
1a20b78633
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-08 21:06:57 +02:00
gingerBill
2c9ef6907a
Clean up timings messages showing used module count
2024-07-08 15:30:33 +01:00
gingerBill
0b02c67cdf
Minor clean up for backend
2024-06-11 12:19:52 +01:00
Laytan Laats
9d1db48549
remove is_packed bodge
2024-05-07 17:25:17 +02:00
Laytan Laats
77efdcd899
fix packed gep loads with wrong alignment
2024-05-07 16:52:46 +02:00
Laytan Laats
ecddf3b7f1
llvm-18: cleanup
2024-05-07 16:52:46 +02:00
gingerBill
de5ce90fa7
Add metadata to packed structs field accesses to state it is packed
2024-05-07 15:28:09 +01:00
gingerBill
c330e5b5c1
Improve codegen for bit_field compound literals with an integer backing
2024-04-24 14:46:34 +01:00
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
effc71ca43
Fix case: bug with by-ref unions
2024-03-18 12:20:53 +00:00
gingerBill
5107bdc06b
Make lb_type_info use a procedure to load the global value
2024-02-27 15:45:53 +00:00
gingerBill
826cf1508b
Remove __$startup_type_info procedure
2024-02-27 15:09:33 +00:00
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