Jakub Doka
8ad58ee6b6
changing the array sintax to be distinc from tuple
...
the arrays can be declared in a more natural way
type of the element can aso be inferred form the first element
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-20 10:17:34 +01:00
Jakub Doka
6e8eb059f6
adding tuples
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 23:08:36 +01:00
Jakub Doka
969ea57e3f
optimizing the bitset used in register allocation
...
also fixing an enum bug
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 19:43:30 +01:00
Jakub Doka
cfd3eac0a8
making the instruction scheduling smarter
...
the instructions that are only depended by phis are pushed to the end of
the block, which usually saves copy instructions
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 11:00:19 +01:00
Jakub Doka
a8aba7e7c2
making the Call node less special
...
return value is now a separate node pinned to the call
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-19 10:48:05 +01:00
Jakub Doka
f05c61a99e
adding @ChildOf directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-18 00:06:57 +01:00
Jakub Doka
e769fa8dba
removing error for needless @as temporarly
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 22:29:16 +01:00
Jakub Doka
b3f858f64b
adding @error directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 21:35:47 +01:00
Jakub Doka
1584ec7563
adding @Any directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 21:11:02 +01:00
Jakub Doka
6085177982
fixed the unreachable functions deleting branches
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 20:53:13 +01:00
Jakub Doka
47014c6164
lifting the restriction for inlining to allow normal functions as well
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:32:30 +01:00
Jakub Doka
3702a99d03
fixing another incorrect file reporting
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:30:42 +01:00
Jakub Doka
248bdf003a
making the else branch have less priority
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:10:56 +01:00
Jakub Doka
d3f3fe98e3
propagating unreachable for functions returning never type
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:08:53 +01:00
Jakub Doka
14cf5efaa5
handling comptime known match
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 19:01:01 +01:00
Jakub Doka
95496116b0
making @len work on strings
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 18:30:19 +01:00
Jakub Doka
86f7d70747
adding default values to struct fields and @kindof directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 17:51:14 +01:00
Jakub Doka
0516ce68f4
adding @nameof
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 16:46:43 +01:00
Jakub Doka
945e5c70f6
extractng Nodes from son.rs
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 00:18:44 +01:00
Jakub Doka
ec9bb886f8
removing more repetative patterns
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-17 00:02:00 +01:00
Jakub Doka
127fdb3cc5
reducing repeating patters
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 23:47:31 +01:00
Jakub Doka
e65c72e19f
properly type checking, null checks are fixed
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 23:32:08 +01:00
Jakub Doka
1ca9529302
fixing missing antidependencies
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 17:37:14 +01:00
Jakub Doka
c0d957e70c
removing needless errors
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 15:05:19 +01:00
Jakub Doka
b9b8233a53
typo
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 15:03:07 +01:00
Jakub Doka
d2fa41039b
strengthening the error recovery
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 15:00:48 +01:00
Jakub Doka
9fe8d6bbff
support integer to float coersion in more places
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 14:38:41 +01:00
Jakub Doka
04680c8b7c
fixing an incredible edge case
...
this basically only happens if the Vc oscilates between 7 and 8 elemenst
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 14:27:23 +01:00
Jakub Doka
a1e692eac7
maybe fixed the float op fold
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 14:06:12 +01:00
Jakub Doka
8bf2d1a266
flag the function as inline after checking style
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 14:04:30 +01:00
Jakub Doka
1571938e9f
bools can now upcast to any integer
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 13:54:52 +01:00
Jakub Doka
f7d5bccdd9
fixing @itf type inference
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 13:49:20 +01:00
Jakub Doka
07d4fe416a
forgot to add defer handling to unrolled loops
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 13:27:15 +01:00
Jakub Doka
b2be007ef0
adding unrolled loops, struct indexing and @len
directive
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 13:20:47 +01:00
Jakub Doka
bfac81c807
fixing a bug with ITF selecting based of input instead of output type
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 10:35:11 +01:00
Jakub Doka
ef36e21475
making the compiler emit FMA instructions
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-16 10:16:53 +01:00
Jakub Doka
8138d6664f
properly releasing the strongrefs now
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 23:15:07 +01:00
Jakub Doka
9f43e3bb92
refactoring some stuff and loosening a requrement on assert
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 20:49:37 +01:00
Jakub Doka
6fba7da782
more general tree walking algorightm was needed (probably)
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 20:35:44 +01:00
Jakub Doka
7837eeb90d
implementing the loop iteration optimization
...
the multiplication and addition to a pointer is replaced with simply
incremrnting the pointer it self
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 19:37:37 +01:00
Jakub Doka
5a7a01ca02
adding the stack offset elision for return values as well
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 17:57:22 +01:00
Jakub Doka
f9c47f86ad
fixing a glaring bug, where the elidded offset is also offset
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 17:42:20 +01:00
Jakub Doka
48a0c8d0b9
POC for removeing needless stack offset computes when only value is used
...
TBD: there are far more cases where this will apply
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-15 17:17:41 +01:00
Jakub Doka
00f6729d31
supporting ascii literals
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-14 21:02:29 +01:00
Jakub Doka
dc96c8b10a
the items accesed outside the nested scope no longer get duplicated
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-14 18:50:13 +01:00
Jakub Doka
5aeeedbdce
fixing non pointer struct method receiver not counting as use
...
forgot to strip pointer
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-14 15:19:02 +01:00
Jakub Doka
fae75072f4
removing hardcoded html files and replacing them with markdown
...
the markdown gets transpiled on build and built files are then included
in the server executable
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-14 13:17:58 +01:00
Jakub Doka
71ba2c2486
Dividing function into template and instance, rmoving cumbersome options
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-02 15:51:12 +01:00
Jakub Doka
c5d5301b7b
Removing some clones and fixing parent scoping in case of globals
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-02 12:59:07 +01:00
Jakub Doka
c553c3d9e9
Removing repetative code, adding ent slice to properly index modules
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-01 19:04:27 +01:00