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 |
|