Slava Pestov
04508f2ece
compiler.cfg: bug fixes in GC check insertion and fixnum intrinsics
2009-07-02 00:51:06 -05:00
Slava Pestov
ca0b05cd1d
compiler.cfg.linear-scan: fix spilling
2009-07-01 22:37:27 -05:00
Slava Pestov
14bce3b400
compiler.cfg.linear-scan: debugging spilling and resolve pass
2009-07-01 17:41:07 -05:00
Slava Pestov
189043eae7
compiler.cfg.linear-scan.assignment: insert-copy did the wrong thing if the second interval had been split. Fixes compilation of 'trilerp'
2009-06-30 21:07:39 -05:00
Slava Pestov
dc96968b99
Merge branch 'master' of git://factorcode.org/git/factor
2009-06-30 18:12:00 -05:00
Slava Pestov
87aabfc053
compiler.cfg.linear-scan.assignment: get check-assignment? to work with coalescing
2009-06-30 18:10:53 -05:00
Doug Coleman
eb2d574e79
Merge branch 'master' of git://factorcode.org/git/factor
2009-06-30 16:45:57 -05:00
Doug Coleman
c5ffb08f5b
fix bug where traversal order was lost
2009-06-30 16:44:14 -05:00
Slava Pestov
ecf44c98bc
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
Doug Coleman
d888d13efe
spill to spill-temp, not to virtual spill addresses
2009-06-30 15:40:13 -05:00
Slava Pestov
c2d4c42252
Fix conflict
2009-06-29 01:59:53 -05:00
Slava Pestov
5754bf0028
compiler.cfg.linear-scan.resolve: remove redundant vocabs from using list
2009-06-28 22:58:35 -05:00
Doug Coleman
750d8c0a9a
Merge branch 'master' of git://factorcode.org/git/factor
...
Conflicts:
basis/compiler/cfg/linear-scan/resolve/resolve-tests.factor
2009-06-26 21:51:08 -05:00
Doug Coleman
c7a04858ee
add spill-temp to compiler.cfg.instructions, implement parallel register assignment in linear-scan.resolve
2009-06-26 21:48:21 -05:00
Slava Pestov
3b8733de01
Redesign compiler.cfg.stack-analysis to make compiler.cfg.height redundant, and to fix some problems
2009-06-26 17:29:55 -05:00
Slava Pestov
be1dcc04c2
compiler.cfg.linear-scan: fix unit tests
2009-06-24 13:54:12 -05:00
Slava Pestov
fff4a1dbbd
compiler.cfg.linear-scan: fix coalescing to take lifetime holes into account
2009-06-23 21:32:51 -05:00
Slava Pestov
478e5cc95f
compiler.cfg.linear-scan: Debugging resolve pass
2009-06-22 00:24:51 -05:00
Slava Pestov
02e2c0bcf7
compiler.cfg.linear-scan.resolve: unit tests
2009-06-21 00:23:34 -05:00
Slava Pestov
39dba00279
compiler.cfg.linear-scan: Working on resolve pass
2009-06-21 00:20:01 -05:00
Slava Pestov
886967256e
compiler.cfg.linear-scan.assignment: correctly compute live registers at GC check points
2009-06-20 15:33:12 -05:00
Slava Pestov
82730af521
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
6ff7e2cba7
compiler.cfg.linear-scan: Fix a couple of bugs
2009-06-19 03:42:42 -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
14b4b79a37
compiler.cfg.linear-scan.resolve: fix compile error
2009-06-14 17:00:52 -05:00
Slava Pestov
941d7a1eeb
Various linear scan fixes
...
insert spill before reload to fix x86-32 regression
inactive splitting: if all inactive intervals' registers are in use, don't fail
fix stack analysis tests
2009-06-13 17:35:40 -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
Slava Pestov
e1d13d8ee7
Linear scan: implement live range intersection
2009-06-06 01:04:12 -05:00
Slava Pestov
ad5ef2a3cc
Linear scan: correctly compute live spill slots
2009-06-05 18:06:47 -05:00
Slava Pestov
ee67b7c9a8
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
9096acea6f
Linear scan: build live ranges
2009-06-03 03:22:27 -05:00
Slava Pestov
7aca076408
GC checks now save and restore registers
2009-06-02 18:23:47 -05:00
Slava Pestov
3de85158de
Merge branch 'master' into global_optimization
2009-06-01 03:12:32 -05:00
Slava Pestov
0375ce6bb4
Fix scoping issue in compiler.cfg.linear-scan.assignment
2009-05-31 18:21:23 -05:00
Slava Pestov
968a9bb666
Various codegen improvements:
...
- new-insn word to construct instructions
- cache RPO in the CFG
- re-organize low-level optimizer so that MR is built after register allocation
- register allocation now stores instruction numbers in the instructions themselves
- split defs-vregs into defs-vregs and temp-vregs
2009-05-29 13:11:34 -05:00
Doug Coleman
8da9d0f203
rename peek -> last and update all usages
2009-05-25 16:38:33 -05:00
Slava Pestov
05f3f9dcb9
Fixing unit tests for stack effect inference changes
2009-04-20 21:15:19 -05:00
Slava Pestov
37e278ed02
Use [ ] [ ] map-reduce instead of unclip [ ] reduce
2009-04-06 17:50:54 -05:00
Slava Pestov
421ee726b8
Merge branch 'master' into new_ui
2009-02-16 21:22:12 -06:00
Slava Pestov
6b25e99470
Add summary for heaps more vocabs
2009-02-16 21:05:13 -06: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
ca2f01e0d0
Updating non-core libraries for monotonic? change
2009-01-16 17:02:54 -06:00
Slava Pestov
34792a9f23
Remove >r/r>
2008-12-17 19:17:37 -06:00
Slava Pestov
c8521ad826
Add tool to dump live intervals
2008-11-04 17:23:20 -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
0250d7c1d2
Forgot a drop in unit test
2008-11-03 01:53:27 -06:00
Slava Pestov
d11a779fdd
RicE
2008-11-02 03:58:32 -06:00
Slava Pestov
8df1aba71d
Coalescing
2008-11-02 01:49:57 -06:00
Slava Pestov
db4db19cd9
Start working on coalescing
2008-10-28 02:38:37 -07:00
Slava Pestov
ba0ed21e1d
Better error message
2008-10-22 21:58:37 -05:00