Commit Graph

310 Commits

Author SHA1 Message Date
gingerBill 26b3a4d182 Handle concatenation at the end 2025-10-10 12:09:41 +01:00
gingerBill 1387c3d311 Remove unneeded type expression 2025-10-10 12:04:22 +01:00
gingerBill 24bc044d78 Support fixed-length arrays for intrinsics.concatenate 2025-10-10 12:00:44 +01:00
gingerBill 5e12532eba Add basic type inference to the arguments 2025-10-10 11:50:02 +01:00
gingerBill 061b14e164 Allow intrinsics.concatenate to be variadic 2025-10-10 11:48:18 +01:00
gingerBill 1572ed57b6 Add intrinsics.concatenate 2025-10-10 11:40:36 +01:00
gingerBill adc44312bf const string -> constant string 2025-10-09 10:36:50 +01:00
gingerBill a60058259d Allow intrinsics.type_union_tag_offset with maybe-like unions 2025-10-09 10:25:48 +01:00
gingerBill 41c523faa5 Add intrinsics.type_is_raw_union 2025-10-09 10:10:49 +01:00
gingerBill e001e402c2 Add intrinsics.type_is_cstring and intrinsics.type_is_cstring16 2025-10-09 09:55:14 +01: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 21b1173076 Minor clean up of permanent/temporary arena usage 2025-09-10 18:20:20 +01:00
gingerBill a0e9a98d61 Merge pull request #5547 from harold-b/hb.objc_block_intrinsic
Implements the Apple block ABI.2010.3.16 natively via `objc_block` intrinsic
2025-08-07 16:08:38 +01:00
gingerBill 3de300d2f9 Fix typo 2025-08-07 12:38:15 +01:00
gingerBill 34b4b84b64 Add intrinsics.type_canonical_name 2025-08-07 12:34:41 +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 eae43f1225 Merge branch 'master' into bill/utf16-strings 2025-08-05 15:07:06 +01:00
gingerBill c910b5e583 Add intrinsics.type_is_nearly_simple_compare 2025-08-04 12:13:30 +01:00
gingerBill 620bf162a0 Cache const string16 in LLVM 2025-08-02 12:32:18 +01: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
Colin Davidson 4d9fdf5bd3 move to checker error, rather than panic 2025-07-29 13:09:05 -07:00
Colin Davidson 9a2e6fff48 switch to read_cycle_counter_frequency from arm64_read_cycle_counter_freq, trap on invalid arch 2025-07-29 12:21:46 -07:00
Colin Davidson 1848e0df05 use the correct frequency for the arm tsc timer 2025-07-28 15:10:42 -07:00
gingerBill 19a075211f Merge pull request #5442 from jon-lipstate/table_lookup
table lookup simd intrinsic
2025-07-22 11:14:54 +01:00
Jon Lipstate 6c81df82a6 cleanup langauge / errors about table vs swizzle 2025-07-16 23:43:41 -07:00
Jon Lipstate 3e5de5f705 add did you mean for card/len 2025-07-16 23:23:11 -07:00
Jon Lipstate ecd41b155d rename table_lookup to runtime_swizzle 2025-07-16 21:54:24 -07:00
FourteenBrush 980370a24b Add union kind assertion to enum_constant_entity_cmp 2025-07-11 21:23:21 +02:00
FourteenBrush 2dd0b75289 Fix BigInt leaking 2025-07-11 21:07:28 +02:00
FourteenBrush 64bb0d1c7d Allocate temp array instead of sorting in place 2025-07-11 19:38:01 +02:00
FourteenBrush 8cbf75c928 Add type_enum_is_contiguous intrinsic 2025-07-11 17:03:49 +02:00
Jon Lipstate 019084a17f table lookup intrinsic 2025-07-05 13:55:14 -07:00
Jeroen van Rijn 29d9a12491 Add check_all scripts 2025-06-16 22:26:24 +02:00
iarkn 3152be01b9 Add intrinsics.type_is_bit_field proc 2025-06-06 16:01:13 +02:00
Jeroen van Rijn 82dfb43663 Fix #5265 2025-06-03 11:18:11 +02:00
Feoramund 7996f89410 Show quaternion arguments in wxyz order, instead of xyzw, in mismatched type error
This is in accordance with the other error and makes sense with how
quaternions are printed with `real`/`w` coming first, then the
imaginaries, which are the `ijk`/`xyz` parts.
2025-06-01 14:36:38 -04:00
Feoramund b70d2b156a Make quaternion untyped values convert to first typed value found
This fixes an issue (#2079) where a typed argument could cause the
construction to fail on the basis of failed untyped -> typed conversion.
2025-06-01 14:35:53 -04:00
Feoramund 705ae3f343 Fix quaternion construction causing compiler crash
Previously, a construction of `quaternion(real=0, real=1, real=2,
real=3)` could crash the compiler.
2025-06-01 13:35:22 -04:00
0xrsp 649cad2f1b add: type_integer_to_* error messages 2025-05-15 01:12:06 +09:30
0xrsp ea806f1d5e new compiler intrinsics type_integer_to_unsigned,type_integer_to_signed 2025-05-15 01:00:40 +09:30
gingerBill d2d5c40e76 Handle "untyped" case 2025-05-12 16:49:59 +01:00
gingerBill d2d4ac8120 Add compress_values 2025-05-12 15:29:43 +01:00
gingerBill 92df892f25 Merge pull request #5064 from harold-b/hb/objc-classes
Add support for Objective-C class implementation
2025-05-08 12:58:33 +01:00
Barinzaya dd5b7852ce Added alternate reduce-add/reduce-mul intrinsics.
The new reduce_add/reduce_mul procs perform the corresponding arithmetic
reduction in different orders than sequential order. These alternative
orders can often offer better SIMD hardware utilization.

Two different orders are added: pair-wise (operating on pairs of
adjacent elements) or bisection-wise (operating element-wise on the
first and last N/2 elements of the vector).
2025-05-05 16:38:45 -04:00
Jeroen van Rijn 2224911aca Fix type_union_tag_offset when all members are zero sized 2025-05-05 18:09:54 +02:00
gingerBill 36945079f8 Add intrinsics.simd_indices 2025-05-05 11:41:54 +01:00
Harold Brenes a00b91577d Prevent multiple uses of the same Objective-C class name 2025-05-03 03:09:30 -04:00
Harold Brenes 5f0b47c373 Implement all checker specification for Objective-C class implementations and objc_ivar_get intrinsic 2025-05-03 00:59:33 -04:00