1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-30 09:50:13 +00:00
Commit Graph

2167 Commits

Author SHA1 Message Date
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
jespergravgaard
bebf020364 Improved phi lifting by introducing new blocks when lifting back to blocks with conditional jumps. Improved sequence planner to ensure blocks in the same scopes are kept together. 2017-07-26 15:09:00 +02:00
jespergravgaard
c43ab3acef Implemented variable live range identification 2017-07-26 00:26:50 +02:00
jespergravgaard
69cbee294d Made room for new pass 3 interval analysis 2017-07-25 00:56:42 +02:00
jespergravgaard
0aa64b3203 Added pass1 optimization removing empty blocks. 2017-07-25 00:21:40 +02:00
jespergravgaard
2819d3c58a Added pass1 optimization removing empty blocks. 2017-07-25 00:17:56 +02:00
jespergravgaard
524252105a Refactored toString to avoid redundant code. 2017-07-24 08:19:44 +02:00
jespergravgaard
300bb644b9 Refactored phi to use blocks instead of individual statements 2017-07-23 23:29:40 +02:00
jespergravgaard
122cef4e30 Better label naming when creating intermediate labels 2017-07-21 12:18:05 +02:00
jespergravgaard
88c7ed453a Better label naming when creating intermediate labels 2017-07-21 11:32:41 +02:00
jespergravgaard
4c0a9cd241 Removed cast calls to getSymbol() 2017-07-21 10:49:28 +02:00
jespergravgaard
6ef3af4fdf ICL Programs are now JSON serializable 2017-07-21 01:53:38 +02:00
jespergravgaard
d38c26eeb5 added a few toString()s 2017-07-20 10:14:22 +02:00
jespergravgaard
00463cd72f Moved all ref creation to getRef() 2017-07-20 10:02:25 +02:00
Jesper Gravgaard
de88808c5f Replaced all program labels with labelrefs ans procedures with procedurerefs. 2017-07-20 09:26:06 +02:00
Jesper Gravgaard
e6d09187e3 Added typed and untyped print functions everywhere. Now getting the same output as the old compilation! 2017-07-19 13:21:16 +02:00
Jesper Gravgaard
6e087e9a1c Now serializing all symbol types 2017-07-18 23:13:24 +02:00
Jesper Gravgaard
819c904419 Implementing JSON serialization of ICL 2017-07-18 22:49:25 +02:00
Jesper Gravgaard
1b0b81baf2 Restructured code in new packages 2017-07-18 18:12:11 +02:00
Jesper Gravgaard
92747454c7 Restructured code in new packages 2017-07-18 18:10:12 +02:00
Jesper Gravgaard
32a2c9eb2b Optimized registers for fibmem. 2017-07-18 16:46:52 +02:00
Jesper Gravgaard
a7e0e2b1d0 Added main method to flipper. Fixed a few bugs in compiler. 2017-07-16 11:09:32 +02:00
Jesper Gravgaard
f6eeb5ff83 Removed comments from ASM output 2017-07-16 09:41:27 +02:00
Jesper Gravgaard
67b4257ad9 Added a second test 2017-07-15 23:32:25 +02:00
Jesper Gravgaard
0116c9e21d Added full compile log to test 2017-07-15 23:26:45 +02:00
Jesper Gravgaard
8e59603418 made map linked for predictability 2017-07-15 22:21:07 +02:00