gingerBill
f3210eccaf
Fix #4866
2025-03-07 09:44:18 +00:00
gingerBill
400348c925
Improve global array index to be on a per module basis
2025-02-25 15:06:13 +00:00
gingerBill
f9d85a7311
Try to make globally generated variables deterministic in name
2025-02-25 14:29:14 +00:00
gingerBill
533f82da24
Fix #4822
2025-02-24 14:11:47 +00:00
Barinzaya
4afedbc051
Added simd_extract_lsbs intrinsic as well.
...
Equivalent to the simd_extract_msbs intrinsic, except it extracts the
least significant bit of each element instead.
2025-02-24 08:49:57 -05:00
Barinzaya
33a3aab791
Added simd_extract_msbs intrinsic.
2025-02-24 08:39:32 -05:00
Laytan Laats
5defddffd0
reorganize tests and handle endian
2025-02-06 21:44:34 +01:00
Laytan Laats
de83ad2a25
apply abs fix to constant system too
2025-02-06 21:19:54 +01:00
Laytan Laats
b1068c7f2e
improve abs() on floats for more correct and faster results
2025-02-05 21:17:48 +01:00
gingerBill
7b334d2bd9
Add #branch_location
2025-01-01 17:26:15 +00:00
Laytan Laats
c8f0d27cee
compiler: remove viral #force(_no)_inline
...
If a procedure was marked `#force_no_inline`, any procedure calls within
it would also implicitly be. This is not expected for multiple reasons:
1. `#force(_no)_inline` on a call expr works differently than on a procedure literal.
2. Adding the attribute on it and every called proc blows up the amount
of work for the inliner pass and may increase the time it takes.
3. Putting `#force_no_inline` on a procedure to keep executable size
down (like we do for some map procedures), benchmark it, or find it in
asm/ir has the added effect of slowing those procedures down significantly
and not representing truth.
2024-12-09 19:12:42 +01:00
gingerBill
b36a81ef53
ABI change: for indirect parameters size_of <= 16, do callee stack copy
2024-12-05 10:49:39 +00:00
Laytan Laats
da1e09c95d
check packed load and set alignment on all loads, not just lb_emit_load
2024-10-25 15:23:15 +02:00
Laytan Laats
603efa860a
add '#caller_expression'
2024-09-14 22:13:37 +02:00
Laytan
ca6ef95b03
add support for linux_riscv64 and freestanding_riscv64
2024-08-20 14:06:40 +02:00
Laytan Laats
e3f375afd8
fix c_vararg bit_set
...
Fixes #4051
2024-08-11 17:00:49 +02:00
Feoramund
e27a424f4d
Swap reduce_any and reduce_all
...
`llvm.vector.reduce.or` will return true if any lane is true.
`llvm.vector.reduce.and` will return true if all lanes are true.
2024-08-06 14:50:34 -04:00
gingerBill
f56abf3780
Add intrinsics.masked_expand_load and intrinsics.masked_compress_store
2024-08-05 14:54:09 +01:00
gingerBill
80ea4e0aeb
Remove dead code
2024-08-05 14:25:33 +01:00
gingerBill
84ac56f778
Add intrinsics.simd_masked_load and intrinsics.simd_masked_store
2024-08-05 14:08:41 +01:00
gingerBill
7e701d1677
Add intrinsics.simd_gather and `intrinsics.simd_scatter
2024-08-05 13:46:24 +01:00
gingerBill
90fc52c2ee
Rename add_sat -> saturating_add
2024-08-05 13:19:01 +01:00
gingerBill
9a01a13914
Add simd_reduce_any and simd_reduce_all
2024-08-05 13:13:19 +01:00
Laytan Laats
47f14dd9ea
type is never a tuple here
2024-07-16 22:11:54 +02:00
Laytan Laats
853487e86c
fix add_sat and sub_sat intrinsics
2024-07-16 22:07:49 +02:00
gingerBill
23ca27f40b
Add intrinsics add_sat and sub_sat
2024-07-16 00:48:17 +01:00
gingerBill
1e37eaf54d
Begin work for bit_set[...; [N]T] (not working)
2024-07-15 14:49:20 +01:00
gingerBill
432388ac7f
Generate backing array in the case where there is no DeclInfo for the procedure body
2024-07-15 02:42:28 +01:00
gingerBill
f657055f12
Add slice variable if not exists
2024-07-14 23:36:54 +01:00
gingerBill
2e0c5fefde
Reuse the slice value too for variadic parameters (LLVM >= 13)
2024-07-14 14:07:36 +01:00
gingerBill
6959554040
Calculate size and alignment, and reuse memory for all variadic calls within a procedure body
2024-07-14 13:44:47 +01:00
gingerBill
5027c7081e
Reuse slice variable for variadic parameters
2024-07-14 12:50:33 +01:00
gingerBill
3533094cc2
Restrict #no_capture to pointer-like types only
2024-07-14 12:44:13 +01:00
gingerBill
5ce6676914
Make #no_capture map to nocapture
2024-07-14 12:41:16 +01:00
gingerBill
3dff83f3dc
Mock out #no_capture for future use
2024-07-14 12:39:30 +01:00
gingerBill
edc793d7c1
Add #no_capture args: ..T to reuse the backing array stack memory
2024-07-14 11:39:05 +01:00
Laytan Laats
1a20b78633
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-08 21:06:57 +02:00
Laytan Laats
b79d7e6917
disallow non-global foreign import of variables on wasm
2024-06-28 01:34:09 +02:00
Feoramund
5b5402fb23
Add intrinsics.syscall_bsd
...
This is a BSD-style syscall that checks for a high Carry Flag as the
error state. If the CF is high, the boolean return value is false, and
if it is low (no errors) then the boolean return value is true.
2024-06-12 13:07:13 -04:00
Laytan Laats
6d862cc4e5
fix unreachable hit when param and/or return have complex inits
...
Fixes #3630
2024-06-09 04:43:19 +02:00
laytan
2a526058b3
fix passing pointer to constant in non-odin cc
2024-06-04 20:15:47 +02:00
gingerBill
8dec4f6ed3
Merge pull request #3570 from jasonKercher/linux-arm32
...
Get the compiler to build and work on arm32 Linux
2024-05-20 00:05:57 +01:00
gingerBill
1207d64c64
Fix intrinsics.ptr_sub
2024-05-19 23:55:45 +01:00
jason
20752d904b
fix 6 argument syscall on i386
2024-05-10 23:06:49 -04:00
jasonkercher
2183140e71
arm32 now compiles and runs demo
2024-05-10 13:24:43 -04:00
Laytan Laats
25f1d0906d
compiler: improve target features support
2024-05-02 00:59:52 +02:00
Laytan Laats
90369b669b
fix direct proc args debug info
2024-04-22 19:36:24 +02:00
Laytan Laats
b150f49c46
fix wasm atomics
...
Fixes #2745
2024-04-06 23:32:38 +02:00
Laytan Laats
a7056f2b4f
fix lbArg_Ignore logic
...
Fixes #2698
2024-04-04 16:58:22 +02:00
Laytan Laats
fc30bde0f6
fix untyped nil into c varargs
...
Fixes #2842
2024-04-02 18:49:35 +02:00