1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-23 08:32:39 +00:00
Commit Graph

889 Commits

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