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 |
|
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 |
|