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
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
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
9ce446b507
Adding the simplest version of unions
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-01 15:11:38 +01:00
Jakub Doka
3b4b30b2bd
Restructuring the compiler
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-12-01 14:01:44 +01:00
Jakub Doka
3f6ebdd009
fixing phi moves (longer move cycles)
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-11-30 22:33:13 +01:00
Jakub Doka
19aca050ed
add new ableos path resolver, separate platform independent code
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-11-30 18:57:29 +01:00
Jakub Doka
8ea6c5cfcc
fixing miscompilation of generic struct functions
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-11-30 16:30:58 +01:00
Jakub Doka
e44d003e7f
completing the generic types example
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-11-30 13:38:44 +01:00
Jakub Doka
a2ca8d98df
fixing a bug with floationg point comparison
...
Signed-off-by: Jakub Doka <jakub.doka2@gmail.com>
2024-11-30 12:40:39 +01:00
Jakub Doka
a3355a59c0
update on incomplete example
2024-11-24 18:55:30 +01:00
Jakub Doka
116f045a5f
adding defer
2024-11-24 18:50:55 +01:00
Jakub Doka
24a3aed360
implementing struct method for non generic contexts
2024-11-24 16:17:57 +01:00
Jakub Doka
58ee5c0a56
in progress of adding methods
2024-11-24 14:47:38 +01:00
Jakub Doka
9dfb2eb606
fg
2024-11-24 11:26:38 +01:00
Jakub Doka
5df4fb8882
changing the gcm to not mutate nodes in recursive functions
2024-11-23 19:47:17 +01:00
Jakub Doka
cad0a828d0
updating tests
2024-11-23 15:28:27 +01:00
Jakub Doka
4a857d2317
garbage
2024-11-22 19:50:59 +01:00
Jakub Doka
2253ac6198
fixing some bugs
2024-11-22 19:50:36 +01:00
Jakub Doka
95e9270fef
adding case checking
2024-11-17 20:04:53 +01:00
Jakub Doka
12b9d43754
adding minimal enums
2024-11-17 16:25:39 +01:00
Jakub Doka
397b2a4b1b
fixed a stack prelude postlude being needlesly generated + struct can now be compared
2024-11-17 10:06:10 +01:00
Jakub Doka
e5d6b35f66
removing needless copies to zero register for unused values
2024-11-16 13:42:17 +01:00
Jakub Doka
baa70d3f12
removing needless copy into ret register
2024-11-16 10:16:35 +01:00
Jakub Doka
ec4499e519
removing duplicate un instruction
2024-11-16 10:05:56 +01:00
Jakub Doka
12be64965f
maybe fixed mandelbrot
2024-11-15 22:35:03 +01:00
Jakub Doka
afc1c5aac5
orginizing null checks better to get more peephole hits
2024-11-15 14:36:33 +01:00
Jakub Doka
981c17ff19
fixing function destinations
2024-11-14 20:25:52 +01:00
Jakub Doka
d01e31b203
fixing stack return values
2024-11-13 16:18:21 +01:00
Jakub Doka
f524013c34
making use of zero register
2024-11-13 10:28:16 +01:00
Jakub Doka
3c86eafe72
fixing another problem with rescheduling
2024-11-13 08:49:25 +01:00
Jakub Doka
dd51961fbb
adding assert for better error
2024-11-12 21:10:42 +01:00
Jakub Doka
4ec88e3397
adding pointer edgecase
2024-11-12 20:42:04 +01:00
Jakub Doka
f1e715e9bd
refactoring truncation
2024-11-12 19:02:29 +01:00
Jakub Doka
9949086011
allowing eca in inline functions
2024-11-12 17:11:39 +01:00
Jakub Doka
c701eb7b6d
adding extra test
2024-11-12 12:54:36 +01:00
Jakub Doka
f1deab11c9
making better peepholes and fixing overoptimization on memory swaps
2024-11-12 12:20:08 +01:00
Jakub Doka
7def052749
preventing dangling nodes due to cycles in loop phys
2024-11-11 21:55:18 +01:00
Jakub Doka
3c35557872
fixing type variables in loops
2024-11-11 09:06:34 +01:00
Jakub Doka
b6274f3455
fixing yet another edge case
2024-11-10 20:30:35 +01:00
Jakub Doka
654005eea2
updating tests
2024-11-10 18:59:29 +01:00
Jakub Doka
1e02efc1eb
improving load analisys
2024-11-10 17:32:24 +01:00
Jakub Doka
42a713aeae
fixing wrong instruction selection
2024-11-10 09:17:43 +01:00
Jakub Doka
823c78bf74
preventing deduplication to cause bugs
2024-11-09 15:14:03 +01:00
Jakub Doka
bedffa9b32
fixing constant fmt newline preservation
2024-11-09 10:58:57 +01:00
Jakub Doka
b8032aa840
wrong index for extend
2024-11-09 10:28:53 +01:00