Commit Graph

2732 Commits

Author SHA1 Message Date
gingerBill
d3abc1a2b4 Add matrix_flatten - matrix[R, C]T -> [R*C]T 2021-10-20 15:33:23 +01:00
gingerBill
465c87bd5a Make transpose use SIMD if possible 2021-10-20 15:22:02 +01:00
gingerBill
d0d9a3a4f4 Make lb_emit_matrix_mul SIMD if possible 2021-10-20 14:49:20 +01:00
gingerBill
9e43072113 Make lb_emit_vector_mul_matrix use SIMD if possible 2021-10-20 13:11:33 +01:00
gingerBill
1bfbed0e02 Add llvm_vector_reduce_add 2021-10-20 12:48:48 +01:00
gingerBill
0fd525d778 Make lb_emit_matrix_mul_vector use SIMD if possible 2021-10-20 12:39:38 +01:00
gingerBill
cee45c1b15 Add hadamard_product 2021-10-20 02:18:30 +01:00
gingerBill
68afbb37f4 Add builtin outer_product 2021-10-20 02:06:56 +01:00
gingerBill
7faca7066c Add builtin transpose 2021-10-20 01:51:16 +01:00
gingerBill
3eaac057da Unify polymorphic_assign_index logic 2021-10-20 01:26:55 +01:00
gingerBill
3f1930b76e Clean up stride logic 2021-10-20 01:26:33 +01:00
gingerBill
afac1a2cc1 Unify matrix stride calculation 2021-10-20 01:17:10 +01:00
gingerBill
445696d660 Support parapoly matrices 2021-10-20 01:06:58 +01:00
gingerBill
82b6772ea4 Support matrix literals 2021-10-20 00:40:03 +01:00
gingerBill
662cbaf425 Support indexing matrices 2021-10-19 12:13:19 +01:00
gingerBill
1556fad65a Change syntax for matrices to matrix[R, C]T 2021-10-19 11:31:11 +01:00
gingerBill
243e2e2b8a Basic support for matrix*vector, vector*matrix operations 2021-10-19 11:24:26 +01:00
gingerBill
35111b39b8 Try to support the matrix multiplication LLVM intrinsics 2021-10-18 18:57:21 +01:00
gingerBill
ba331024af Very basic matrix support in backend 2021-10-18 18:16:52 +01:00
gingerBill
4c655865e5 Begin work on matrix type 2021-10-18 16:52:19 +01:00
gingerBill
7aac8df2f2 Add runtime._cleanup_runtime internal call 2021-10-18 12:28:46 +01:00
gingerBill
2c469a39c7 Simplify TIME_SECTION code 2021-10-12 15:09:57 +01:00
gingerBill
d0001dc11d Increase system_exec_command_line_app buffer from 4 KiB to 64 MiB, and unify some logic 2021-10-12 13:56:36 +01:00
gingerBill
2ad6aa7886 Copying file contents rather than memory mapping 2021-10-12 11:06:39 +01:00
gingerBill
49c761dc6d Fix typo 2021-10-09 19:11:26 +01:00
gingerBill
2a8d4c5bf5 Disallow or_return within defer 2021-10-09 19:11:10 +01:00
gingerBill
d386563344 Correct issue with the generated map type internals; Simplify map rehash logic to utilize resize 2021-10-07 21:23:37 +01:00
gingerBill
cb9101e0a0 Simplify lb_gen_map_header 2021-10-07 14:12:47 +01:00
gingerBill
af7008aa44 Allow for array programming value constants 2021-10-07 13:41:14 +01:00
gingerBill
a463609e4c If an entity is inserted into a scope already exists by the same name, it will not report as an error any more 2021-10-04 12:41:33 +01:00
gingerBill
647fee31f8 Correct offset_of_by_string 2021-10-03 12:34:01 +01:00
gingerBill
8af6b6fa18 Remove debug code 2021-10-03 12:32:51 +01:00
gingerBill
f48f06e7b7 Add offset_of_by_string 2021-10-03 12:32:04 +01:00
gingerBill
51b5a973e2 Allow constant string value for the field argument of offset_of 2021-10-03 12:24:54 +01:00
gingerBill
2bdae52fed Add @(init) attribute for procedures, allowing for procedures to be called at startup
These procedures will be called after global variables have been initialized as normal
2021-10-03 11:53:32 +01:00
gingerBill
036fa5cb24 Correct ABI for windows with LLVM 2021-10-02 18:12:34 +01:00
gingerBill
81fe50d623 Add sizes to assert message 2021-10-02 17:48:09 +01:00
gingerBill
b9b9bd8612 Add message to assert; add sanity check for possible future behaviour 2021-10-02 17:44:24 +01:00
gingerBill
171a5d6476 Clean up struct_fields_index_by_increasing_offset 2021-10-02 17:43:48 +01:00
gingerBill
00671a59a0 Minor code cleanup for backend; add struct_fields_index_by_increasing_offset for future use 2021-10-02 17:22:56 +01:00
gingerBill
ebca0398a7 Remove need for alignment lb_struct_has_padding_prefix 2021-10-02 16:06:42 +01:00
gingerBill
444fedd8d4 Heavily improve the LLVM struct type generation to improve ABI 2021-10-02 15:45:46 +01:00
gingerBill
bd1e1c66f3 Merge pull request #1188 from krux02/minor-fix-3
fix #1187
2021-09-29 19:22:56 +01:00
gingerBill
f99bea12c7 Allow uintptr <-> [^]T 2021-09-29 16:36:05 +01:00
Jeroen van Rijn
6f04c61bdf Fix -collection help typo. 2021-09-28 19:59:44 +02:00
gingerBill
6f872e04c8 Move redundant auto_cast error from -vet to -vet-extra 2021-09-28 12:24:51 +01:00
gingerBill
6fab93c4b3 Fix [^]u8 to cstring conversion 2021-09-25 21:11:54 +01:00
Jeroen van Rijn
f7bf55af4a Merge pull request #1194 from Kelimion/define
Allow `-define:name=string`.
2021-09-25 09:56:51 -07:00
Jeroen van Rijn
2c055b0972 Allow -define:name=string.
Slightly rewrote `build_param_to_exact_value` parsing logic.

First, try to parse as a bool, then as an integer or float.
If both fail, treat the value as a string.

To force a string define for e.g. `true`, use `-define:name='true'`.
2021-09-25 18:11:30 +02:00
gingerBill
fa0d58f96e Correct f64 -> u128/i128 generation 2021-09-25 15:38:56 +01:00