Commit Graph

198 Commits (63a1e90af879f7c8b071ce45a1c45eb7638c010c)

Author SHA1 Message Date
Slava Pestov 82bfaca188 Fix conflict 2009-06-29 01:59:53 -05:00
Slava Pestov 0f68ee3e9a compiler.cfg.linear-scan.resolve: remove redundant vocabs from using list 2009-06-28 22:58:35 -05:00
Doug Coleman 1cb6bc99da 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 90017eb248 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 96baede36a 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 f3cf8fad2b compiler.cfg.linear-scan: fix unit tests 2009-06-24 13:54:12 -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 387f6df9e5 compiler.cfg.linear-scan: Debugging resolve pass 2009-06-22 00:24:51 -05:00
Slava Pestov 330bea3cc2 compiler.cfg.linear-scan.resolve: unit tests 2009-06-21 00:23:34 -05:00
Slava Pestov 5a78956956 compiler.cfg.linear-scan: Working on resolve pass 2009-06-21 00:20:01 -05:00
Slava Pestov c1839200dd compiler.cfg.linear-scan.assignment: correctly compute live registers at GC check points 2009-06-20 15:33:12 -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 6fb7dca404 compiler.cfg.linear-scan.resolve: fix compile error 2009-06-14 17:00:52 -05:00
Slava Pestov 64f93e41a9 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 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 6d04bf9c4a Linear scan: build live ranges 2009-06-03 03:22:27 -05:00
Slava Pestov 2d231f066a GC checks now save and restore registers 2009-06-02 18:23:47 -05:00
Slava Pestov 9e987e8642 Merge branch 'master' into global_optimization 2009-06-01 03:12:32 -05:00
Slava Pestov 32f17f3e14 Fix scoping issue in compiler.cfg.linear-scan.assignment 2009-05-31 18:21:23 -05:00
Slava Pestov e04df76f60 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 407377fc98 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
Slava Pestov e92f795a76 More work on intrinsics; memory allocation and slot access now expands correctly 2008-10-20 20:40:15 -05:00
Slava Pestov f092622fac CFG IR is now pure SSA 2008-10-20 01:56:28 -05: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 749c77d6b1 Fix linear scan test 2008-10-12 18:40:10 -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