Commit Graph

78 Commits (03cd550b93fa0dea53fbdfb542ea07a68670d517)

Author SHA1 Message Date
Slava Pestov c860a3b1e6 compiler.cfg: update unit tests for compiler.cfg.comparisons 2009-07-14 12:06:55 -05:00
Slava Pestov 8ff473e42c compiler.cfg.linear-scan.resolve: get it to work on CFGs with critical edges 2009-07-12 23:00:33 -05:00
Slava Pestov 1cf6bb7f99 compiler.cfg.linear-scan: disable unit test for unimplemented feature 2009-07-10 07:48:49 -05:00
Slava Pestov ae67de6f90 compiler.cfg.linear-scan: fix fencepost error in spill insertion 2009-07-10 03:58:51 -05:00
Slava Pestov dea872c7e3 compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic 2009-07-10 00:25:46 -05:00
Slava Pestov d02854b04e 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 d0980edafe compiler.cfg.linear-scan: fixing unit tests 2009-07-09 00:48:00 -05:00
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 c20e6c290f compiler.cfg.linear-scan: split off parallel mapping code from resolve pass, use it in assignment pass to resolve parallel copies 2009-07-08 23:07:06 -05:00
Slava Pestov e2044602aa compiler.cfg.linear-scan: debugging spilling, add more assertions 2009-07-07 13:01:27 -05:00
Slava Pestov 43c873f00a compiler.cfg.linear-scan: code cleanup 2009-07-07 03:45:27 -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 4402d8652c compiler.cfg.linear-scan: minor fixes 2009-07-05 22:51:53 -05:00
Slava Pestov a452f32e3a compiler.cfg.linear-scan: Get cycle breaking in resolve pass to work by allocating a spare spill slot for this purpose 2009-07-05 21:32:23 -05:00
Slava Pestov f14a61fac2 Fix compiler.cfg.linear-scan.resolve test failure 2009-07-04 16:30:16 -05:00
Slava Pestov c00af97fa1 compiler.cfg.linear-scan.resolve: More fixes 2009-07-04 00:45:06 -05:00
Slava Pestov da13681bc8 compiler.cfg.linear-scan: redo resolve pass to fix a correctness issue 2009-07-03 23:38:52 -05:00
Slava Pestov 8d3a45dee2 compiler.cfg: clean up GC check generation to use spill-slot data type 2009-07-03 23:11:23 -05:00
Slava Pestov d07c0429fc 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 af875ba836 compiler.cfg: bug fixes in GC check insertion and fixnum intrinsics 2009-07-02 00:51:06 -05:00
Slava Pestov e6b1c21590 compiler.cfg.linear-scan: fix spilling 2009-07-01 22:37:27 -05:00
Slava Pestov a19f22ec82 compiler.cfg.linear-scan: debugging spilling and resolve pass 2009-07-01 17:41:07 -05:00
Slava Pestov 612e4b99b0 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 d199154179 Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 18:12:00 -05:00
Slava Pestov 54876d0cba compiler.cfg.linear-scan.assignment: get check-assignment? to work with coalescing 2009-06-30 18:10:53 -05:00
Doug Coleman f1b2550035 Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 16:45:57 -05:00
Doug Coleman d1f6871081 fix bug where traversal order was lost 2009-06-30 16:44:14 -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
Doug Coleman f41f84436c spill to spill-temp, not to virtual spill addresses 2009-06-30 15:40:13 -05:00
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