Slava Pestov
|
03e70d1aa9
|
remq -> remove-eq, delq -> remove-eq!
|
2009-10-28 00:23:08 -05:00 |
Slava Pestov
|
8c9ccdd906
|
compiler.cfg.linear-scan: tweak it so that register allocation does not depend on hashing order
|
2009-09-27 23:29:48 -05:00 |
Slava Pestov
|
6f2a4eba51
|
compiler.cfg.linear-scan: fix partial sync point logic in case where dst == src, and clean up spilling code
|
2009-09-27 19:28:20 -05:00 |
Slava Pestov
|
f6a836d1e9
|
compiler.cfg.linear-scan now supports partial sync-points where all registers are spilled; taking advantage of this, there are new trigonometric intrinsics which yield a 2x performance boost on benchmark.struct-arrays and a 25% boost on benchmark.partial-sums
|
2009-08-30 04:52:01 -05:00 |
Slava Pestov
|
2d575d7ec9
|
compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case
|
2009-08-08 04:02:18 -05:00 |
Slava Pestov
|
4d2160799f
|
Split off the notion of a register representation from a register class
|
2009-08-07 17:44:50 -05:00 |
Slava Pestov
|
e48b805bde
|
compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic
|
2009-07-10 00:25:46 -05:00 |
Slava Pestov
|
f93a71e978
|
compiler.cfg.linear-scan: two live intervals which are coalesced will use the same spill slot
|
2009-07-09 23:12:49 -05:00 |
Slava Pestov
|
4ef76762e3
|
compiler.cfg.linear-scan: debugging spilling, add more assertions
|
2009-07-07 13:01:27 -05:00 |
Slava Pestov
|
15134e61e0
|
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
|
3d92117ef1
|
compiler.cfg.linear-scan: assign spill slots to vregs globally, so that resolve pass never has to perform a memory->memory transfer
|
2009-07-03 22:51:40 -05:00 |
Slava Pestov
|
e1e24c4802
|
compiler.cfg.linear-scan: Further progress on inactive interval handling
|
2009-06-17 15:27:20 -05:00 |
Slava Pestov
|
d09ece8152
|
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 |