Yawning Angel
62d78d61fa
src: Allow clang-style +/- for target features
...
This largely works as expected, except that as far as I can tell,
without explicit annotations added to the caller, (or a
`#force_inline`), the LLVM `target-features` function attribute
gets ignored by the inliner under the rationale of `-sse,-avx,-avx2`
is a subset of `+sse,+avx,+avx2`.
With `#force_no_inline` the correct code does get generated, but in
the regression I am trying to fix, the caller gratuitously also uses
SIMD, leading to horrific performance.
2026-03-19 19:25:23 +09:00
gingerBill
85c05b238e
Handle bit fields separately
2026-03-17 13:50:49 +00:00
gingerBill
d28e19c957
Minor improve to check if the entity was already there
2026-03-17 13:47:02 +00:00
gingerBill
153a522228
Use normal i64 arithmetic instead of big-ints for hot path
2026-03-17 13:34:06 +00:00
gingerBill
46936e0e52
General improvements
2026-03-17 12:55:25 +00:00
gingerBill
e18b15e8f0
Move error-only things to the error scopes
2026-03-17 12:16:44 +00:00
gingerBill
9ad3a23f27
More improvements to performance; AtomicFreelist abstraction
2026-03-17 12:10:49 +00:00
gingerBill
b19e89578f
Improve check_struct_fields performance; use CheckerTypePath free list
2026-03-17 11:42:03 +00:00
gingerBill
04cb889aed
Begin interning ScopeMap strings
2026-03-17 11:04:32 +00:00
gingerBill
d5a78a9cf1
Remove canonical hash shortcut
2026-03-17 09:43:16 +00:00
gingerBill
239b86c566
Fix typos
2026-03-17 09:20:14 +00:00
gingerBill
a8c6ea7c8a
Implement a new StringInterner
2026-03-17 09:18:39 +00:00
gingerBill
f7ede8632f
Minor changes
2026-03-17 08:10:13 +00:00
gingerBill
cb7a87773b
Split keys and slots and allocate them both together
2026-03-16 18:04:25 +00:00
gingerBill
36d5a19115
Replace Scope.elements to use a custom hash map ScopeMap
...
This hash map is robin hood based with a inline slot amount for small scopes
2026-03-16 17:41:58 +00:00
gingerBill
1744f57d01
Use permanent_alloc_item directly rather than through the gb_alloc_item generic interface
2026-03-16 16:03:27 +00:00
gingerBill
3dc68c2e08
In PtrSet permanent_allocator instead of heap_allocator
2026-03-16 15:50:13 +00:00
gingerBill
ef36a18323
Enable some RVO by default
2026-03-16 14:52:07 +00:00
gingerBill
fc41e44140
Improve bounds checking to minimize its need
2026-03-16 14:29:44 +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
93852df29e
Support #unroll(N) for for FCD arrays
2026-03-16 12:28:18 +00:00
gingerBill
e87564b205
Support for in for FCD arrays
2026-03-16 12:21:41 +00:00
gingerBill
5fa274cb6a
-internal-rvo
2026-03-15 22:10:03 +00:00
gingerBill
b3b31cdba7
-internal-llvm-mem2reg
2026-03-15 22:04:27 +00:00
gingerBill
5d165f70e1
Add loads of RVO optimizations for basic 1-value return cases
2026-03-15 21:53:38 +00:00
gingerBill
fa6109ca1e
Properly dispose of LLVMTargetDataRef
2026-03-15 21:35:26 +00:00
gingerBill
38d7f45e64
Fix race condition with code_gen_module
2026-03-15 21:35:02 +00:00
gingerBill
2de214418c
Fix LTO with debug info by passing -g
2026-03-15 21:29:54 +00:00
gingerBill
dc72e8210f
Support proc(q: $Q) -> type_of(Q{}.data[0]) in return types
2026-03-15 21:28:58 +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
55b3ea7c2d
Allow @(deprecated=<string>) on types
2026-03-15 18:58:48 +00:00
gingerBill
6fc80d9562
Correct write_type_to_canonical_string for "untyped" types
2026-03-15 18:33:20 +00:00
gingerBill
4b95e8a040
Add generic count of arrays to to doc-format
2026-03-15 18:18:02 +00:00
gingerBill
c4ae436ba6
Add This is a compiler error. Please report this. to all assertions.
2026-03-15 17:39:37 +00:00
gingerBill
70dd93db8f
Correct case nil: handling for unions
2026-03-15 17:24:38 +00:00
gingerBill
c51391f8cb
Fix #5129
2026-03-15 17:15:16 +00:00
gingerBill
0314c91a64
Add error message for foo := Foo{&foo} where the type of foo is not determined yet
2026-03-15 16:16:46 +00:00
gingerBill
c23d2793df
Fix lb_convert_struct_index for FCD arrays
2026-03-15 15:45:29 +00:00
gingerBill
a0685f0511
Add intrinsics.likely and intrinsics.unlikely
2026-03-15 15:39:52 +00:00
gingerBill
2f8da5ec67
Add fixed capacity dynamic array to the doc-format
2026-03-15 11:55:04 +00:00
gingerBill
c6772dfd06
Merge branch 'master' into bill/fixed-capacity-dynamic-array
2026-03-15 11:41:01 +00:00
gingerBill
117e3a7b5a
Merge branch 'master' of https://github.com/odin-lang/Odin
2026-03-15 10:34:01 +00:00
gingerBill
ca73cd395f
Fix #6412
2026-03-15 10:33:52 +00:00