Dmitry Atamanov
8b0d409695
Add inlined memcpy and memset builtins and macros. ( #668 )
2022-12-12 11:45:01 +01:00
Christoffer Lerno
50d2a04c48
Default to threads = cpus(). Correct multithreaded benchmark with threads.
2022-12-11 23:35:02 +01:00
Christoffer Lerno
1864c69f31
Fixes to inc/dec vector element. Improvements to unit tests. Updated task threading. Single threaded by default due to poor LLVM perf.
2022-12-10 04:24:56 +01:00
Christoffer Lerno
de4bfe470e
Attempt supporting setjmp on MSVC
2022-12-07 22:16:09 +01:00
Christoffer Lerno
eaaa5362a5
Output messages at compile time.
2022-12-07 18:48:55 +01:00
Dmitry Atamanov
5ff726d8d1
Added $$get_rounding_mode and $$set_rounding_mode builtins. ( #655 )
2022-11-14 13:07:32 +01:00
Christoffer Lerno
49eacb8824
More support for test. Panic function update.
2022-11-14 11:48:12 +01:00
Christoffer Lerno
73619817ba
Update panic function and early work on tests. Optimize ABI lowering.
2022-11-03 19:38:34 +01:00
Christoffer Lerno
b1ed066e55
Fix coerce store / load to properly rely on alloc size like Clang does it. Version bump.
2022-10-15 22:12:52 +02:00
Christoffer Lerno
feba7b8ed2
Rename muladd and fmuladd and insert it at codegen.
2022-10-10 11:14:57 +02:00
Dmitry Atamanov
3624c2a72c
Added $$muladd built-in.
2022-10-10 11:14:57 +02:00
Dmitry Atamanov
7fa129932d
Added $$memmove built-in.
2022-10-08 21:41:11 +02:00
Christoffer Lerno
c5b9b6c761
Single module compilation.
2022-09-30 13:56:08 +02:00
Christoffer Lerno
5029dc703e
Updated error message.
2022-09-30 08:44:28 +02:00
Christoffer Lerno
e1b5b0b60c
Implement static finalize / initialize. Version bump.
2022-09-28 17:18:20 +02:00
Christoffer Lerno
81bea9bad6
Updated untyped lists.
2022-09-24 14:35:58 +02:00
Christoffer Lerno
4fa4b2a631
Refactored builtins. Added reduce operations and powi. Version bump.
2022-09-19 14:58:48 +02:00
Christoffer Lerno
9b14340a57
Added prefetch builtin.
2022-09-18 23:27:42 +02:00
Christoffer Lerno
a66c0942f8
Adding saturated builtins. Remove LLVM 12 support. Remove old llvm optimizer use.
2022-09-17 12:03:08 +02:00
Christoffer Lerno
4fbdb79b65
Add some fixes to asm + test case.
2022-09-05 22:19:45 +02:00
Dmitry Atamanov
7a07b8ff13
Add new built-ins ( #551 )
...
* Added new built-ins: $$copysign, $$exp2, $$floor, $$llrint, $$llround, $$lrint, $$lround, $$nearbyint, $$rint, $$round, $$roundeven
* Disable $$llrint, $$llround, $$lrint and $$lround
2022-08-30 09:50:28 +02:00
Dmitry Atamanov
bbc3792e7c
Sort some things alphabetically
2022-08-29 15:17:41 +02:00
Dmitry Atamanov
5d15ec23bb
Rename $$fabs to $$abs
2022-08-29 12:51:02 +02:00
Christoffer Lerno
73fd9371eb
Exclude LLVM 12 from new optimizer.
2022-08-28 16:51:33 +02:00
Christoffer Lerno
4a296032ab
Add fshl fshr + new optimizer.
2022-08-28 16:22:10 +02:00
Dmitry Atamanov
e33c81f85b
Increase verbosity of asm output
2022-08-27 18:34:55 +02:00
Christoffer Lerno
6b1370ba76
Support varargs for macros. Bugfix member access. Support macro varargs.
2022-08-27 02:25:08 +02:00
Christoffer Lerno
57e1084734
Improvements to parameter parsing. Update "splat" name. Allow more orderings of named parameters. Allow named args after variant.
2022-08-24 20:06:08 +02:00
Christoffer Lerno
1a98fa0efe
Update linker args for Linux. Fix problem with int return mains. Bump to 0.3.16
2022-08-13 21:49:47 +02:00
Christoffer Lerno
fc943a98ef
Foreach_r, bump to 0.3.15
2022-08-13 03:04:09 +02:00
Christoffer Lerno
7805fb8d1c
More codegen cleanup.
2022-08-13 00:19:09 +02:00
Christoffer Lerno
d93c7090f6
Adding wrapper functions to a lot of the LLVM calls.
2022-08-12 23:20:35 +02:00
Christoffer Lerno
44df6eb75b
Cleanup.
2022-08-12 18:13:24 +02:00
Christoffer Lerno
5cacc41925
Add global builder / updated codegen.
2022-08-12 01:50:48 +02:00
Christoffer Lerno
90dfc24491
General cleanup and rearranging code.
2022-08-11 02:20:22 +02:00
Christoffer Lerno
5ac35a49fd
Minor cleanup. Fix of do { } while(1) loops. Bump to 0.3.9
2022-08-10 16:37:27 +02:00
Christoffer Lerno
1bf3bb51bf
Add asm output option using --emit-asm.
2022-08-10 11:41:40 +02:00
Christoffer Lerno
9473adbc35
Added $$sysclock() builtin.
2022-08-10 01:24:16 +02:00
Christoffer Lerno
9886d381c0
Update allocator and resolution.
2022-07-30 02:55:32 +02:00
Christoffer Lerno
cdff5c3e26
Dev ( #500 )
...
Single code path for kind/inner/len/sizeof on type and typeid. Fix of #493 . Bump to 0.2.24. Remove ´func´ deprecated keyword. Unify builtin access. Enum and fault name reflection.
2022-07-26 00:56:59 +02:00
Christoffer Lerno
4afec24434
More advanced introspection.
2022-07-20 12:22:03 +02:00
Christoffer Lerno
ea5d7cd2e7
Fixes initialization of anonymous structs. Bump version 0.2.11
2022-07-10 23:29:05 +02:00
Christoffer Lerno
c8a614e43f
LLVM 15 compatibility fixes ( #465 )
...
More variant code. Fixes to typekind. Fixes to macro with failable returns. Remove use of LLVMConstInsert etc. Version 0.2.8
2022-07-06 16:41:52 +02:00
Christoffer Lerno
b1d83e2ccd
Auto-import std::core. Fix module assignment of declarations. Introspection improvements. Deref null error panics in safe mode. Support for LLVM 15
2022-06-29 21:57:35 +02:00
Christoffer Lerno
df41caabdd
Global @align fixed #446 .
2022-06-04 23:19:27 +02:00
Christoffer Lerno
b0c55ff777
Support enum associated values.
2022-05-11 20:55:09 +02:00
Christoffer Lerno
890c4bc435
0.2.0. Build system improvements. Target changes x64-windows -> windows-x64, x64-darwin -> macos-x64. Improved mac support. LLD linking for Mac, Windows, Linux. Cross linking for Mac, Windows. Clean up string use. Fix of debug handling of multiple compilation units per module. MSVC CI
2022-04-26 13:20:33 +02:00
Christoffer Lerno
8743223dd6
Allocators. Rename of "optenum" to fault. Memcpy and memset added. Cleanup of declaration use.
2022-04-09 20:07:59 +02:00
Christoffer Lerno
05d8e6c7b8
Fix debug panic for vector shift and division.
2022-03-20 19:39:31 +01:00
Christoffer Lerno
6789fab93c
Panic function that may be redefined. Trap and stacktrace builtins. Bug using builtin fixed. Fixes to using $$LINE and friends. Produces a stacktrace on error.
2022-03-18 12:43:17 +01:00