gingerBill
93f71c2751
Merge pull request #7842 from bbodi/fix/llvm-objc-varargs
...
Fix/llvm objc varargs
2026-10-09 10:54:21 +01:00
BB and Claude Opus 5.5
9e594ed3d1
Pass the class name in objc_register_class
...
objc_register_class handed objc_allocateClassPair a nil Class as the
name argument, which the backend cannot convert to cstring, so any use
of the builtin panicked the compiler. The class pair is now allocated
under the requested name, as the checked signature intends.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-08 22:07:09 +02:00
bbodi
bd530ccc0a
Enable evex512 with explicit AVX-512 target features
...
LLVM only adds evex512 by itself for the generic x86 CPUs, so with the
default x86-64-v2 microarch, -target-features:avx512f left 512-bit
vectors split into ymm pairs and C got garbage lanes back from Odin
(and the other way round). Clang adds it whenever an AVX-512 feature is
on and evex512 isn't named, do the same for the global features and for
@(enable_target_feature).
2026-10-08 21:19:25 +02:00
Mihail Moskov
55c6cf3dea
fixes regressions at sites needing true address caused by temp copy
2026-10-06 20:21:05 +03:00
gingerBill
f05c574cae
Merge pull request #7520 from Pippoosh/fix-soa-pointer-using-field
...
Fix #soa pointer field access through using
2026-10-04 19:01:28 +01:00
gingerBill
ddcf115f6f
Implement the same large aggregate improvement for or_else
2026-10-04 10:12:35 +01:00
gingerBill
e5cc35c445
Lower what LLVM's fast instruction selector cannot select before emitting objects, and declare debug variables through stack slots
2026-10-03 11:02:55 +01:00
gingerBill
735b2c7060
Pass a copy of a packed struct's field by reference when it may be under-aligned; lower load and store alignment to that known
2026-10-02 22:49:26 +01:00
gingerBill
63d28377bb
Pass a copy of a value within a packed struct to a procedure by reference when its address is not known to be aligned to its type, and lower the alignment of loads and stores to that known from the GEPs leading to their address
2026-10-02 17:22:15 +01:00
Kriday Kini
4839f20da9
Fix #soa pointer field access through using ( #7513 ).
...
lb_emit_deep_field_gep treated an #soa pointer as a one-shot field grab and never updated the current type, so using paths with extra selection indices ICE'd.
2026-09-06 10:00:30 +05:30
kalsprite
c1aeb47ce5
swizzle target multi-assignment
2026-08-25 22:22:33 -07:00
gingerBill
73bb97ceb4
Merge pull request #7394 from mfbulut/fix/or-else-diverging-single
...
Fix or_else diverging with single return value
2026-08-20 10:30:59 +02:00
kalsprite
a13a4b418d
backend: a union constant in a ternary or builds an ill-typed phi
2026-08-19 16:45:58 -07:00
Mustafa Furkan Bulut
581d20c606
Allow 'or_else' in diverging single-return
2026-08-20 00:57:10 +03:00
FourteenBrush
727b5043e5
Fix switch fallthrough in lb_emit_struct_ev
2026-07-15 14:13:53 +02:00
Jeroen van Rijn
dc0f001b35
Merge pull request #6933 from odin-lang/bill/box3d
...
`vendor:box3d`
2026-07-03 21:35:30 +02:00
gingerBill
448a71f432
Support q.xyz on quaternion*
2026-07-02 12:27:03 +01:00
misomosi
f276d77c0c
Fix misuse of lb_emit_(min|max) in simd_(min|max)
2026-07-01 10:59:03 -04:00
gingerBill
c66de5ee3c
Improve vector to integer transmute LLVM IR
2026-05-19 18:32:05 +01:00
gingerBill
86a6f69793
General clean up
2026-05-11 14:01:50 +01:00
gingerBill
b752ff4bdb
Add a minor optimization for row_major * row_major
2026-05-11 13:28:54 +01:00
gingerBill
65ff188c1c
Add optimization edge case for square mat * mat
2026-05-11 11:16:27 +01:00
gingerBill
46ed5500b1
Fix lb_convert_struct_index for struct #raw_union
2026-04-22 13:18:26 +01:00
gingerBill
6b2853d9f1
Improve matrix * vector code gen
2026-03-15 21:03:31 +00:00
gingerBill
a56c3da149
Support select fast path for or_else
2026-03-15 20:02:48 +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
c23d2793df
Fix lb_convert_struct_index for FCD arrays
2026-03-15 15:45:29 +00: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
gingerBill
bb7496a2fc
Add intrinsics.count_trailing_ones and intrinsics.count_leading_ones
2026-02-02 14:28:16 +00:00
gingerBill
2608f92fee
Use std::atomic for Ast.viral_state_flags and Ast_Ident.entity
2026-02-02 10:48:30 +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
dc6067a8a9
Unify "mem*.inline" logic to only inline for <=8 bytes on all platforms
2026-01-22 13:18:22 +00:00
Harold Brenes
30e2875396
Fix automatic objc_msgSend on static methods not resolving aliased types.
2025-12-20 00:54:57 -05:00
Laytan
c4d1cd6ee5
fixes for 32bit with regards to typeid
2025-11-04 21:37:29 +01:00
jakubtomsu
c21453acc5
comment
2025-10-18 16:18:58 +02:00
jakubtomsu
91750e2f1b
prefer Type pointer over LLVMTypeRef when doing a struct_field_remapping lookup
2025-10-18 16:11:47 +02:00
Laytan
e7ecb16a1e
llvm 21 support
2025-10-14 19:55:00 +02:00
Harold Brenes
e79e53dbbd
Use module-prefixed naming scheme for tracking
...
objc block instead of shared id counter.
2025-10-05 16:14:32 -04:00
Harold Brenes
86f9c920da
Fix Objective-C block symbols naming conflict across modules.
...
Fix assert triggered when there's checker errors and
Objective-C method implementations.
2025-10-05 15:53:42 -04:00
gingerBill
3f7fc1e9bf
Merge pull request #5738 from jakubtomsu/fix-simd-ptr-transmute
...
[LLVM backend] SIMD vector transmute only uses bitcast when the elements aren't pointers
2025-10-05 20:27:23 +01:00
gingerBill
810ca89253
Merge pull request #5727 from harold-b/hb.intrinsics.objc_super
...
Add intrinsics.objc_super and Automatically emit objc_msgSend calls
2025-10-05 20:27:01 +01:00
Jakub Tomsu
588513a510
bitcast only non-pointer-like-element simd vectors, handle others like other aggregate types
2025-10-01 15:54:32 +02:00
Harold Brenes
6d9ace4a2c
Remove outdated todo
2025-09-29 20:38:16 -04:00
Harold Brenes
5af13f5d53
Automatically emit objc_msgSend calls when calling imported or implemented Objective-C methods
...
- Add intrinsics.objc_super()
- Emit objc_msgSendSuper2 calls when an objc method call is combined with objc_super(self)
- Fix objc_block return value ABI for large struct returns
- Fix objc_implement method wrappers bad ABI for large struct returns and indirect args
- Simplify parameter forwarding for objc_imlpement methods
- Add intrinsics.objc_instancetype to mimi Objective-C instancetype* returns
This facilitates returning the correct type on subclasses when calling mehtods
such as `alloc`, `init`, `retain`, etc.
- Refactor Objective-C class implementations generation so that hierarchies are properly initialized
- Better codegen for context passing with ivar-based autocontext
- Allow @superclass on imported objc-c objects
- Better codegen for block forwarding invoker, arguments are forwarded directly
2025-09-29 20:37:48 -04:00
gingerBill
34d040cef1
Correct format strings
2025-09-29 16:51:38 +01:00
gingerBill
9e8be055c1
Rename to -build-diagnostics
2025-09-29 16:16:19 +01:00
gingerBill
11712627cb
Add module stuff to -para-poly-diagnostics
2025-09-29 16:14:55 +01:00
gingerBill
1fc1d8e451
Change sort for single instanced procedures
2025-09-29 14:32:21 +01:00