jespergravgaard
|
9ef7c69c3e
|
Improved comparisons to avoid branch/jmp sequences by negating comparisons.
|
2019-05-23 17:50:44 +02:00 |
|
jespergravgaard
|
06147e2634
|
Moved malloc/free trivial implementations to stdlib
|
2019-05-23 15:48:34 +02:00 |
|
jespergravgaard
|
430c128cc3
|
Simplified constant inlining pass2
|
2019-05-23 12:33:15 +02:00 |
|
jespergravgaard
|
682d007ba8
|
Replaced Pass1EliminiateEmptyBlocks with PassNCullEmptyBlocks (which was removed from pass 2).
|
2019-05-23 12:19:20 +02:00 |
|
jespergravgaard
|
01e833681a
|
Improved planned sequence for A->B->C sequences where B is conditional successor of A.
|
2019-05-23 12:02:52 +02:00 |
|
jespergravgaard
|
d5ebe81c21
|
Eliminated two redundant pass2 steps
|
2019-05-23 07:41:18 +02:00 |
|
jespergravgaard
|
1df77d5ded
|
Collected all type inference in pass2 together.
|
2019-05-23 07:39:10 +02:00 |
|
jespergravgaard
|
fdbfa68c1c
|
Eliminated Pass2EliminateRedundantCasts.
|
2019-05-23 07:12:52 +02:00 |
|
jespergravgaard
|
009b141ef1
|
Eliminated PassNDowngradeConstantTypeConversion. Simplified PassNAddTypeConversionAssignment.
|
2019-05-23 01:07:59 +02:00 |
|
jespergravgaard
|
2a14671496
|
Renamed for clarity
|
2019-05-23 00:46:43 +02:00 |
|
jespergravgaard
|
65c92716f0
|
Cleaning up type inference.
|
2019-05-23 00:38:35 +02:00 |
|
jespergravgaard
|
49a61ecbdd
|
Cleaning up type inference.
|
2019-05-23 00:28:34 +02:00 |
|
jespergravgaard
|
669064bd37
|
Eliminated SymbolTypeNumberInference.
|
2019-05-22 23:59:43 +02:00 |
|
jespergravgaard
|
864b993f14
|
Eliminated SymbolTypeSimple. Eliminated SymbolTypeInference.infer(type, ...). Eliminiated most of SymbolTypeNumberInference.
|
2019-05-22 23:50:50 +02:00 |
|
jespergravgaard
|
2fb9a5baf3
|
Moved symbol table update functions to PassNTypeInference (cleaning up SymbolTypeInference).
|
2019-05-22 23:38:34 +02:00 |
|
Jesper Gravgaard
|
9636e26191
|
Changed all type comparisons to use SymbolType.XXX.equals()
|
2019-05-22 15:53:48 +02:00 |
|
Jesper Gravgaard
|
aaf556abe1
|
Improved utoa16 implementation using pointer to pointer.
|
2019-05-22 15:42:00 +02:00 |
|
Jesper Gravgaard
|
ff7e4bff2a
|
Removed duplicate compiler step.
|
2019-05-22 15:32:42 +02:00 |
|
Jesper Gravgaard
|
39c4f0d6b4
|
Fixed identification of identical Phi RValues that are constant pointers to symbols.
|
2019-05-22 15:29:47 +02:00 |
|
jespergravgaard
|
67db0f0f6f
|
Improved duplicate assignment right side optimization slightly.
|
2019-05-22 08:19:43 +02:00 |
|
jespergravgaard
|
2c808e59d6
|
Added tests for duplicate assignment right side optimization.
|
2019-05-22 08:06:54 +02:00 |
|
Jesper Gravgaard
|
c1213f4d55
|
Added right side duplicate identification.
|
2019-05-21 23:06:13 +02:00 |
|
jespergravgaard
|
5f2b798a8a
|
Added test for pointer-to-pointer optimization.
|
2019-05-21 10:23:39 +02:00 |
|
jespergravgaard
|
fd259fe47e
|
Added pointer to pointer test.
|
2019-05-21 01:45:32 +02:00 |
|
jespergravgaard
|
3132790ab5
|
Added very naive heap implementation.
|
2019-05-21 00:33:36 +02:00 |
|
jespergravgaard
|
b3041e326d
|
Optimizing compiler passes
|
2019-05-21 00:05:17 +02:00 |
|
jespergravgaard
|
bc699a9e27
|
Added utoa16(). Fixed early constant identification not taking procedure parameters into account.
|
2019-05-20 23:41:58 +02:00 |
|
Jesper Gravgaard
|
2b26c813d9
|
Rafactoring pass 2
|
2019-05-20 11:01:58 +02:00 |
|
Jesper Gravgaard
|
27c6c3fb86
|
Rafactoring pass 2
|
2019-05-20 10:54:06 +02:00 |
|
Jesper Gravgaard
|
77d24eddc6
|
Rafactoring pass 2
|
2019-05-20 10:47:53 +02:00 |
|
Jesper Gravgaard
|
5d988dd859
|
Rafactoring pass 2
|
2019-05-20 10:36:58 +02:00 |
|
Jesper Gravgaard
|
9864995afb
|
Created utoa10 with smaller memory footprint.
|
2019-05-19 21:17:39 +02:00 |
|
jespergravgaard
|
2ec68d6fd5
|
added hex2dec test
|
2019-05-19 09:31:12 +02:00 |
|
jespergravgaard
|
6246871538
|
Fixed tests
|
2019-05-19 01:16:12 +02:00 |
|
jespergravgaard
|
f31dc244b5
|
fixed tests
|
2019-05-19 00:07:52 +02:00 |
|
jespergravgaard
|
fa6e54fb87
|
Added test ref
|
2019-05-18 23:58:24 +02:00 |
|
jespergravgaard
|
b5a9d47472
|
Improved code by avoiding unnecesary casts
|
2019-05-18 23:58:04 +02:00 |
|
jespergravgaard
|
abfa6f875f
|
Added a few tests
|
2019-05-18 22:40:46 +02:00 |
|
jespergravgaard
|
eed4018450
|
Added a blitter box
|
2019-05-18 22:07:16 +02:00 |
|
jespergravgaard
|
9cec38d075
|
Fixed negative numbers, zero-addition, zero inlining.
|
2019-05-18 21:37:34 +02:00 |
|
jespergravgaard
|
fe41c2ba42
|
Fixed array indexing using word-size indices
|
2019-05-18 13:58:26 +02:00 |
|
jespergravgaard
|
06aed186e2
|
Fixed type inference for rangenext
|
2019-05-18 12:43:13 +02:00 |
|
jespergravgaard
|
13cc9e453c
|
Fixed a few tests. +0 in derefidx and rangenext() on signed words.
|
2019-05-18 12:23:13 +02:00 |
|
jespergravgaard
|
855434afa9
|
Added missing fragment and ternary type inference test
|
2019-05-18 08:51:22 +02:00 |
|
jespergravgaard
|
9f27006540
|
Working on casts
|
2019-05-18 08:14:34 +02:00 |
|
Jesper Gravgaard
|
c200eaa535
|
Working on casts
|
2019-05-18 00:37:09 +02:00 |
|
jespergravgaard
|
0876603ca7
|
Working on casts
|
2019-05-17 08:55:04 +02:00 |
|
jespergravgaard
|
71cedd4d29
|
Working on fixing casts.
|
2019-05-17 01:07:47 +02:00 |
|
Jesper Gravgaard
|
17a0db4472
|
Minor fixes
|
2019-05-16 08:51:14 +02:00 |
|
jespergravgaard
|
6cfa5c750c
|
Implemented cast constant identification. 282/359
|
2019-05-14 00:16:17 +02:00 |
|
jespergravgaard
|
6e0b665423
|
Added an array initializer with negative values.
|
2019-05-13 09:24:23 +02:00 |
|
jespergravgaard
|
3d56f3705a
|
Array initializer with number handling - 278/358
|
2019-05-13 09:17:30 +02:00 |
|
jespergravgaard
|
fe60b31f73
|
New literal word constructor handling - 277/354
|
2019-05-12 21:18:55 +02:00 |
|
jespergravgaard
|
07b67efb7c
|
Eliminating SymbolTypeMulti - 274/351
|
2019-05-12 14:42:41 +02:00 |
|
jespergravgaard
|
7767c1216b
|
Added missing fragment - 274/351
|
2019-05-12 14:32:16 +02:00 |
|
jespergravgaard
|
ef05cc8c3b
|
Eliminating SymbolTypeMulti - 273/351
|
2019-05-12 13:56:04 +02:00 |
|
jespergravgaard
|
8db7736830
|
Improved no-cast detection. 273/351
|
2019-05-12 13:51:36 +02:00 |
|
jespergravgaard
|
e09d81cd13
|
Improved no-cast detection. 271/351
|
2019-05-12 12:59:47 +02:00 |
|
jespergravgaard
|
6e566852ba
|
Fixed assignment type conversions and unnecesary byte/word casts. 269/351
|
2019-05-12 12:27:48 +02:00 |
|
Jesper Gravgaard
|
e56e66acd8
|
Working on multiply/divide.
|
2019-05-11 23:16:03 +02:00 |
|
Jesper Gravgaard
|
bd6ece561b
|
Fixed multiply to shift. 260/351.
|
2019-05-11 20:14:14 +02:00 |
|
Jesper Gravgaard
|
3c8845d6a6
|
Added alias elimination to constant optimization phase. 255/351.
|
2019-05-11 19:55:03 +02:00 |
|
Jesper Gravgaard
|
51c10d29c3
|
Working on fixing type conversion casting. Still a work in progress!
|
2019-05-10 11:20:37 +02:00 |
|
jespergravgaard
|
f6f25e728b
|
Working on special word+byte downgrade. - down to 190/351.
|
2019-05-09 07:43:47 +02:00 |
|
jespergravgaard
|
ea990b5e87
|
Working on fixing test errors - fixed pointer-dereference-indexed - 228/350 working.
|
2019-05-08 23:24:48 +02:00 |
|
jespergravgaard
|
64a8389e6e
|
Working on fixing test errors - 228/350 working.
|
2019-05-08 00:11:33 +02:00 |
|
jespergravgaard
|
21b3114b58
|
Working on fixing test errors - 202/350 working.
|
2019-05-07 23:39:57 +02:00 |
|
jespergravgaard
|
cab95b6ba5
|
Working on fixing test errors - 198/350 working.
|
2019-05-07 22:08:59 +02:00 |
|
jespergravgaard
|
44e9cff722
|
Working on fixing test errors - 198/350 working.
|
2019-05-07 21:53:08 +02:00 |
|
jespergravgaard
|
82729cb4d9
|
Working on fixing test errors - 196/350 working.
|
2019-05-07 21:03:26 +02:00 |
|
jespergravgaard
|
47aa623f25
|
Working on fixing test errors.
|
2019-05-07 18:52:01 +02:00 |
|
jespergravgaard
|
87e6fecb8f
|
Working on fixing test errors.
|
2019-05-07 09:19:50 +02:00 |
|
jespergravgaard
|
b097b5c2c5
|
Working on fixing test errors.
|
2019-05-07 01:46:23 +02:00 |
|
jespergravgaard
|
7e174898b8
|
Number conversion working. Added program expression iterator.
|
2019-05-07 00:59:54 +02:00 |
|
jespergravgaard
|
49ae6a0e66
|
Working on number conversion... not compiling atm.
|
2019-05-06 08:06:18 +02:00 |
|
jespergravgaard
|
d0d5b5715b
|
Implemented framework for number type conversion - the BinaryExpressionIterator. Added first case (type match) in new PassNAddNumberTybeConversions.
|
2019-05-06 01:08:41 +02:00 |
|
jespergravgaard
|
35ec65ce94
|
Implemented much of integer type conversion and the number type. Still a lot left to do.
|
2019-05-05 01:26:40 +02:00 |
|
jespergravgaard
|
facd8c6c5b
|
Expanded testing of types to include operators
|
2019-05-03 08:45:33 +02:00 |
|
jespergravgaard
|
eb895fffef
|
Added parser for typed integer literal postfix (ub/sb/uc/sc/uw/sw/ui/si/us/ss/ud/sd/ul/sl and l)
|
2019-05-02 01:23:49 +02:00 |
|
jespergravgaard
|
fd72ecc0c7
|
Added syntax for typed integer literal postfix (ub/sb/uc/sc/uw/sw/ui/si/us/ss/ud/sd/ul/sl and l)
|
2019-04-27 12:12:44 +02:00 |
|
jespergravgaard
|
93937b60d0
|
Merge remote-tracking branch 'origin/master' into 180-type-system
|
2019-04-27 08:13:57 +02:00 |
|
jespergravgaard
|
4735c8940b
|
Added fixed comments to sandbox
|
2019-04-27 08:13:44 +02:00 |
|
jespergravgaard
|
e43a2e2c61
|
Added assert securing that phi predecessors are direct predecessors.
|
2019-04-27 08:04:44 +02:00 |
|
Jesper Gravgaard
|
c64713c913
|
Fixed char - number. Closes #184.
Also fixed problem with nested ternary. Closes #185.
|
2019-04-25 07:58:17 +02:00 |
|
jespergravgaard
|
58502ecf79
|
Added issue links to most coments. Added separate test demonstrating nested ternary problem.
|
2019-04-24 00:46:45 +02:00 |
|
jespergravgaard
|
7edc154133
|
Added Paul Nelsen sandbox test of sivision - with sprintf skeleton implementation.
|
2019-04-23 23:26:47 +02:00 |
|
jespergravgaard
|
1fa41859b0
|
Starting work on type system.
|
2019-04-23 20:42:18 +02:00 |
|
jespergravgaard
|
21d7c6849c
|
Added tests failing due to constant type interference problems. Working on #181
|
2019-04-22 13:47:22 +02:00 |
|
jespergravgaard
|
88e3ad66b7
|
Fixed test.
|
2019-04-22 13:35:52 +02:00 |
|
jespergravgaard
|
7427c8bbcf
|
Added typeid(expr) that returns byte representing the type of the expression. Closes #180
|
2019-04-22 11:50:48 +02:00 |
|
jespergravgaard
|
94bd8cef0a
|
Added support for special types signed/unsigned (that are implicitly int). Closes #158
|
2019-04-22 09:20:14 +02:00 |
|
jespergravgaard
|
e9ece1a8f0
|
REmoved wrong dependency.
|
2019-04-21 21:13:08 +02:00 |
|
jespergravgaard
|
7db4308b94
|
Implemented de-inlining of ptr[w] with word-size indexes.
|
2019-04-21 01:22:14 +02:00 |
|
jespergravgaard
|
957fe13e4e
|
Improved word array test.
|
2019-04-21 00:26:18 +02:00 |
|
jespergravgaard
|
6b287741b5
|
Removed unused fragments.
|
2019-04-20 23:52:29 +02:00 |
|
jespergravgaard
|
c44fe2138a
|
Changed syntax a bit
|
2019-04-20 23:02:39 +02:00 |
|
jespergravgaard
|
fc75878f9d
|
Now optimizing *(ptr+n) into ptr[n] when possible.
|
2019-04-20 22:12:56 +02:00 |
|
jespergravgaard
|
d6427d58df
|
Eliminating redundant casts.
|
2019-04-20 13:08:12 +02:00 |
|
jespergravgaard
|
27444f7c7d
|
Implemented test simulating a struct.
|
2019-04-20 11:13:49 +02:00 |
|
jespergravgaard
|
5da972b5b2
|
Improved test.
|
2019-04-20 01:48:11 +02:00 |
|
jespergravgaard
|
1ea5a3af76
|
Added directive reserve($02, $03, $04) for reserving zero page variables to avoid the compiler using them. Directive can be added to functions or globally. Closes #133
|
2019-04-20 01:44:54 +02:00 |
|
jespergravgaard
|
fc79ac187e
|
Updated version number
|
2019-04-19 13:52:09 +02:00 |
|
jespergravgaard
|
85b904b46f
|
Updated manual.
|
2019-04-19 13:50:48 +02:00 |
|
jespergravgaard
|
dda11749e2
|
Tests now working with proper word/dword-array indexing! Closes #139
|
2019-04-19 13:36:08 +02:00 |
|
jespergravgaard
|
5a54b45ed9
|
Fixing more tests with word arrays/pointers. Preparing for #139
|
2019-04-19 11:56:21 +02:00 |
|
jespergravgaard
|
4e93f0b056
|
Fixing more tests with word arrays/pointers. Preparing for #139
|
2019-04-19 11:25:29 +02:00 |
|
jespergravgaard
|
898dc3e833
|
Fixing more tests with word arrays/pointers. Preparing for #139
|
2019-04-19 11:16:40 +02:00 |
|
jespergravgaard
|
4f04aa47b7
|
Fixing tests with word arrays/pointers. Preparing for #139
|
2019-04-19 10:50:15 +02:00 |
|
Jesper Gravgaard
|
eb26618295
|
Fixed issue where compound addignments multiplied the index by sizeof() squared.
|
2019-04-19 08:42:42 +02:00 |
|
jespergravgaard
|
46e2f3ced4
|
Implemented pointer array indexing sizeof() fixing
|
2019-04-18 01:26:51 +02:00 |
|
jespergravgaard
|
287a6ecb2e
|
Implemented pointer math (+/-) fixing
|
2019-04-18 01:06:22 +02:00 |
|
jespergravgaard
|
85317a1c5e
|
Working on pointer math and sizeof(element)
|
2019-04-18 00:32:28 +02:00 |
|
jespergravgaard
|
7b157f9b44
|
Added tests suitable for changing word-pointer behavior. Preparing for #139
|
2019-04-17 23:58:10 +02:00 |
|
jespergravgaard
|
d55a958c70
|
Implemented sizeof(expr). Closes #171
|
2019-04-17 21:27:32 +02:00 |
|
jespergravgaard
|
417a1d4b22
|
Implemented sizeof(type).
|
2019-04-17 09:34:10 +02:00 |
|
jespergravgaard
|
0116dcfe55
|
Brought fire sample closer to the original.
|
2019-04-16 00:45:21 +02:00 |
|
jespergravgaard
|
f41744cd96
|
Added support for comma-separated variable declarations in for()-loop init. Closes #159
|
2019-04-16 00:22:47 +02:00 |
|
jespergravgaard
|
24ca7e9c68
|
Implemented support for comma-separated variable declarations.
|
2019-04-15 23:13:15 +02:00 |
|
jespergravgaard
|
0f5d8f906b
|
Added support for comma-expressions (and fixed non-working unused variable elimination). Closes #157
|
2019-04-15 14:03:50 +02:00 |
|
jespergravgaard
|
f5afa992c1
|
Updated testdata.
|
2019-04-15 11:53:07 +02:00 |
|
jespergravgaard
|
aecf1ea7b2
|
Optimized unrolled plasma to ~16.500 cycles per screen.
|
2019-04-15 11:31:15 +02:00 |
|
jespergravgaard
|
8234877eeb
|
Fixed error where classic for() failed when init was empty. Closes #163
|
2019-04-15 10:44:18 +02:00 |
|
jespergravgaard
|
50c54e2d36
|
Fixed error where classic for() failed when increment was empty. Closes #160
|
2019-04-15 10:37:00 +02:00 |
|
jespergravgaard
|
21f65d7ddf
|
Rewrote many example routines to use multiply/divide instead of shifts.
|
2019-04-15 10:20:55 +02:00 |
|
jespergravgaard
|
056289aaaf
|
Rewrote d018/dd00 routines to use multiply/divide.
|
2019-04-15 09:54:48 +02:00 |
|
jespergravgaard
|
dfe6663082
|
Added handling of *1 / /1.
|
2019-04-15 09:44:32 +02:00 |
|
jespergravgaard
|
38d67ea581
|
Merge remote-tracking branch 'origin/master'
|
2019-04-15 09:33:59 +02:00 |
|
jespergravgaard
|
5f1496e33d
|
Implemented rewriting of multiply/divide by powers of 2 to shifts. Closes #165
|
2019-04-15 09:33:49 +02:00 |
|
Jesper Gravgaard
|
dd99f73b8e
|
Merge remote-tracking branch 'origin/master'
|
2019-04-11 22:24:25 +02:00 |
|
Jesper Gravgaard
|
c8cfb3406c
|
Changed comparison rewriting to only rewrite when comparing to bytes (not words).
|
2019-04-11 22:24:07 +02:00 |
|
jespergravgaard
|
c61b1556cd
|
Optimized imports etc.
|
2019-04-11 21:17:43 +02:00 |
|
Travis Fisher
|
c9cce92509
|
make live range analysis use statement index instead of statement where it helps with speed
|
2019-04-11 00:14:31 -04:00 |
|
Travis Fisher
|
b81349b3de
|
make StatementInfos map control flow block objects instead of labelRef's (~5% compiler speedup)
|
2019-04-10 22:22:17 -04:00 |
|
Travis Fisher
|
1f54a91463
|
use static array of short number strings (~3% test speedup)
|
2019-04-10 19:47:54 -04:00 |
|
Jesper Gravgaard
|
97f88fb128
|
Fixed comparison optimization to ignore 0
|
2019-04-10 16:06:03 +02:00 |
|
Jesper Gravgaard
|
15acdc3752
|
Merged with master.
|
2019-04-10 13:52:57 +02:00 |
|
Jesper Gravgaard
|
070fb7937d
|
Implemented comparison rewriting optimization.
|
2019-04-10 11:12:49 +02:00 |
|
jespergravgaard
|
c9768022af
|
Optimized unrolled plasma more by moving x-value lookup outside the unrolled loop.
|
2019-04-10 08:27:36 +02:00 |
|
Travis Fisher
|
073845093b
|
store symbol full names instead of constructing on demand. (~5% overall compiler speed improvement)
|
2019-04-09 23:09:42 -04:00 |
|
jespergravgaard
|
fa2024296b
|
Added more pointer cast tests
|
2019-04-09 22:58:42 +02:00 |
|
jespergravgaard
|
9a707c250e
|
Added pointer cast test
|
2019-04-09 21:30:21 +02:00 |
|
jespergravgaard
|
82b394a80f
|
Minor syntax changes.
|
2019-04-09 01:40:38 +02:00 |
|
jespergravgaard
|
23e3533064
|
Merged Travis Fishers upstream optimizations. Closes #92
|
2019-04-09 01:22:47 +02:00 |
|
jespergravgaard
|
bce68180ef
|
Merge branch 'master' of https://gitlab.com/tfisher98/kickc
|
2019-04-09 00:59:19 +02:00 |
|
jespergravgaard
|
756d5c22d5
|
Strings zer now zero-terminated by default. To avoid zero-termination use suffix z - eg. "qwe"z is not zero-terminiated. Closes #137
|
2019-04-09 00:51:53 +02:00 |
|
Travis Fisher
|
7454027829
|
update reference results
|
2019-04-08 18:25:03 -04:00 |
|
Travis Fisher
|
0bc03ffdb0
|
add deep nesting test program
|
2019-04-08 18:05:25 -04:00 |
|
Travis Fisher
|
68a737cf0f
|
Merge branch 'master' of https://gitlab.com/camelot/kickc
|
2019-04-08 17:31:16 -04:00 |
|
jespergravgaard
|
c3849c78b0
|
Added support for void parameter lists. Closes #161
|
2019-04-08 23:27:05 +02:00 |
|
jespergravgaard
|
9a9e4f456e
|
Added more fragments.
|
2019-04-08 21:25:54 +02:00 |
|
jespergravgaard
|
44a5f66a7c
|
Added fire sample from CC65. (~100.000 cycles per update in KickC vs ~300.000 in CC65). Fixed tests. Added some signed fragments.
|
2019-04-08 20:54:23 +02:00 |
|
jespergravgaard
|
b2a0b629e3
|
Changed plasma routines to use standard C types.
|
2019-04-08 16:33:52 +02:00 |
|
jespergravgaard
|
63f10a28de
|
Added support for standard C types (char, short, int, long). Closes #108
|
2019-04-08 16:26:39 +02:00 |
|
jespergravgaard
|
c613edf2b2
|
Updated test data.
|
2019-04-08 09:12:00 +02:00 |
|
jespergravgaard
|
41029fec17
|
Added plasma with unrolled inner loop for ~50fps.
|
2019-04-08 09:00:48 +02:00 |
|
Travis Fisher
|
47d2f74690
|
put caches associated to pass n variable reference infos back out of control flow block class
|
2019-04-08 01:16:31 -04:00 |
|
Travis Fisher
|
b7b01a89a8
|
speed improvement in pass n variable reference infos
|
2019-04-07 23:57:38 -04:00 |
|
Travis Fisher
|
7393d095b9
|
speed improvement in pass n variable reference infos
|
2019-04-07 23:09:50 -04:00 |
|
jespergravgaard
|
7b23951eb2
|
Fixed tests after adding fragment.
|
2019-04-08 01:42:00 +02:00 |
|
jespergravgaard
|
35659a67be
|
Ported plasma sample from CC65 to KickC.
|
2019-04-08 00:44:09 +02:00 |
|
Travis Fisher
|
2ee07b0806
|
store compiled regexes for speed
|
2019-04-07 16:05:34 -04:00 |
|
jespergravgaard
|
23b1f15101
|
Added support for more complex ternary expressions.
|
2019-04-07 18:35:50 +02:00 |
|
jespergravgaard
|
67b97130b7
|
Implemented ternary operator. Closes #77
|
2019-04-07 17:59:44 +02:00 |
|
jespergravgaard
|
e1cf957b2f
|
Pointers to pointers working. Closes #156
|
2019-04-07 13:35:23 +02:00 |
|
jespergravgaard
|
a334855da8
|
Pointers to noargs functions working pretty well. Closes #120
|
2019-04-07 11:08:39 +02:00 |
|
jespergravgaard
|
ca9453346b
|
Added missing RTS after jsr main
|
2019-04-06 11:53:56 +02:00 |
|
Travis Fisher
|
d3b4e895dc
|
use cheaper hash function for speed improvement
|
2019-04-04 21:47:37 -04:00 |
|
jespergravgaard
|
9ccc5d828f
|
Improved pointer-to-pointer functionality significantly.
|
2019-04-05 01:05:15 +02:00 |
|
jespergravgaard
|
44b6ed1fb8
|
Improved test.
|
2019-04-04 20:49:07 +02:00 |
|
jespergravgaard
|
64b3a07ee6
|
Added all functions that become pointers as separate thread heads.
|
2019-04-04 20:45:52 +02:00 |
|
jespergravgaard
|
10dd5e4c7b
|
Added support for arrays containing pointers for noargs functions.
|
2019-04-04 19:23:38 +02:00 |
|
jespergravgaard
|
ec6404bafd
|
Added support for functions returning constant pointers to functions.
|
2019-04-04 19:01:47 +02:00 |
|
jespergravgaard
|
c6597a2736
|
Added support for functions returning pointers to functions.
|
2019-04-04 18:45:57 +02:00 |
|
jespergravgaard
|
06b90b6ee3
|
Refactored code to reuse ProgramValueIterator and Scope features.
|
2019-04-04 17:58:28 +02:00 |
|
jespergravgaard
|
e258b9593d
|
Function pointers now working both when constant and variable (in simple noargs non-scope-crossing cases with no local variables in the referenced functions.)
|
2019-04-04 17:44:14 +02:00 |
|
Travis Fisher
|
54e79d91a1
|
try again update test reference. maven config for tests in parallel.
|
2019-04-02 21:41:57 -04:00 |
|
jespergravgaard
|
3434a695d2
|
Implemented a bunch of the foundation needed for function pointers - incl. the parser and handling of pointers in zeropage variables.
|
2019-04-03 00:03:37 +02:00 |
|
jespergravgaard
|
de8c42eba8
|
Fixed problem with overlapping variables in threads.
|
2019-04-02 22:31:26 +02:00 |
|
Travis Fisher
|
c78aef2312
|
update test reference results
|
2019-04-02 02:28:13 -04:00 |
|
Travis Fisher
|
7784f174b7
|
replace jmp to rts with rts in double jump elimination pass
|
2019-04-01 18:14:18 -04:00 |
|
jespergravgaard
|
fe9a9005ed
|
Added test with both break & continue. Added SID-files to assembly.
|
2019-03-31 23:32:25 +02:00 |
|
jespergravgaard
|
7687163a4a
|
Added synth rule to detect missing C1 and move down the other Cs using mapC. This lowers the number of rules since rules rewriting C1 no longer need to avoid twoC or use mapC. A similar rule was added for missing C2s and mapC3.
|
2019-03-31 22:34:28 +02:00 |
|
jespergravgaard
|
f773c96cbc
|
Removed all fragments using _derefidx_vbs.. - and replaced them with a synthesis rule.
|
2019-03-31 22:01:08 +02:00 |
|
jespergravgaard
|
2d7825a0b9
|
Implemented continue statement. Closes #91
|
2019-03-31 20:15:01 +02:00 |
|
Jesper Gravgaard
|
4424ffe92c
|
Implemented loop break.
|
2019-03-31 17:57:54 +02:00 |
|
Jesper Gravgaard
|
547cfb6237
|
Merge remote-tracking branch 'origin/master'
|
2019-03-31 17:49:54 +02:00 |
|
Jesper Gravgaard
|
03296d9173
|
Moved in attempt to avoid conflict.
|
2019-03-31 17:49:50 +02:00 |
|
Jesper Gravgaard
|
864c79335f
|
Implemented break statement breaking out of the current loop.
|
2019-03-31 17:38:21 +02:00 |
|
jespergravgaard
|
613322153e
|
Added synthesis rules suggested by Travis Fisher allowing synthesis of pbuc1_derefidx_vbuxx / pbuc1_derefidx_vbuyy also when C1 is used elsewhere in the fragment.
|
2019-03-31 17:35:16 +02:00 |
|
jespergravgaard
|
d13ca4e03b
|
Implemented block label renumbering ensuring generated ASM labels are slightly more sensible to the reader.
|
2019-03-31 17:10:43 +02:00 |
|
jespergravgaard
|
126813ff4e
|
Implemented local scopes for blocks - enabling reuse of variable names (for instance in for loops). Closes #64
|
2019-03-30 00:15:53 +01:00 |
|
jespergravgaard
|
825e60ed62
|
Shortcut the callgraph thread analysis when max 1 thread in the entire program.
|
2019-03-29 20:58:48 +01:00 |
|
jespergravgaard
|
7fcb6e525a
|
Fixed problem where zeropage allocations inside IRQ and outside could overlap. Closes #154
|
2019-03-29 08:01:02 +01:00 |
|
jespergravgaard
|
c81147f60f
|
Fixed problem with volatile booleans being allocated to registers. Closes #153
|
2019-03-27 22:54:01 +01:00 |
|
jespergravgaard
|
c696d9610e
|
Added parenthesis to negative immediates to AXS.
|
2019-03-27 07:47:31 +01:00 |
|
jespergravgaard
|
667cbde56f
|
Added a lot of optimizing fragments using illegal opcodes (Thanks Travis Fisher!)
Added synth rule for vubc's.Updated tests.
|
2019-03-26 23:49:45 +01:00 |
|
jespergravgaard
|
0993be3f01
|
Added example of music routines.
|
2019-03-26 21:27:36 +01:00 |
|
jespergravgaard
|
022d77fc56
|
Implemented early constant identification to avoid unnecessary variable versioning. Closes #53
|
2019-03-22 19:50:20 +01:00 |
|
jespergravgaard
|
c280a3b14a
|
Fixed NPE when using booleans in if()/while(). Closes #152
|
2019-03-22 07:25:55 +01:00 |
|
jespergravgaard
|
4ad601ce72
|
Added fragment for subtracting unsigned byte from signed word.
|
2019-03-21 22:24:39 +01:00 |
|
jespergravgaard
|
8e2de5f79b
|
Updated fragment tests
|
2019-03-20 21:45:30 +01:00 |
|
Jesper Gravgaard
|
2989f16593
|
Added synthesis for using X/Y registers as intermediates when encountering pb.c1_derefidx_vbuyy/xx.
|
2019-03-20 17:09:22 +01:00 |
|
jespergravgaard
|
e48a4538bc
|
Added updated reference manual.
|
2019-03-20 08:05:49 +01:00 |
|
jespergravgaard
|
9a50e54928
|
Fixed optimization of constant addition in double array indexing. Closes #150
|
2019-03-20 07:20:00 +01:00 |
|
jespergravgaard
|
5791875d2d
|
Added clobber directive to inline kickasm.
|
2019-03-19 07:48:16 +01:00 |
|
jespergravgaard
|
f67a5bc897
|
Added clobber handling to inline ASM. Added clobbers directive to specify what is clobbered. If inline ASM has a JSR and no clobbers directive all registers are assumed to be clobbered. Closes #5
|
2019-03-18 20:54:08 +01:00 |
|
jespergravgaard
|
5cf5d88228
|
Implemented handling of default successor PHI blocks in logical or if()'s. Closes #149
|
2019-03-18 18:25:50 +01:00 |
|
jespergravgaard
|
ff716c0343
|
Implemented handling of deafult successor PHI blocks in
|
2019-03-18 18:24:03 +01:00 |
|
jespergravgaard
|
651bd87eaa
|
Fixed test
|
2019-03-18 02:26:13 +01:00 |
|
jespergravgaard
|
ca697a4ffd
|
Improved a plus fragment to use bcc
|
2019-03-18 02:23:29 +01:00 |
|
jespergravgaard
|
9bb967b33f
|
Implemented ASM fragment synthesis variations searching - looking through different potential fragments when generating ASM containing a constant number that matches multiple potential types.
|
2019-03-18 02:08:32 +01:00 |
|
jespergravgaard
|
d459332be1
|
Updated tests with better ASM
|
2019-03-17 22:52:25 +01:00 |
|
jespergravgaard
|
93d36f25be
|
Updated tests with better ASM
|
2019-03-17 22:49:02 +01:00 |
|
Jesper Gravgaard
|
dc76b2bed0
|
Added a lot of signed word and boolean fragments from Travis Fisher.
|
2019-03-16 17:54:38 +01:00 |
|
Jesper Gravgaard
|
ba560796dd
|
Added uses directive to inline kickasm to allow declaring used constants to prevent that they are optimized away as unused. Closes #147
|
2019-03-16 00:33:16 +01:00 |
|
jespergravgaard
|
f6dd66f3cb
|
Added support for cross-scope references inside inline ASM.
|
2019-03-15 07:59:25 +01:00 |
|
jespergravgaard
|
71743540c6
|
Added support for non-multi labels within inline ASM.
|
2019-03-15 00:30:14 +01:00 |
|
jespergravgaard
|
b4ccdef0f0
|
Problem with constant if() has been fixed!
|
2019-03-15 00:13:24 +01:00 |
|
jespergravgaard
|
4eed4f7659
|
Implemented proper handling of referenced to constants inside inline ASM. Closes #146
|
2019-03-15 00:02:33 +01:00 |
|
jespergravgaard
|
d293c47141
|
Added tests for inline assembler & kickassembler.
|
2019-03-14 23:09:50 +01:00 |
|
jespergravgaard
|
fa6ed8bff6
|
Improved compiler errors - removing exception trace and using proper exit code.
|
2019-03-12 18:14:45 +01:00 |
|
jespergravgaard
|
6adb0c6d2d
|
Improved verbosity for fragment debug output.
|
2019-03-12 17:59:35 +01:00 |
|
jespergravgaard
|
ad6a1910c8
|
Added another 2 word fragments. Added compiler commandline option to show fragment -fragment <signature>. Closes #145
|
2019-03-12 17:53:33 +01:00 |
|
Jesper Gravgaard
|
ea98c9e2eb
|
Added two additional signed word fragments.
|
2019-03-11 11:09:12 +01:00 |
|
jespergravgaard
|
8a560a294b
|
Added two missing signed word fragments.
|
2019-03-11 07:49:41 +01:00 |
|
jespergravgaard
|
3090fe4849
|
Added missing line number to error when encountering symbol that has already been declared.
|
2019-03-10 09:29:02 +01:00 |
|
jespergravgaard
|
241f8bec4d
|
Added two missing fragments and a test.
|
2019-03-10 08:24:30 +01:00 |
|
jespergravgaard
|
c2fb30a776
|
Limited fragment testing to speed it up.
|
2019-03-10 07:57:11 +01:00 |
|
jespergravgaard
|
b04edfb241
|
Added needed synthesis rules.
|
2019-03-10 01:44:47 +01:00 |
|
jespergravgaard
|
c89b4bc6b0
|
Removed rules slowing down the fragment synthesizer awaiting improvements to the synthesizer.
|
2019-03-10 01:14:35 +01:00 |
|
jespergravgaard
|
6bc35f6c34
|
Restructured fragment tests to use less memory.
|
2019-03-09 23:50:50 +01:00 |
|
jespergravgaard
|
980fc0aeb5
|
Working to improve fragment synthesis.
|
2019-03-09 20:58:51 +01:00 |
|
jespergravgaard
|
5a83c1b357
|
Fixed clobber problem that can occur during PHI transitions. Closes #10
|
2019-03-09 18:37:23 +01:00 |
|
jespergravgaard
|
4d8e083a21
|
Improved fragment synthesis of p..z1_deref_vbuaa=... to use TAY when possible.
|
2019-03-09 16:39:24 +01:00 |
|
jespergravgaard
|
a65404d7b6
|
Fixed signed word comparisons. Added tests of word comparisons. Improved fragment synthesis of p..z1_deref_vbuaa=... / p..z1_deref_vbuxx=...
|
2019-03-09 16:24:44 +01:00 |
|
jespergravgaard
|
cb8018b92a
|
Added missing word fragments. Added test of unsigned word comparisons.
|
2019-03-09 14:24:51 +01:00 |
|
jespergravgaard
|
c59f18eb82
|
Added two missing word fragments.
|
2019-03-08 22:00:28 +01:00 |
|
jespergravgaard
|
183494e141
|
Fixed infinite compiler loop when complex loops contain &&. Closes #144
|
2019-03-08 21:43:37 +01:00 |
|
jespergravgaard
|
ac73bb15e3
|
Improved number formatting of inegers in log/messages.
|
2019-03-08 06:54:46 +01:00 |
|
jespergravgaard
|
39e727711a
|
Added missing error location for illegal lvalues. Closes #143
|
2019-03-08 06:33:59 +01:00 |
|
jespergravgaard
|
0aebd2a9a1
|
Fixed error in boolean fragments.
|
2019-03-07 07:29:47 +01:00 |
|
jespergravgaard
|
3e39383963
|
Fixed error in boolean fragments.
|
2019-03-07 07:23:26 +01:00 |
|
jespergravgaard
|
0ca54a97ad
|
Added two missing word fragments.
|
2019-03-07 06:48:32 +01:00 |
|
jespergravgaard
|
0362e12880
|
Implemented default zero values for variables without ant initializer. Closes #140
|
2019-03-06 23:52:14 +01:00 |
|
jespergravgaard
|
ec863e5c43
|
Added line number to type inference errors. Closes #142
|
2019-03-04 23:55:38 +01:00 |
|
jespergravgaard
|
5e7d908018
|
Better error when assigning an undeclared variable. Closes #141
|
2019-03-04 23:38:07 +01:00 |
|
jespergravgaard
|
20cce60f40
|
Only removing intermediates that contain lo/hi operator.
|
2019-03-01 08:47:12 +01:00 |
|
jespergravgaard
|
ed2d992333
|
Fixed problem, where assigning to low/high value left an unused intermediate variable. Closes #129
|
2019-03-01 00:27:26 +01:00 |
|
jespergravgaard
|
de58d9b6dd
|
Added missing ref files
|
2019-02-24 23:24:20 +01:00 |
|
jespergravgaard
|
0a955d6bec
|
Finished constant string consolidation. Closes #90
|
2019-02-24 23:23:57 +01:00 |
|