Commit Graph

109 Commits

Author SHA1 Message Date
gingerBill
e511f07d76 Short circuit for Union{} 2025-09-29 10:45:24 +01:00
gingerBill
10ba956d6a Rudimentary support for some constant struct #raw_union 2025-09-29 10:28:16 +01:00
gingerBill
1f2cedcf78 Remove debug code 2025-09-29 09:53:04 +01:00
gingerBill
4f442c6045 Rearrange const union initialization so that it is priority 2025-09-29 09:51:23 +01:00
gingerBill
dd15a5bc8e Do not need an extra local copy for the slices 2025-09-28 23:32:37 +01:00
gingerBill
6db8943efa Check for empty compound literal early for constants 2025-09-28 23:25:27 +01:00
gingerBill
5b88d2363d Correct failure check for const cast 2025-09-28 23:19:43 +01:00
gingerBill
cbab97fbd7 Use memcpy for local constant slice arrays from a global constant 2025-09-28 22:50:36 +01:00
gingerBill
1df9f1d01d Fix constant union{proc()} 2025-09-28 22:02:25 +01:00
gingerBill
35a32d41e0 Fix Union{} 2025-09-28 21:08:47 +01:00
gingerBill
17204bd1c2 Global const unions with @(rodata) 2025-09-28 20:40:26 +01:00
gingerBill
ffdfbfe2c2 Begin to support constant array of unions 2025-09-28 20:20:26 +01:00
gingerBill
a974c51d57 First step towards constant unions 2025-09-28 19:52:52 +01:00
gingerBill
0233dc5d31 Remove stray 0 2025-09-27 14:15:51 +01:00
gingerBill
ed2b79a63e Completely comment out lb_construct_const_union 2025-09-26 09:35:51 +01:00
gingerBill
a6d5ec2de8 Early short circuit lb_construct_const_union 2025-09-26 09:31:10 +01:00
gingerBill
0ae86dbe87 Ignore further 2025-09-25 12:10:18 +01:00
gingerBill
1a191b99ac Disable some of lb_construct_const_union for the time being. 2025-09-25 12:05:27 +01:00
gingerBill
5d3092bf2d Again, better const union stuff 2025-09-24 14:27:44 +01:00
gingerBill
43e0d6966e More improves for const union stuff! 2025-09-24 14:07:09 +01:00
gingerBill
ad85ec765b More const union improvements 2025-09-24 10:29:32 +01:00
gingerBill
bad495519b Improve const union attemps 2025-09-24 10:08:25 +01:00
gingerBill
31f0aaa62f Try to improve const union LLVM construction 2025-09-24 09:55:22 +01:00
gingerBill
6338e0a8a3 Allow unions with one variant to be constant 2025-09-19 11:56:44 +01:00
gingerBill
dca9bf0b0c Fix string16 literal length set in LLVM 2025-08-02 13:11:34 +01:00
gingerBill
620bf162a0 Cache const string16 in LLVM 2025-08-02 12:32:18 +01:00
gingerBill
ae02d3d02d Begin supporting string16 across the core library 2025-08-02 11:55:16 +01:00
Hayden Gray
f72b2b1530 [source-code-locations] - added options to show, obfuscate, and hide source code locations (#5412) 2025-06-26 22:43:44 +02:00
Feoramund
36b41ce163 Let compound literal array be broadcast to a struct field of arrays
Fixes #4364

Patch courtesy of @cribalik
2025-06-05 07:48:10 -04:00
gingerBill
6804f4c471 Add support for #soa[N]T compound literals 2025-06-04 13:56:46 +01:00
bogwi
ee8aeea381 CHECK 1 done
Fix panic in LLVM backend when using generic procedure with default arguments

- Fixed panic in `llvm_backend_proc.cpp` when using unspecialized polymorphic procedures as defaults.
- Ensured correct type inference when generic procedures are used as default parameters.
2025-05-05 16:50:40 +09:00
gingerBill
fe040d1bbd Propagate @(link_section=<string>) to nested declarations 2025-04-08 11:36:53 +01:00
Jeroen van Rijn
10bde20850 Fix #4980
Add nullptr check.
2025-04-02 14:21:52 +02:00
gingerBill
5e89e5ad8b Use store 2025-03-24 13:40:24 +00:00
gingerBill
fe6117fc63 Use store over memcpy 2025-03-24 13:14:54 +00:00
gingerBill
56e0ab7655 Fix #4952 2025-03-24 13:11:41 +00:00
gingerBill
400348c925 Improve global array index to be on a per module basis 2025-02-25 15:06:13 +00:00
gingerBill
68731b2b50 Canonicalize global source code locations 2025-02-24 14:36:19 +00:00
Laytan Laats
3b22c0854c fix some LLVM assertions 2024-09-11 22:45:16 +02:00
gingerBill
b0fe777ede Propagate rodata a bit more in lb_const_value 2024-07-23 03:01:09 +01:00
gingerBill
bc5b41938e Fix #3964 2024-07-23 02:40:51 +01:00
gingerBill
1e37eaf54d Begin work for bit_set[...; [N]T] (not working) 2024-07-15 14:49:20 +01:00
gingerBill
399c3ab067 Reduce the size of runtime.Type_Info 2024-07-14 21:37:35 +01:00
Laytan Laats
1bd9fe04c4 Fix assertion false positive
Assertion was added in #3855 - 7233149096
to mimic LLVM's own internal assertion for this, turns out their
assertion is more sophisticated than an `==` so lets just remove it.

To be clear their internal assertion is not hit while this one is, which
defeats the purpose of ours.
2024-07-04 23:55:21 +02:00
Laytan Laats
7233149096 fix llvm assertion failure when const initializer is not the same type 2024-07-02 01:25:52 +02:00
gingerBill
330d6117e3 Fix #3589 2024-05-16 15:43:08 +01:00
gingerBill
ec45504631 Obfuscate #line 2024-04-08 16:14:47 +01:00
gingerBill
810cf22e5d Obfuscate #file and #procedure when -obfuscate-source-code-locations is enabled 2024-04-08 16:08:35 +01:00
rick-masters
e1b545860f Implement endian conversions for smaller float types. 2024-03-29 11:05:27 +00:00
gingerBill
a750fc0ba6 Add #row_major matrix[R, C]T
As well as `#column_major matrix[R, C]T` as an alias for just `matrix[R, C]T`.
This is because some libraries require a row_major internal layout but still want to be used with row or major oriented vectors.
2024-03-19 21:05:23 +00:00