1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-25 05:33:29 +00:00
Commit Graph

1192 Commits

Author SHA1 Message Date
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
jespergravgaard
5d21c6aa97 Added indexes to ASM lines in AsmProgram 2017-07-31 21:53:42 +02:00
jespergravgaard
47e8b6b2b9 More fragments - a start at calculating value for ASM. 2017-07-31 20:00:25 +02:00
Jesper Gravgaard
18bbde8a44 Started implementing register uplift with clobber checks. Added a bunch of missing fragments. Added a few failing tests of errors that should give a nice error message. 2017-07-30 16:31:59 +02:00
jespergravgaard
3a14d2ef5b Cleaned up pointer handling in ASM fragments and binding 2017-07-30 11:28:28 +02:00
jespergravgaard
5f1cf097a4 Added a pointer test 2017-07-30 11:08:44 +02:00
jespergravgaard
120eba90a5 Implemented clobber assertion check for testing potential register allocations. 2017-07-29 23:38:07 +02:00
jespergravgaard
e34e01544b Fixed constant addition elimination. Moved ASM generation for a single statement to separate function - preparing for clobber analysis of register allocation. Added fibmem test. Tested ALU. 2017-07-29 21:04:28 +02:00
jespergravgaard
7f20f2a6ba Implemented variable register weight analysis. 2017-07-29 17:10:32 +02:00
jespergravgaard
0377193ec8 Moved to maven based configuration & build. 2017-07-29 14:59:55 +02:00
jespergravgaard
c12c45b5bd Fixed cross-scope aliasing. Improved assignment ASM for register copies. 2017-07-29 13:41:47 +02:00
jespergravgaard
d159163f21 fixed tests 2017-07-29 11:18:15 +02:00
jespergravgaard
438bdc38b4 Propagating live ranges backwards through calls to avoid coalescing variables in procedures with variables alive outside during the call. 2017-07-29 11:08:24 +02:00
jespergravgaard
9634741d76 Split zero page register allocation into separate phase steps. Added live range information to register allocation phases. 2017-07-29 10:24:37 +02:00
jespergravgaard
b4d5685222 Added a nested loop test. 2017-07-28 03:08:19 +02:00
jespergravgaard
007a5d34b4 Implemented loop depth analysis pass. 2017-07-28 02:55:19 +02:00
jespergravgaard
d1a13402fe Added loop depth analysis pass - not implemented yet. 2017-07-28 01:23:20 +02:00
jespergravgaard
45e64d59f1 A few renames and better doc. 2017-07-28 00:43:55 +02:00
jespergravgaard
d501534561 Implemented call graph analysis. 2017-07-28 00:38:17 +02:00
jespergravgaard
e7ea5fb4ea Implemented control flow graph loop analysis. 2017-07-27 22:20:50 +02:00
jespergravgaard
709cc57a1a Implemented graph dominator analysis. 2017-07-27 15:23:46 +02:00
jespergravgaard
be212f3b38 Implemented live ranged based register allocation - coalescing on phi statements first, copy-assignments second, other assignments third - and finally the remaining vars are added. 2017-07-27 01:33:10 +02:00
jespergravgaard
13c84a1741 Implemented PhiMemCoalesce. 2017-07-26 19:44:51 +02:00
jespergravgaard
16d4ab93f0 Added another block assertion 2017-07-26 17:01:01 +02:00
jespergravgaard
878059da13 Added more asserts 2017-07-26 16:09:47 +02:00
jespergravgaard
d7e0a638f2 Fixed tests 2017-07-26 15:14:56 +02:00