jespergravgaard
|
18c36a6ed9
|
Implemented pass1 removal of all unused variables - but keeping all calls & side-effects. Closes #31
|
2017-11-30 23:19:02 +01:00 |
|
jespergravgaard
|
deb1304ba6
|
Added pass 1 base class. Added test for unused vars.
|
2017-11-30 21:51:13 +01:00 |
|
jespergravgaard
|
42840f8f77
|
Renamed phase 5 optimization.
|
2017-11-30 20:08:03 +01:00 |
|
jespergravgaard
|
d9490718fa
|
Optimizing ASM removing double jumps and unreachable code (after JMP/RTS). Closes #58. Closes #99.
|
2017-11-30 00:27:11 +01:00 |
|
jespergravgaard
|
6eb54c11a6
|
Working on improving constants.kc. Now everything works except allocation to asby (where clobber by a-register is not detected.)
|
2017-11-29 22:01:30 +01:00 |
|
jespergravgaard
|
1c59ae231e
|
Fixed problem with inline string by extracting them as local constants. Closes #98
|
2017-11-29 21:31:20 +01:00 |
|
jespergravgaard
|
14987484ee
|
Fixed live range problem when calling multiple calls one after the other. Closes #97.
|
2017-11-29 12:29:57 +01:00 |
|
jespergravgaard
|
507b27f436
|
Fixed an alias problem visible in print.kc where to eager aliasing destroyed the ln function. Now aliases are not identified, when the assignment is done withing another scope.
|
2017-11-29 01:31:46 +01:00 |
|
jespergravgaard
|
1edb436dfd
|
Fixed problem with ++ being added twice in *(char_cursor++) = *str;
|
2017-11-28 01:23:59 +01:00 |
|
jespergravgaard
|
663b885196
|
Now removing any unused procedures in pass 1. Closed #96
|
2017-11-28 00:39:15 +01:00 |
|
jespergravgaard
|
b81ae706af
|
Fixed problem with inline data (strings/arrays) being generated at the start of methods. Closed #4
|
2017-11-27 23:55:39 +01:00 |
|
jespergravgaard
|
015de8da3d
|
Improved static value analysis to identify #<0, #>0 as identical to #0
|
2017-11-27 18:11:28 +01:00 |
|
jespergravgaard
|
7d08159fb2
|
Added test for lda #>0 / lda #<0.
|
2017-11-27 01:12:29 +01:00 |
|
jespergravgaard
|
d1d6724e0b
|
Working on skipping unneeded lda #>0 / lda #<0. Fixed word+byte type inference.
|
2017-11-27 01:04:12 +01:00 |
|
jespergravgaard
|
cd06dd2016
|
Implemented type promotion & type checking of all assignments.
|
2017-11-27 00:34:59 +01:00 |
|
jespergravgaard
|
0d622f978c
|
Added two string problems (local & inline) to error-test-cases.
|
2017-11-26 21:46:53 +01:00 |
|
jespergravgaard
|
ae167736d4
|
Fixed wordexpr problem. Improved type inference of binary/unary constants. Added sby->by fragment synthesis.
|
2017-11-26 21:27:00 +01:00 |
|
jespergravgaard
|
ebb71b4130
|
Working on support for inline constants with multiple potential types.
Improving fragment synthesis.
|
2017-11-26 17:38:45 +01:00 |
|
jespergravgaard
|
c8e3b36893
|
Added byte casting fragments
|
2017-11-25 00:10:21 +01:00 |
|
jespergravgaard
|
96f2610d25
|
Fixed infinite recursion
|
2017-11-24 23:49:36 +01:00 |
|
jespergravgaard
|
0efe62585b
|
Added explicit casting - started testing it on byte / signed byte.
|
2017-11-24 23:25:16 +01:00 |
|
jespergravgaard
|
d348365010
|
Improved fragment synthesis
|
2017-11-23 07:31:26 +01:00 |
|
jespergravgaard
|
b81e8eeaa4
|
Improved fragment synthesis
|
2017-11-22 10:37:00 +01:00 |
|
jespergravgaard
|
a6e1f2cade
|
Working on support for signed bytes. Syntax done, very simple program working - explicit casting needed, better asm fragment management needed
|
2017-11-21 00:30:16 +01:00 |
|
jespergravgaard
|
a1baf2e046
|
Using inverse space in scroller
|
2017-11-17 10:17:57 +01:00 |
|
jespergravgaard
|
e64b12e7be
|
Added 8x8 char scroller
|
2017-11-17 09:37:11 +01:00 |
|
jespergravgaard
|
f28db3067b
|
Closes #59 Better ASM static value analysis. Analysis is string-based, so a more advanced method might yield better results - ef ever needed.
|
2017-11-14 00:02:31 +01:00 |
|
jespergravgaard
|
148f9ae072
|
Implemented somewhat Better ASM static value analysis. Also recognizes ZP sta zp5, ldx zp5.
|
2017-11-13 23:41:23 +01:00 |
|
jespergravgaard
|
5ed20ccc76
|
Added test for direct increment of constant numberic pointer ++*$d020;
|
2017-11-13 22:14:11 +01:00 |
|
jespergravgaard
|
788f3d63a2
|
Added test for direct increment of constant numberic pointer ++*$d020;
|
2017-11-13 22:00:29 +01:00 |
|
jespergravgaard
|
8462d75265
|
Closes #3 Pointer: Support calculated pointers eg. *(ptr+i)
|
2017-11-13 21:52:38 +01:00 |
|
jespergravgaard
|
365357596b
|
Closes #26 Change pointer derefs ASM signature to _deref_xxx (from _star_xxx)
|
2017-11-13 19:05:57 +01:00 |
|
jespergravgaard
|
f351b28f58
|
Using *(BGCOL)++ instead of *BGCOL=*BGCOL+1;
|
2017-11-13 00:55:46 +01:00 |
|
jespergravgaard
|
de5f92498d
|
Implemented more proper pointer handling by wrapping any unary *'s into PointerDerefs.
|
2017-11-13 00:47:05 +01:00 |
|
jespergravgaard
|
1b999c8c1d
|
Using cached symbol table for faster uplift
|
2017-11-11 18:45:33 +01:00 |
|
jespergravgaard
|
ffbc958d47
|
Using cached symbol table for faster uplift
|
2017-11-11 18:22:45 +01:00 |
|
jespergravgaard
|
796edcc05b
|
Added cached symbol table for faster uplift
|
2017-11-11 18:07:44 +01:00 |
|
jespergravgaard
|
af281612d2
|
Added cached map for statement from index
|
2017-11-11 08:46:56 +01:00 |
|
jespergravgaard
|
15d6935601
|
added TODO for compile time keyword
|
2017-11-10 08:29:55 +01:00 |
|
jespergravgaard
|
b0e6ae0b67
|
Added a test with two levels of methods to test live ranges / call-paths and allocation of a minimal number of registers.
|
2017-11-10 00:27:56 +01:00 |
|
jespergravgaard
|
514797897e
|
Optimized effective live ranges further to improce uplift speed
|
2017-11-10 00:12:34 +01:00 |
|
jespergravgaard
|
a3c18cf756
|
Optimized live range equivalence classe set lookup from variable to spped up uplift.
|
2017-11-10 00:01:49 +01:00 |
|
jespergravgaard
|
58500b39e0
|
Implemented a less verbose statement print for uplift performance
|
2017-11-09 23:28:21 +01:00 |
|
jespergravgaard
|
88d765324a
|
Caching statement->block mapping for uplift performance
|
2017-11-09 23:05:23 +01:00 |
|
jespergravgaard
|
fdf4e7ac3a
|
Caching Variable Reference Infos to improve uplift performance.
|
2017-11-09 22:34:46 +01:00 |
|
jespergravgaard
|
baa84880ea
|
Succesfully implemented new live range calculation utilizing call-paths. Need a new optimization round for uplift.
|
2017-11-09 21:34:13 +01:00 |
|
jespergravgaard
|
4fd32274af
|
Working on handling procedure parameter aliases
|
2017-11-08 12:09:15 +01:00 |
|
jespergravgaard
|
e4bf84c57c
|
Improved call-path alias detection to inclide all call-parameters but no call-returns
|
2017-11-08 10:10:43 +01:00 |
|
jespergravgaard
|
0026676080
|
Implemented call-path based effective alive analysis with call-path specific aliases.
|
2017-11-07 09:32:16 +01:00 |
|
jespergravgaard
|
b20327590f
|
Working on better live ranges that take into account the call-path taken to the current statement and any aliases on that path (due to phi statements)
|
2017-11-06 08:20:33 +01:00 |
|