Slava Pestov
|
80e10f1bd0
|
compiler.cfg: Fix some unit tests
|
2009-07-28 08:56:14 -05:00 |
Slava Pestov
|
e6f5eab598
|
compiler.cfg.linear-scan: fix resolve pass
|
2009-07-28 08:47:35 -05:00 |
Slava Pestov
|
18717a449f
|
compiler.cfg.linear-scan.resolve: unit tests
|
2009-07-28 07:41:41 -05:00 |
Slava Pestov
|
857ef94acc
|
compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass
|
2009-07-28 07:39:46 -05:00 |
Slava Pestov
|
b1afd4c491
|
compiler.cfg.linear-scan.mapping: simplify
|
2009-07-23 18:03:04 -05:00 |
Slava Pestov
|
89db2e745d
|
Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code
|
2009-07-22 06:07:28 -05:00 |
Slava Pestov
|
21a012e3d7
|
compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework
|
2009-07-22 03:08:28 -05:00 |
Slava Pestov
|
32e4a97855
|
compiler.cfg.linear-scan: fix tests
|
2009-07-18 06:10:01 -05:00 |
Slava Pestov
|
ea69566ddd
|
compiler.cfg.linear-scan: algorithmic optimizations
|
2009-07-18 00:14:39 -05:00 |
Slava Pestov
|
e76dce8aff
|
Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint
|
2009-07-16 18:29:40 -05:00 |
Slava Pestov
|
884e41dd9c
|
compiler.cfg.linear-scan.live-intervals: remove bogus assertion
|
2009-07-16 02:42:01 -05:00 |
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 |