gingerBill
84a7e03178
Merge pull request #3220 from laytan/promote-types-in-c-varargs
...
Promote types in `#c_varargs` according to C rules
2024-02-28 10:49:28 +00:00
gingerBill
5107bdc06b
Make lb_type_info use a procedure to load the global value
2024-02-27 15:45:53 +00:00
Laytan Laats
f6f3a760bc
Promote types in #c_varargs according to C rules
2024-02-21 22:05:11 +01:00
gingerBill
5c4485f657
Add #load_directory(path: string) > []runtime.Load_Directory_File
2024-02-09 15:18:29 +00:00
gingerBill
c1d853a24e
Remove dead code
2024-01-28 17:32:34 +00:00
gingerBill
f4782157d3
Implement instrumentation pass
2024-01-07 21:34:44 +00:00
gingerBill
3bf7b416e7
Fix builtin.quaternion generation
2024-01-05 14:36:58 +00:00
gingerBill
0b83e3dae5
Enforce naming the parameters with builtin.quaternion to reduce confusion
2024-01-05 14:29:14 +00:00
korvahkh
759e342872
Fix #3056
2023-12-29 22:39:34 -06:00
flysand7
a3a3156ddd
Fix-up inline asm for i386 syscalls emit
2023-10-30 02:03:35 +11:00
Morten Hauke Solvang
fb5bb1cd83
llvm: specify calling convention on call
...
Looks like the compiler only was specifying the calling convention on
function declarations, but not on function calls.
But LLVM seems to produce "bad" code when optimizing with level -O2
unless you specify the same calling convention on the call too.
2023-10-13 21:21:54 +02:00
gingerBill
23054138c2
Remove debug message
2023-09-29 12:12:14 +01:00
gingerBill
63f755554b
Rename simd bitwise operations from intrinsics.simd_and to intrinsics.simd_bit_and etc
2023-09-28 16:42:08 +01:00
gingerBill
94d68c1f22
Fix ptr != ptr type cast problem in LLVM 17
2023-09-26 11:58:12 +01:00
gingerBill
963559676e
Fix build times for -o:<string> in LLVM-17
2023-09-21 16:48:00 +01:00
gingerBill
4aa9d34b3d
Add attributes for sanitize_memory and sanitize_thread
2023-09-21 11:20:13 +01:00
gingerBill
38d2a0ddb9
Add sanitize_address attribute to all normal packages
2023-09-21 11:13:26 +01:00
William Roe
5d8b78cb88
Fix read_cycle_counter intrinsic on arm64
...
Running this code with the hard-coded x9 register results in not
returning the cycle count, but some other value.
This code (using $0 as the register), works on arm64 Linux and Darwin.
2023-08-07 21:18:56 +01:00
gingerBill
c91898a888
Remove #relative slices; Replace with #relative multi-pointers
2023-08-05 16:05:39 +01:00
gingerBill
afa8eb2d6f
Fix #2699
2023-08-05 15:04:14 +01:00
gingerBill
65206fe33e
Go through loads of TODOs
2023-08-01 11:39:04 +01:00
gingerBill
3072479c3c
Generalize name mangling rule to have a singular definition for a name separator
2023-07-07 23:52:56 +01:00
gingerBill
3c0f1caa41
Fix #2606
2023-06-26 17:03:40 +01:00
gingerBill
ea76e09ea7
Fix empty varargs
2023-06-21 14:30:39 +01:00
gingerBill
c9fb078c0f
Handle #c_vararg
2023-06-21 14:07:14 +01:00
gingerBill
1800030356
Correct deferred procedures
2023-06-21 14:01:46 +01:00
gingerBill
43ba2c6226
Fix constant parameter passing
2023-06-21 12:10:07 +01:00
gingerBill
09f366bec7
Correct purely named argument handling
2023-06-21 00:03:56 +01:00
gingerBill
7c57dde255
Start work on parapoly args for new and improved
2023-06-20 13:47:10 +01:00
gingerBill
9ec927b9e9
Try to get make everything work with parapoly
2023-06-20 00:30:29 +01:00
gingerBill
6568625dea
Fix line error printing for error messages
2023-06-19 22:12:47 +01:00
gingerBill
2992ca5df1
Basic support for new procedure code (non-polymorphic, non-proc-group)
2023-06-15 01:37:55 +01:00
gingerBill
151396507e
Merge pull request #1309 from Yawning/fix/freebsd-syscall
...
src: "Fix" the system call intrinsic for FreeBSD
2023-06-07 12:04:57 +01:00
gingerBill
ca6cef9a7d
Fix wasm intrinsics; fix len for strings and slices
2023-06-06 23:11:42 +01:00
gingerBill
4a75a1e839
Merge branch 'master' into separate-int-word-sizes
2023-06-06 22:42:04 +01:00
gingerBill
8bf32ac697
Minor change to handling of propagation of errors with --- as a value
2023-05-22 12:53:29 +01:00
gingerBill
8693a045bb
Revert "Change intrinsics.read_cycle_counter on ARM64"
...
This reverts commit b567679eb6 .
2023-05-12 11:50:49 +01:00
gingerBill
b567679eb6
Change intrinsics.read_cycle_counter on ARM64
2023-05-12 11:34:01 +01:00
gingerBill
685f7d0fea
Rename word_size to ptr_size internally to make it clearer
2023-04-20 12:18:13 +01:00
gingerBill
02a58c1247
Merge pull request #2464 from ap29600/simd_unaligned_load
...
Improve code generation for `intrinsics.unaligned_load/store` on `#simd` types
2023-04-20 10:33:32 +01:00
gingerBill
72a7b35513
Merge pull request #2450 from destroycomputers/master
...
Fix intrinsics.alloca code generation
2023-04-20 10:25:43 +01:00
Andrea Piseri
af63eff8d7
improve code generation for intrinsics.unaligned_load/store on #simd types
...
the default implementation calls memcpy on an `alloca` constant, which
seems to heavily confuse the optimizer and produces overall suboptimal
code.
Introducing this specialization simplifies the intermediate
representation produced, resulting in more efficient code.
2023-04-16 15:01:30 +02:00
gingerBill
dc55e88588
Add @(deferred_*_by_ptr=<proc>)
2023-04-15 16:04:04 +01:00
destroycomputers
b6f356c211
Fix intrinsics.alloca code generation
...
There was a disconnect between the declared return type for alloca
intrinsic in check_builtin.cpp (multi_pointer(t_u8)) and the generated
result type in llvm_backend_proc.cpp (t_u8_ptr).
This allowed slicing the return type, but in the code generation process
the type of the expression wasn't sliceable, which triggered the assert.
Fixes #2139
2023-04-11 01:11:01 +02:00
gingerBill
8dc70f797c
Increase use of temporary_allocator() where possible
2023-03-16 15:16:17 +00:00
gingerBill
c1c7128634
Minimize severe memory usage by enforcing the heap_allocator() in places
2023-03-16 15:04:57 +00:00
gingerBill
233f47cc99
Fix #2329
2023-02-19 12:47:14 +00:00
gingerBill
c08809e29d
Improve handling of passing constants to implicit immutable const ref parameters
2023-02-17 14:49:37 +00:00
gingerBill
8a16fd7699
Rename built-in procedure to expand_values
2023-02-07 15:39:39 +00:00
gingerBill
0324281634
Enforce dynamic map calls for the time being
2023-02-03 15:17:30 +00:00