Slava Pestov
|
5a64290386
|
compiler.cfg.linear-scan: more code cleanups, and working on split-to-fit algorithm
|
2009-07-09 00:20:03 -05:00 |
Slava Pestov
|
4507bdcbc0
|
compiler.cfg.linear-scan: code cleanups
|
2009-07-08 23:28:28 -05:00 |
Slava Pestov
|
0bcf4ce535
|
compiler.cfg.linear-scan: Re-implement spilling, add some additional runtime assertions, simplify assignment pass since it doesn't have to track spill slots anymore; just assume a live value that's not in active or inactive is spilled
|
2009-07-07 03:28:55 -05:00 |
Slava Pestov
|
a19f22ec82
|
compiler.cfg.linear-scan: debugging spilling and resolve pass
|
2009-07-01 17:41:07 -05:00 |
Slava Pestov
|
578b0126fc
|
compiler.cfg.linear-scan: compute-free-pos was broken in the case where more than one inactive interval had the same physical register assigned
|
2009-06-30 16:07:58 -05:00 |
Slava Pestov
|
c53aca6016
|
compiler.cfg.linear-scan: fix coalescing to take lifetime holes into account
|
2009-06-23 21:32:51 -05:00 |
Slava Pestov
|
5c912504d7
|
compiler.cfg.linear-scan: untangle add-active/delete-active/add-handled calls in spilling, replace 'sort-values last' with 'alist-max' in compiler.utilities
|
2009-06-19 18:28:30 -05:00 |
Slava Pestov
|
2f15ac3c8f
|
compiler.cfg.linear-scan: Fix a couple of bugs
|
2009-06-19 03:42:42 -05:00 |
Slava Pestov
|
1f5f8393c3
|
compiler.cfg.linear-scan: Further progress on inactive interval handling
|
2009-06-17 15:27:20 -05:00 |
Slava Pestov
|
d0f6a7d048
|
Split up compiler.cfg.linear-scan.allocation into a number of sub-vocabularies; start work on compiler.cfg.linear-scan.resolve; start work on inactive interval splitting
|
2009-06-11 17:55:14 -05:00 |
Slava Pestov
|
70b75b8dea
|
Linear scan: implement live range intersection
|
2009-06-06 01:04:12 -05:00 |
Slava Pestov
|
04c72d0a72
|
Linear scan: correctly compute live spill slots
|
2009-06-05 18:06:47 -05:00 |
Slava Pestov
|
81b2a39070
|
compiler.cfg.linear-scan: re-do interval splitting to operate on live ranges; add inactive set processing
|
2009-06-04 18:53:02 -05:00 |
Slava Pestov
|
37e278ed02
|
Use [ ] [ ] map-reduce instead of unclip [ ] reduce
|
2009-04-06 17:50:54 -05:00 |
Slava Pestov
|
669548e62e
|
Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary
|
2009-02-02 13:43:54 -06:00 |
Slava Pestov
|
1af3b8ed65
|
If a register is spilled and the reload location is also a copy, we chicken out and don't coalesce. This is suboptimal but it's not clear to me how to implement it cleanly, and SSA graph coloring will solve this problem eventually anyway
|
2008-11-04 00:32:56 -06:00 |
Slava Pestov
|
8df1aba71d
|
Coalescing
|
2008-11-02 01:49:57 -06:00 |
Slava Pestov
|
14d8696f40
|
Oops, don't mix register classes in active set
|
2008-10-19 03:34:42 -05:00 |
Slava Pestov
|
c0d89b061e
|
Fixing register allocator prspilling
|
2008-10-19 01:10:21 -05:00 |
Slava Pestov
|
cf46a832e7
|
Debugging register allocator and inline allocation
|
2008-10-08 23:42:53 -05:00 |
Slava Pestov
|
7b6d9c4c4f
|
Debugging new codegen
|
2008-10-07 20:00:38 -05:00 |
Slava Pestov
|
f436fd0c0f
|
Merging in new codegen
|
2008-10-07 16:16:50 -05:00 |