Commit Graph

87 Commits

Author SHA1 Message Date
Laytan
722b638e2c "fix" #4169, looks like llvm 14 bug 2024-08-31 19:40:05 +02:00
gingerBill
476030dd28 Fix #4156 2024-08-31 13:51:35 +01:00
gingerBill
2a0785037b Fix switch val in ptr 2024-08-19 12:19:45 +01:00
gingerBill
95c3b8a8de Move assert to else branch 2024-08-18 22:45:26 +01:00
Laytan Laats
99aa0d3a35 fix type switching over internal pointer union
Fixes #3947
2024-08-12 00:02:05 +02:00
gingerBill
5cefab8229 Fix case: in type switch issue 2024-07-15 13:22:50 +01:00
gingerBill
d78ff0be52 Fix lb_store_type_case_implicit 2024-07-04 13:20:36 +01:00
gingerBill
bea47db495 Allow @(rodata) on @(static) variables 2024-06-06 15:20:47 +01:00
gingerBill
e05315831f Fix #3586 2024-05-14 00:18:38 +01:00
gingerBill
393e4a9db6 Generalize Odin call-based "iterators" to work with more than 2-values: for x, y, z, w in iterate(&it)
It has an artificial limitation of 100 values because if you need for than that, you're doing something wrong.
2024-04-27 09:53:02 +01:00
gingerBill
b862691d75 Support for in with bit_set 2024-04-01 13:08:07 +01: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
Laytan Laats
1fc256dd90 Fix divergent proc call in defer
Fixes #3216
Fixes #2985
2024-02-21 19:43:34 +01: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
65206fe33e Go through loads of TODOs 2023-08-01 11:39:04 +01:00
gingerBill
62031c24a2 Add extra mutex guards around module value access 2023-07-07 23:35:16 +01:00
gingerBill
ea00619c3b for &e, i in array and for k, &v in map (alternative to passing the iterable by pointer) 2023-06-26 15:20:40 +01:00
gingerBill
4c17e2e97e Merge pull request #2552 from jcmoyer/fix-2466
Use compound literal storage for ValueDecl lvals
2023-06-08 12:34:40 +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
837ba6c33b Minor change to #reverse for logic; add comments explaining it 2023-05-30 00:21:40 +01:00
gingerBill
e0530df98a Support #reverse for strings 2023-05-29 23:45:21 +01:00
gingerBill
f07453d0ae Support #reverse on #soa arrays 2023-05-29 23:24:03 +01:00
gingerBill
97490c6445 Basic support for #reverse for in on normal arrays 2023-05-29 23:17:06 +01:00
J.C. Moyer
4d5a442d1f Use compound literal storage for ValueDecl lvals
Prior to this commit, if a variable was initialized using a compound
literal, its associated storage would not be set. This commit makes the
variable always take on the storage of the compound literal.

Fixes #2466
2023-05-21 16:43:34 -04:00
gingerBill
685f7d0fea Rename word_size to ptr_size internally to make it clearer 2023-04-20 12:18:13 +01:00
gingerBill
bfb231fb8a Simplify copy elision on variable declarations 2023-03-16 17:24:29 +00:00
gingerBill
93f7d3bfb9 Allow case nil within a type switch statement (experimental idea) 2023-03-12 16:33:21 +00:00
gingerBill
c39bd7e089 Fix range loop & vals debug info 2023-03-09 15:57:29 +00:00
gingerBill
3470d986f0 Fix debug symbols for range loops 2023-03-09 15:48:02 +00:00
gingerBill
7c0257fcda Fix value elision on declaration 2023-03-09 15:39:41 +00:00
gingerBill
7d4e9497eb Reduce stack usage of some type switch cases 2023-02-17 16:51:57 +00:00
gingerBill
99460c9e32 Minimize stack wastage with compound literals defining variables 2023-02-17 14:26:22 +00:00
gingerBill
ccf4b48865 Add extra checks for multiple assignments when emitting stores 2023-01-27 11:47:00 +00:00
gingerBill
8f4ffbe1da Fix #2299 by handling very large value cases correctly 2023-01-20 11:23:15 +00:00
gingerBill
213a0499a1 Begin multithreading the llvm backend when -use-separate-modules is enabled 2023-01-05 12:29:16 +00:00
gingerBill
12e42d92d3 Localize GenProcsData to the entity itself 2023-01-04 15:35:24 +00:00
gingerBill
774fea1e63 Use RwMutex for gen_procs 2023-01-03 15:47:25 +00:00
gingerBill
69934c3b0b More for_array(i, y) to for (x : y) translations 2023-01-03 13:04:09 +00:00
gingerBill
8ece92f1f6 Minimize the parapoly mutex usage a bit 2023-01-02 23:21:16 +00:00
gingerBill
c293f5b7eb Remove unneeded mutex 2023-01-02 16:56:05 +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
9b278db993 Revert "Change tav to be a pointer internally"
This reverts commit e98f1a28e6.
2022-12-22 12:01:41 +00:00
gingerBill
e98f1a28e6 Change tav to be a pointer internally 2022-12-22 11:53:13 +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
7352c312e0 Fix type for split returns code 2022-11-24 11:20:28 +00:00
gingerBill
0befadde1d Basic copy elision support for multiple return values 2022-11-24 01:27:39 +00:00