Commit Graph

417 Commits

Author SHA1 Message Date
Irmen de Jong
c0887b5f08 removed 'continue' statement to be able to generate more optimized loop assembly code. started with for loop optimizations 2020-08-17 19:22:29 +02:00
Irmen de Jong
fbe3ce008b slight expression rewrite in case of certain in-place assignments, to try to get the in-place variable operand to the leftmost position 2020-07-30 01:30:21 +02:00
Irmen de Jong
7ac6c8f2d1 todo related to in-place assignment 2020-07-27 00:32:59 +02:00
Irmen de Jong
fdfbb7bdf0 improved call arguments type check 2020-07-27 00:28:48 +02:00
Irmen de Jong
1c16bbb742 tweaks for string handling as arguments 2020-07-27 00:12:27 +02:00
Irmen de Jong
402827497e fix float array assignment 2020-07-26 23:32:20 +02:00
Irmen de Jong
d32a970101 partly optimize assignments so that simple increments and decrements can be done via separate statements (postincrdecr) 2020-07-26 19:22:12 +02:00
Irmen de Jong
8a3189123a to reduce complexity, augmented assignment has been removed again from internal Ast and codegen for now. 2020-07-26 13:48:31 +02:00
Irmen de Jong
3c55719bf1 finalize repeat asmgen 2020-07-26 01:32:27 +02:00
Irmen de Jong
af8279a9b9 empty for loops are removed 2020-07-25 22:54:50 +02:00
Irmen de Jong
c38508c262 introduced repeat loop. repeat-until changed to do-util.
forever loop is gone (use repeat without iteration count).
struct literal is now same as array literal [...] to avoid parsing ambiguity with scope blocks.
2020-07-25 16:56:34 +02:00
Irmen de Jong
a70276c190 use indexOfFirst. Also avoid initializing a for loop variable twice in a row. 2020-07-25 14:44:24 +02:00
Irmen de Jong
0c461ffe2e removed Register expression (directly accessing cpu register) 2020-07-25 14:14:24 +02:00
Irmen de Jong
cdcb652033 optimized arg passing if all args are registers 2020-07-04 18:56:30 +02:00
Irmen de Jong
71e678b382 fixed possible register subroutine arg clobbering 2020-07-04 17:05:36 +02:00
Irmen de Jong
3050156325 reverted subroutine inlining, it was a mistake 2020-07-04 01:02:36 +02:00
Irmen de Jong
4bfdbad2e4 added mandel gfx to examples 2020-07-03 23:56:36 +02:00
Irmen de Jong
d89f5b0df8 todo about fixing argclobbering 2020-07-03 23:49:17 +02:00
Irmen de Jong
b6e2b36692 refactor 2020-07-03 23:37:38 +02:00
Irmen de Jong
a6d789cfbc fixed function argument type cast bug 2020-07-03 17:24:43 +02:00
Irmen de Jong
c07907e7bd fixed missing shifts codegen 2020-07-02 21:28:48 +02:00
Irmen de Jong
7d8496c874 fixed missing shifts codegen 2020-07-02 19:18:47 +02:00
Irmen de Jong
164ac56db1 compiler error todos 2020-07-01 22:31:38 +02:00
Irmen de Jong
fdddb8ca64 slight optimization 2020-07-01 22:23:46 +02:00
Irmen de Jong
a9d4b8b0fa fixed ast modifications on node arrays, in particular function call parameter lists 2020-07-01 22:03:54 +02:00
Irmen de Jong
febf423eab tehtriz compilation issues 2020-06-30 20:42:13 +02:00
Irmen de Jong
a999c23014 simple subroutine inlining added 2020-06-27 17:03:03 +02:00
Irmen de Jong
69f1ade595 gfx mandelbrot example added 2020-06-18 01:35:24 +02:00
Irmen de Jong
ee2ba5f398 some more optimizations for swap() function call asm code generation 2020-06-17 22:40:57 +02:00
Irmen de Jong
cb9825484d some more optimized in-array assignments codegeneration 2020-06-17 21:41:38 +02:00
Irmen de Jong
76cda82e23 v2.2 2020-06-16 01:43:44 +02:00
Irmen de Jong
52f0222a6d Got rid of old Ast transformer Api, some compiler error fixes 2020-06-16 01:25:49 +02:00
Irmen de Jong
75ccac2f2c refactoring last of old Ast modification Api 2020-06-16 00:36:02 +02:00
Irmen de Jong
5c771a91f7 refactoring last of old Ast modification Api 2020-06-14 16:56:48 +02:00
Irmen de Jong
b5086b6a8f refactoring last of old Ast modification Api 2020-06-14 03:17:42 +02:00
Irmen de Jong
235610f40c refactored StatementOptimizer 2020-06-14 02:41:23 +02:00
Irmen de Jong
ceb2c9e4f8 added string value assignment, leftstr, rightstr, substr functions 2020-06-06 00:05:39 +02:00
Irmen de Jong
68a7f9c665 version 2.1 2020-06-04 23:03:18 +02:00
Irmen de Jong
ffd8d9c7c1 more assignment expression optimizations 2020-06-04 22:57:32 +02:00
Irmen de Jong
c66fc8630c fixed missing repeated constant folding in expression optimization 2020-06-04 20:22:37 +02:00
Irmen de Jong
9ca1c66f2b added some optimizations for >= 0 and <0 comparisons for integers 2020-06-04 01:43:37 +02:00
Irmen de Jong
33647a29d0 be smarter about certain implicit type casts 2020-06-03 23:55:41 +02:00
Irmen de Jong
02b12cc762 optimized swap() for byte and word vars, optimized graphics line routine 2020-06-03 23:27:50 +02:00
Irmen de Jong
3280993e2a stricter type checking in assignments (less implicit typecasts) 2020-06-02 22:36:57 +02:00
Irmen de Jong
f5e6db9d66 big compiler speedup due to optimized scope lookups 2020-05-14 23:59:02 +02:00
Irmen de Jong
534b5ced8f updated the compiled examples 2020-04-10 23:36:29 +02:00
Irmen de Jong
5ebd9b54e4 added some more optimized array assignments 2020-04-10 23:30:19 +02:00
Irmen de Jong
295e199bfa optimized asm output for unneeded typecasts, fixed parent node linking issues with replaceChildNode, Assignment aug_op field is now mutable to avoid having to recreate many Assignment nodes 2020-04-09 00:12:50 +02:00
Irmen de Jong
df3371b0f0 slight gfx optimizations 2020-04-08 22:53:23 +02:00
Irmen de Jong
e4fe1d2b8d attempts to optimize in-place assignments 2020-04-08 03:11:38 +02:00