1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-01 00:51:12 +00:00
Commit Graph

999 Commits

Author SHA1 Message Date
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