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 |
|
Jesper Gravgaard
|
81ba13c9c3
|
Implemented test comparing reference output to actual compilation output
|
2017-07-15 22:00:02 +02:00 |
|