Commit Graph

292 Commits

Author SHA1 Message Date
gingerBill
8ac7819bf5 zero allocation 2026-05-12 10:44:01 +01:00
gingerBill
86a6f69793 General clean up 2026-05-11 14:01:50 +01:00
gingerBill
7d0dba1b82 Improve code generation for intrinsics.transpose 2026-05-11 13:41:30 +01:00
gingerBill
b752ff4bdb Add a minor optimization for row_major * row_major 2026-05-11 13:28:54 +01:00
gingerBill
58e4e6be24 Improve matrix * vector code generation 2026-05-11 13:14:02 +01:00
gingerBill
65ff188c1c Add optimization edge case for square mat * mat 2026-05-11 11:16:27 +01:00
gingerBill
9869c492f5 Fix #6642 2026-05-02 11:26:49 +01:00
Ionut Ciuperca
b043ff2c87 Fix compiler warning on linux.
The resulting compiler binary would also crash with a core dump when
trying to compile odin code with it.
2026-04-30 06:48:37 +01:00
gingerBill
bb291cfcd0 Use a for loop when doing array casts which are too long. 2026-04-28 13:45:57 +01:00
gingerBill
8ea1cbc230 Mock out vectorization of array binary arithmetic (probably not better in practice some of the time) 2026-04-24 18:19:41 +01:00
gingerBill
5c2efb78ac SIMD-ify [N]float -> [N]complex 2026-04-23 18:35:00 +01:00
gingerBill
a44b8b0af0 Support ([N]T)([N]U{...}) 2026-04-23 10:42:53 +01:00
gingerBill
ef275c5c0e Support []int{multiple_returns(), 123} 2026-04-21 17:45:36 +01:00
gingerBill
b1e8ec5e64 Allow for Some_Struct{multiple_return_value(), 123} 2026-04-21 17:17:59 +01:00
k-nrd
2c6c646342 Merge branch 'master' into fix/field-first-writes-into-dynamic-soa 2026-04-09 15:19:11 -03:00
gingerBill
4697c8837c Merge pull request #6479 from cuiweixie/fix/llvm-cstring16-u16-multi-ptr-transmute
Fix u16 multi-pointer to cstring16 transmute condition in lb_emit_conv
2026-03-26 11:16:49 +00:00
Weixie Cui
b16eaea8a8 Fix u16 multi-pointer to cstring16 transmute condition in lb_emit_conv
cstring16 uses UTF-16 code units; accept u16 multi-pointers, not u8.
2026-03-26 17:57:18 +08:00
Weixie Cui
a2f1aafed3 Fix GB_PANIC format string in lb_emit_conv invalid subtype cast
The panic string passed two type names but only had one %s placeholder.
2026-03-26 17:54:17 +08:00
gingerBill
04cb889aed Begin interning ScopeMap strings 2026-03-17 11:04:32 +00:00
gingerBill
0bf2d01a04 Work on improving bounds checking with constant known indices and lb_add_local_generated 2026-03-16 14:06:23 +00:00
gingerBill
eecb67cb89 Implement fused nested slice chain optimizations src[a:b][c:d][e:f]... 2026-03-15 21:17:05 +00:00
gingerBill
6b2853d9f1 Improve matrix * vector code gen 2026-03-15 21:03:31 +00:00
gingerBill
12b06887a3 Remove dead code 2026-03-15 20:36:02 +00:00
gingerBill
f8f96905ae Fix typos 2026-03-15 20:27:14 +00:00
gingerBill
a56c3da149 Support select fast path for or_else 2026-03-15 20:02:48 +00:00
gingerBill
f70bceec84 Add optimization for improving side-effect-free use of a select for ternary if. 2026-03-15 19:58:57 +00:00
gingerBill
bb2e42faa6 More uses of SSA aggregation values 2026-03-15 19:49:26 +00:00
gingerBill
0dbda03890 Simplify slice creation as LLVM values 2026-03-15 19:40:57 +00:00
gingerBill
c51391f8cb Fix #5129 2026-03-15 17:15:16 +00:00
gingerBill
c6772dfd06 Merge branch 'master' into bill/fixed-capacity-dynamic-array 2026-03-15 11:41:01 +00:00
Jeroen van Rijn
27667ce36b iff -> if and only if (⟺) 2026-03-13 11:54:15 +01:00
gingerBill
a6160770ff Support compound literals for fixed capacity dynamic arrays 2026-03-12 10:03:58 +00:00
gingerBill
f1dbe9c242 [dynamic; N]T proof of concept: fixed capacity dynamic array (akin to small_array.Small_Array(N, T)) 2026-03-11 16:46:33 +00:00
bymehul
c9e55d3add fix: handle full-width bit_field literal masks 2026-03-10 23:21:19 +05:30
Gustavo Konrad
f82d41bc9a fix #6344: field-first index writes on #soa[dynamic]T and #soa[]T 2026-02-28 12:33:57 -03:00
gingerBill
c0468446f6 Ignore const nil "optimization" and fix c: Maybe(string); c == "" bug. 2026-02-24 18:52:42 +00:00
gingerBill
63c4faca75 Fix positions for debug locations in defer, loops, and switch clauses 2026-02-02 11:19:00 +00:00
gingerBill
fde90931de Add case for completeness 2026-02-02 11:16:05 +00:00
gingerBill
3586bda6ae Use context.assertion_failure_proc with type assertions when the context is available, otherwise use a trivial trap. 2026-01-26 18:23:29 +00:00
gingerBill
0774b7465f Allow for shortcut to get feature flags from the expression directly assuming it as a file 2026-01-26 15:51:38 +00:00
gingerBill
efdb89afcb Revert dynamic literals feature check 2026-01-26 15:41:15 +00:00
gingerBill
afe4369f6e Add #+feature force-type-assert which overrides -no-type-assert on a per-file basis 2026-01-26 15:37:54 +00:00
miere43
29019d7138 Fix duplicate code emission in type assertions. 2025-12-03 21:27:38 +03:00
gingerBill
0f0c40b96d Fix -integer-division-by-zero modes and document all-bits 2025-12-01 13:11:32 +00:00
Laytan Laats
679d306d0f panic on transpose with result type in diff layout
Partially reverts 4db4841, it should behave the same as cast (which does
an implicit transpose).
2025-11-29 20:06:43 +01:00
laytan
4db4841413 fix matrix transpose with different result type
Fixes #5623
2025-11-29 12:14:06 +01:00
gingerBill
cbab97fbd7 Use memcpy for local constant slice arrays from a global constant 2025-09-28 22:50:36 +01:00
gingerBill
a974c51d57 First step towards constant unions 2025-09-28 19:52:52 +01:00
gingerBill
42b9039a1f Check for nullptr 2025-09-26 09:41:08 +01:00
gingerBill
31f0aaa62f Try to improve const union LLVM construction 2025-09-24 09:55:22 +01:00