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

361 Commits

Author SHA1 Message Date
jespergravgaard
939b70aa23 Started implementing new style fragment synthesis rules. Yielding quite good initial optimizations. 2018-01-01 15:09:47 +01:00
Jesper Balman Gravgaard
7913d39a90 Added license 2017-12-31 00:12:09 +00:00
jespergravgaard
269c1343ed Implemented usage sorting and a file details logging option. 2017-12-31 00:15:23 +01:00
jespergravgaard
be37a45e36 Closes #9 2017-12-30 23:55:14 +01:00
jespergravgaard
14616458e5 Used usage module to identify & remove all unneeded fragments. Many unused ones moved into a new "unused" folder to be removed later. 2017-12-30 23:54:27 +01:00
jespergravgaard
aeba75906b Removed all redundant fragment ASM files. 2017-12-30 22:17:42 +01:00
jespergravgaard
4f30cef2d3 Implemented asm template usage statistics. Now prefer synthesis over loading. 2017-12-30 21:59:23 +01:00
jespergravgaard
203af62173 Refactoring fragment synthesis to allow scoring of files & synthesis. 2017-12-30 19:22:44 +01:00
jespergravgaard
58c206cef4 Added more options to CompileLog for controlling verbosity. 2017-12-30 17:31:22 +01:00
jespergravgaard
174346d0f1 Improved Fragment Synthesis - trying all possible combinations. Closes #71 2017-12-30 17:24:30 +01:00
jespergravgaard
66fdfb08a9 Improved ZP detection 2017-12-30 14:18:57 +01:00
jespergravgaard
2367aa93cd Added final score to the log 2017-12-30 13:45:59 +01:00
jespergravgaard
c7b137d631 Added working test for signed multiplication. Refactored AsmFragment synthesis away from relying on vwuc. 2017-12-30 11:55:28 +01:00
jespergravgaard
b95c7e20f5 Moved multiply into a library 2017-12-29 22:45:19 +01:00
jespergravgaard
df227e0b49 Implemented fast multiplication - tested that all results are correct. 2017-12-29 19:35:54 +01:00
jespergravgaard
fa00ecfbbf Test data for alignment test 2017-12-29 18:20:44 +01:00
jespergravgaard
694fb66379 Added data alignment directive for arrays/strings. 2017-12-29 18:20:11 +01:00
jespergravgaard
39925809e3 Removed AsmFragment log again 2017-12-29 16:34:55 +01:00
jespergravgaard
b2a5e5184b Removed AsmFragment log again 2017-12-29 16:19:23 +01:00
jespergravgaard
6b79ecc537 Implemented all fast multiply tables. 2017-12-29 16:05:27 +01:00
jespergravgaard
db6c1f54db Improved log format slightly 2017-12-29 13:53:16 +01:00
jespergravgaard
5ec1070b41 Improved tests for CI 2017-12-29 11:40:03 +01:00
jespergravgaard
31e412bb11 Slimming log output 2017-12-29 11:21:11 +01:00
jespergravgaard
4d4f38bbd5 git ignoring some files 2017-12-29 10:45:55 +01:00
jespergravgaard
7430fc1c5e Moving into the new kickc repository. 2017-12-29 10:44:25 +01:00
jespergravgaard
dff636226e Testing gitlab CI 2017-12-28 23:13:09 +01:00
jespergravgaard
273841610d Testing gitlab CI 2017-12-28 16:34:21 +01:00
jespergravgaard
7f0d9527de Moved tests into Maven Test area to allow maven-based testing. 2017-12-28 16:15:18 +01:00
jespergravgaard
32d7db5ce7 Moved tests into Maven Test area to allow maven-based testing. 2017-12-28 15:34:32 +01:00
jespergravgaard
ff51d04356 Improved KC mul table gen. 2017-12-28 15:10:56 +01:00
jespergravgaard
d1ee716008 Improved KC mul table gen. 2017-12-28 14:46:31 +01:00
jespergravgaard
5e25684cf9 Slight improvement of code 2017-12-28 04:38:19 +01:00
jespergravgaard
6dcafb83c2 Optimized KC based multiply table generator. 2017-12-28 04:32:26 +01:00
jespergravgaard
8198b8f168 Generating fast multiply table in both ASM and KC - now word-based generation. 2017-12-28 04:13:31 +01:00
jespergravgaard
389b6042ed Generating fast multiply table in both ASM and KC. 2017-12-28 03:32:59 +01:00
jespergravgaard
bb0aeb9e3b Implementing fast multiplication KC program. 2017-12-28 01:50:55 +01:00
jespergravgaard
6532fdd002 Added array length mismatch error in Pass1. 2017-12-28 00:17:39 +01:00
jespergravgaard
19a040345f Added array zero initializer and ASM .fill for arrays declared with a size but without initializer. 2017-12-27 23:53:51 +01:00
jespergravgaard
62a56f23fb Removed unused LValueLoHiByte. 2017-12-27 22:48:26 +01:00
jespergravgaard
4bcf51732b Added aseetion stopping compilation at pass 3 if any value list has survived. 2017-12-27 22:22:53 +01:00
jespergravgaard
347fc03f47 Made all declared arrays/strings implicitly constant. 2017-12-27 22:08:15 +01:00
jespergravgaard
4a7dd31d40 Fixed word constructor detection to detect all inline word constructors. 2017-12-27 21:47:07 +01:00
jespergravgaard
212e8572de Improved constant string detection. Type System is still a bit of a mess. 2017-12-27 20:52:38 +01:00
jespergravgaard
8a1dbc36d7 Refactored recursive value replacement into ValueReplacer. Moved VariableReplacer to a simple ValueReplacer. Added test for true inline word constructors. 2017-12-27 13:40:55 +01:00
jespergravgaard
a3a7d02cd7 Added test to confirm that pointer destinations can now be incremented corrently. Closes #29 2017-12-26 17:38:51 +01:00
jespergravgaard
b412a4aefc Assignments are now expressions. For-loops can now contain assignments in the increment part. LValue handling reimplemented (lvalue no longer exist in parser - only expression). RValues now also contains pointer derefs. Complex array expressions (SCREEN+$100)[i] now possible as LValues. ASM fragment generation improved to handle new more complex LValues & RValues. Closes #5. Closes #43 2017-12-26 17:24:30 +01:00
jespergravgaard
2c44783879 Added ALU potential for _word_ operator 2017-12-26 10:31:30 +01:00
jespergravgaard
91f22c44f0 Removed all ASM steps between ASM optimizations - result smaller log file. 2017-12-26 09:15:10 +01:00
jespergravgaard
42b026a757 Allowing ZP coalescing whenever registers are the same type (before variables had to be the same type). 2017-12-26 00:24:40 +01:00
jespergravgaard
e3353acbc9 Implemented syntax for composing word from two bytes word w = { b1, b2 };
Optimizer still needs to attempt to (and allow) placing the two byte variables directly at the lo/hi-vars of the word wo minimize moving data around.

Closes #37
2017-12-25 23:27:54 +01:00