Commit Graph
175 Commits
Author SHA1 Message Date
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
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
gingerBill 53f4fc1cbb Add -para-poly-diagnostics 2025-09-29 14:03:32 +01:00
Harold Brenes 9d8e15b3af Implementes the block ABI.2010.3.16 natively via the objc_block intrinsic and the Objc_Block builtin type.
See: https://clang.llvm.org/docs/Block-ABI-Apple.html
2025-08-06 20:27:31 -04:00
gingerBill bb4bc316a4 for in string16; Support string16 across core 2025-08-02 12:20:35 +01:00
gingerBill ae02d3d02d Begin supporting string16 across the core library 2025-08-02 11:55:16 +01:00
gingerBill 2561427dd3 Add string16 and cstring16 (UTF-16 based strings) 2025-08-02 11:00:15 +01:00
Harold Brenes 1505edef01 Change ivar offsets from u32 to (odin base type) int/native pointer size. 2025-04-30 22:09:33 -04:00
Harold Brenes f3923ed666 Fix indentations
Fix Objective-C wrapper procs not forwarding return value
2025-04-27 22:55:53 -04:00
Harold Brenes bca02f81cd Include the ivar in the Objective-C class unconditionally of it being used or not.
Allow pseudo-fields for ivar access.
2025-04-22 19:18:53 -04:00
Harold Brenes b3b4d501ca Fix ivar in multi-module mode. 2025-04-21 02:43:16 -04:00