jespergravgaard
|
ee5b113b3a
|
Declared constants only create a single version. Closes #34.
|
2017-12-03 14:01:31 +01:00 |
|
jespergravgaard
|
0323fb0a0d
|
Fixed tests to take adcantadge of casting & int constant type elasticity.
|
2017-12-02 17:17:19 +01:00 |
|
jespergravgaard
|
9c39311d67
|
Preventing double imports. Closes #102
|
2017-12-02 16:56:58 +01:00 |
|
jespergravgaard
|
41fd3bc436
|
Implemented import functionality. Added import test. Closes #32.
|
2017-12-02 16:35:13 +01:00 |
|
jespergravgaard
|
78dd8bc149
|
Added import keyword and failing test.
|
2017-12-02 00:01:53 +01:00 |
|
jespergravgaard
|
2f0bcfacd7
|
Rewrote syntax to separate declarations and statements.
|
2017-12-01 23:45:09 +01:00 |
|
jespergravgaard
|
fed99da261
|
Disallowing code outside methods. Closes #18.
|
2017-12-01 23:25:53 +01:00 |
|
jespergravgaard
|
3023540e15
|
Refactored unused var analysis to reuse VariableReferenceInfos
|
2017-12-01 08:33:25 +01:00 |
|
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 |
|