1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-08-02 09:29:35 +00:00
Commit Graph

167 Commits

Author SHA1 Message Date
Jesper Gravgaard
eb6cf1188c Working on a new live range analysis and the ability to handle constants symbolically. TODOs remaining: Live range overlap analysis of register combinations inside methods must also look at registers alive at all calls. Examine why temp-vars are used in flipper. Examine why flipper is plotted in a wrong position on the screen. Implement constants into the symbol table and support them in code. Implement new constant consolidation steps. 2017-09-04 00:49:00 +02:00
jespergravgaard
61d16b3030 Implemented phi transition reuse when transitions are identical on a register basis 2017-08-26 02:05:46 +02:00
jespergravgaard
83edd3e21b Implemented phi transition reuse when transitions are identical 2017-08-26 01:15:57 +02:00
jespergravgaard
23d9af8420 Started work on phi transition optimization 2017-08-23 09:37:16 +02:00
Jesper Gravgaard
f72585e3c0 Fixed clobber issues caused by statement idx of phi statementsin ASM changed to the call-statement instead of the phi. 2017-08-22 14:57:04 +02:00
jespergravgaard
64c690f925 Improved ZP register ASM naming further. (issue with allocation not choosing optimal registers in some cases - a few tests left failing) 2017-08-21 08:27:34 +02:00
jespergravgaard
029227652e Improved zp register references across scopes. 2017-08-21 01:19:43 +02:00
jespergravgaard
5a91902c21 Moved register allocation into symbol table Variable 2017-08-20 21:41:17 +02:00
jespergravgaard
1982d01297 renames 2017-08-20 21:20:07 +02:00
jespergravgaard
ffce3298ef Moved bresenham into main() 2017-08-20 21:12:40 +02:00
jespergravgaard
2707bd5861 Working on outputting variable labels in ASM. Moving register allocation & constant values into symbol table. 2017-08-20 21:09:03 +02:00
jespergravgaard
df631667a0 Changed ranged loop to only accept constants. 2017-08-18 08:40:15 +02:00
jespergravgaard
14dfaee552 Implemented for() loops. 2017-08-18 00:28:39 +02:00
jespergravgaard
5a075a0ce4 Added for syntax to parser 2017-08-14 08:34:02 +02:00
jespergravgaard
d5f62dfd11 Improved program flow for if-statements without else by inverting the condition and jumping over the stmts. Improved fragment synthesizing. 2017-08-13 03:03:56 +02:00
jespergravgaard
7b30fa4f2c Added ifmin() for optimizing if() block sequence. 2017-08-13 00:44:48 +02:00
jespergravgaard
4741a2d22e Improve pass structure 2017-08-13 00:30:51 +02:00
jespergravgaard
9c8372b989 Redundant and unused label elimination in ASM. 2017-08-12 21:27:36 +02:00
jespergravgaard
5f27eba623 Fixed scope issues in ASM. Added scope to blocks. 2017-08-12 20:16:07 +02:00
Jesper Gravgaard
15a9415d63 Improved ASM readability 2017-08-12 18:30:21 +02:00
jespergravgaard
1577fe026e Changed ASM numbers to HEX 2017-08-12 02:55:20 +02:00
jespergravgaard
7555d45b34 Finally got a hold of live ranges when propagating back over calls. 2017-08-12 02:30:37 +02:00
jespergravgaard
9334e435da refactored addpoint to increment its own counter 2017-08-12 00:31:14 +02:00
jespergravgaard
7c7e0ec08f Added more minimal test for modifying globals 2017-08-12 00:23:55 +02:00
jespergravgaard
450fc1add0 Added more minimal test for modifying globals 2017-08-12 00:22:46 +02:00
jespergravgaard
fc859e8a03 Implemented ability of procedures to modify globals 2017-08-12 00:15:59 +02:00
jespergravgaard
867d78fd31 Implemented ASM voronoi with squared distance function. 2017-08-07 23:17:56 +02:00
jespergravgaard
1f4ea4f68c Scrren init moved out of main loop. 2017-08-07 21:40:32 +02:00
jespergravgaard
3eaed1c946 Animated voronoi. Added fragments as needed. 2017-08-07 21:23:35 +02:00
jespergravgaard
772a2a3761 Removed unnecessary fragments 2017-08-07 17:53:43 +02:00
jespergravgaard
9f5efab3ee Less logging during uplift. 2017-08-07 17:17:14 +02:00
jespergravgaard
d640c53033 Added fragment manager with ability to do fragment synthesis from sub-fragments. Added more fragments. 2017-08-07 16:35:10 +02:00
jespergravgaard
2a19c52c1d Implemented Voronoi renderer. Added missing fragments. Added combination limit and an iteration trying to uplift the remains. 2017-08-07 14:53:25 +02:00
jespergravgaard
ec1838adba Added ALU uplift potential analysis 2017-08-06 17:00:10 +02:00
jespergravgaard
3624e3ec27 Fixed two register allocation issues. 1. disallow two variables in the same phi-block to be allocated to the same register. 2. When analyzing potential registers call parameter phi statements are no longer examined. 2017-08-06 15:41:06 +02:00
jespergravgaard
0dae641df0 Optimized ASM instruction lookup by introducing a map. 2017-08-06 15:01:11 +02:00
jespergravgaard
0da6c7af6a Optimized fragment generation by caching loaded fragment files. 2017-08-06 14:14:58 +02:00
jespergravgaard
439a70e52a Implemented potential register elimination based on clobber analysis of individual statements. 2017-08-06 13:31:29 +02:00
Jesper Gravgaard
0e5bd97e21 Moved uplift combination testing to separate pass. Made interface for limiting the relevant registers for each equivalence class - improving speed of the combination testing. 2017-08-03 15:05:36 +02:00
jespergravgaard
3b99b6671c Added ALU to uplift attempts 2017-08-03 01:08:48 +02:00
jespergravgaard
59d33faf92 Implemented new uplift score function sum(cycles*10^loopdepth). Added a lot of missing fragments. Sorted scopes so max weight scopes are allocated first. 2017-08-02 22:20:00 +02:00
jespergravgaard
b9831c9445 Implemented register uplift combination search. This yields near optimal register allocation - but at a calculation cost at O(4^N) where N is the number of live range equivalence classes in a scope. 2017-08-02 00:57:29 +02:00
jespergravgaard
14c8ec13bf Improved segment generation 2017-08-01 20:38:55 +02:00
jespergravgaard
323e10ab37 Introduced Asm Segments which establish relation between ASM code and the generating ICL. 2017-08-01 13:58:15 +02:00
jespergravgaard
14c1f7e8eb Now identifying undeclared variables 2017-08-01 01:33:42 +02:00
jespergravgaard
b56f634b1e Merge remote-tracking branch 'gitlab/master' 2017-07-31 23:41:25 +02:00
jespergravgaard
64d9ff3f23 Gathered all pass results in Program. 2017-07-31 23:41:10 +02:00
Jesper Gravgaard
46dd64e46c Fixed test data 2017-07-31 23:39:42 +02:00
Jesper Gravgaard
27084f8667 Merge remote-tracking branch 'gitlab/master' 2017-07-31 23:38:05 +02:00
Jesper Gravgaard
4a9a3d54f5 Fixed test data 2017-07-31 23:37:15 +02:00