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

1307 Commits

Author SHA1 Message Date
jespergravgaard
0a58b03094 Constant loop head identification working. #246 is essentially complete. A few program grow to much from the optimization - this needs attention at some point. 2019-08-07 01:32:46 +02:00
jespergravgaard
50b59555fc Added bool-ifs-min test demonstrating problem with constant loop head optimization 2019-08-06 09:08:10 +02:00
jespergravgaard
e167f8dce8 Fixed almost all problems in constant loop head identification. A few program becomes infinite loops - needs fixing! A few also become way to long when rewritten - probably detect & rollback. 2019-08-06 01:10:57 +02:00
Jesper Gravgaard
c63b031dbe Implemented new Unroller that can copy a set of blocks in the control flow graph and handles block transitions according to a specified strategy. Moved loop-unroll implementation to the new Unroller. 2019-08-05 17:32:37 +02:00
jespergravgaard
af5bb803c1 Working on optimizing constant loop heads (Pass2LoopHeadConstantIdentification). #246 2019-08-04 08:49:34 +02:00
jespergravgaard
3d0f0b648d Working on optimizing constant loop heads (Pass2LoopHeadConstantIdentification). #246 2019-08-04 01:50:00 +02:00
jespergravgaard
4807bbded7 Code generation now handles encoding in literal chars. Done 2/3 of #245 2019-08-04 00:13:33 +02:00
jespergravgaard
9e56b49a7e Added encoding information to literal chars. Working on 2/3 of #245 2019-08-03 14:08:48 +02:00
jespergravgaard
7f3cfd50af Working on fixing problem with encoding of literal chars. 1/3 done. #245 2019-08-03 13:32:34 +02:00
jespergravgaard
198280e1c8 Snapshotting program dynamic state now working through Serialization. Working on #246 2019-08-03 13:22:27 +02:00
jespergravgaard
aceea6d8ec Refactored more program data to be calculated on demand. 2019-08-02 01:25:32 +02:00
jespergravgaard
0a39633ed8 Refactored phi transitions and symbol infos to be calculated on demand. 2019-08-02 00:43:47 +02:00
jespergravgaard
1e03067814 Refactored control flow graph dominators to be calculated on demand. 2019-08-02 00:32:53 +02:00
jespergravgaard
693a0bdbed Refactored variable reference infos to be calculated on demand. 2019-08-02 00:11:54 +02:00
jespergravgaard
1f39ab8c37 Refactored call-graph to be calculated on demand. 2019-08-01 23:52:05 +02:00
jespergravgaard
bc1dd78bd8 Implemented program snapshot and better PASS separation. Preparing for optimizations that require experimentation (snapshot/restore state). 2019-08-01 23:00:58 +02:00
jespergravgaard
764e0c1069 Added some basic loop tests. 2019-08-01 21:15:33 +02:00
jespergravgaard
a006e67f82 Upgraded to KickAss 5.8. Closes #243 2019-08-01 12:58:40 +02:00
jespergravgaard
129cad782b Fixed test 2019-08-01 11:03:19 +02:00
jespergravgaard
bb27de00ce added comment 2019-07-31 16:08:16 +02:00
jespergravgaard
832a104c0a Added some reserved addresses for the BASIC sinus generation. 2019-07-31 16:04:21 +02:00
jespergravgaard
f8dfe3743b Implemented light-weight zeropage coalesce. Closes #237 2019-07-31 13:47:22 +02:00
jespergravgaard
869a2dcade Working on extracting zp coalesce logic. 2019-07-31 11:08:33 +02:00
jespergravgaard
2135bb1170 merged masters 2019-07-30 22:29:33 +02:00
jespergravgaard
78f89c927b Added joystick test 2019-07-30 22:28:19 +02:00
Jesper Gravgaard
73fb40a3e3 merged and fixed conflict 2019-07-30 15:01:43 +02:00
Jesper Gravgaard
5ad3bec534 Added two tests. 2019-07-30 14:54:22 +02:00
jespergravgaard
b27c69635b Working on light-weight coalesce #237 2019-07-29 23:50:42 +02:00
jespergravgaard
dc853bcffa Converted letter C to array of struct literal. 2019-07-28 23:11:41 +02:00
jespergravgaard
a50e9e212a Added support for literal arrays of structs by making the literal-identification and literal-handling and code-generation recursive over the value lists. Closes #223 2019-07-28 23:05:30 +02:00
jespergravgaard
44df048e64 Added support for address-of array-element &sieve[j]. Closes #228 2019-07-26 16:12:12 +02:00
jespergravgaard
07b08e3ed7 Renamed struct tests away from "problem-" name. Postponed struct member unwinding for non-variable members. 2019-07-26 14:54:10 +02:00
jespergravgaard
f336907efd Added test refs. 2019-07-26 14:31:37 +02:00
jespergravgaard
a30939e72c Finished fixes for uniwnding struct pointers/arrays. 2019-07-26 14:31:00 +02:00
jespergravgaard
66f6195739 Fixed problem with passing struct inside array as parameter. Closes #224 2019-07-26 13:22:18 +02:00
jespergravgaard
a1ef8ad163 Fixed problem with passing dereferenced struct pointers as parameters. Closes #225 2019-07-26 13:15:54 +02:00
jespergravgaard
0c33353bf8 Fixed problems with sizeof()-handling struct members. Closes #230 2019-07-25 23:06:09 +02:00
jespergravgaard
a9e0c7805f Added error when exhausting zeropage space for variables. Closes #233 2019-07-25 17:26:43 +02:00
jespergravgaard
e8a0694f34 Added support for different target platforms. Added first platforms c64basic and asm6502 (no upstart). Closes #232 2019-07-25 17:06:19 +02:00
jespergravgaard
424f5ce006 Added an extra test. 2019-07-25 14:55:10 +02:00
jespergravgaard
02ff354d3f Dropped SelfPhiEliminate pass - so now phi-variables have value for all predecessor-blocks. Added self-phi-handling to Identical-PHI optimization step instead. Closes #231 2019-07-25 14:35:43 +02:00
jespergravgaard
ca8d68891c Added some word fragments 2019-07-21 21:08:49 +02:00
jespergravgaard
e968cb6de7 Added execute-bit to deploy script. Coded a bit on a sprite font. 2019-07-21 19:02:13 +02:00
Jesper Gravgaard
9231fe18d6 Added splie test creating a (slowly) rotating truetype c. 2019-07-19 02:23:44 +02:00
Jesper Gravgaard
b70b969fe6 Improved C stdlib a little 2019-07-18 13:04:55 +02:00
Jesper Gravgaard
5a0b1a5d57 Added prime sieve test program 2019-07-18 09:47:41 +02:00
Jesper Gravgaard
660d2a8979 Changed print_cls() to use memset(). Fixed error in fragment. 2019-07-18 01:54:16 +02:00
Jesper Gravgaard
25f16b6b87 Added utoa() and ultoa() to print() 2019-07-18 00:45:46 +02:00
Jesper Gravgaard
9e66c01b6c Changed RADIX enum values. 2019-07-17 23:46:07 +02:00
Jesper Gravgaard
31ede3c794 Added utoa() implementation handling binary/octal/decimal & hexadecimal. 2019-07-17 23:38:09 +02:00