Björn Lindqvist
b1ac5ae7ca
compiler.cfg.linear-scan: more tests
2016-11-15 03:49:46 +01:00
Björn Lindqvist
4d9367249b
compiler.cfg.linear-scan.*: more tests
2016-11-15 03:49:46 +01:00
Björn Lindqvist
70e9834f2f
compiler.cfg.*: new system for emitting spill/reloads for gc calls ( #1471 )
...
GC calls were treated as sync points so all registers were spilled
around them. But if the gc call isn't triggered, it is unnecessary to
spill. This commit fixes that by handling ##call-gc specially and
putting ##spill and ##reloads in the same block as the gc call itself.
2016-04-22 19:21:15 +02:00
Björn Lindqvist
54d7b50d1b
compiler.cfg.linear-scan.live-intervals: better way to write insn>sync-point
2016-04-03 20:56:29 +02:00
Björn Lindqvist
026abb9c38
compiler.cfg.linear.scan.*: makes it so ranges and uses are guaranteed
...
to be vectors
Simplifies the code and makes it a little faster.
2016-04-02 17:48:23 +02:00
Björn Lindqvist
76be7b54ed
compiler.cfg.linear-scan.*: removed start and end from live-interval-state
...
They weren't needed because start>> was always equal to ranges min and
end>> ranges max
2016-04-01 19:16:35 +02:00
Björn Lindqvist
4db173cadb
compiler.*: random doc and tests updates
2015-09-22 08:52:59 +02:00
Björn Lindqvist
89e261f673
compiler.cfg.linear-scan.ranges: remove the live-range definition and
...
use integer pairs instead
so instead of ranges being a sequence of live-ranges it is now a
sequence of integer pairs instead. That makes the
compiler.cfg.linear-scan.ranges simpler and easier to generalize
2015-09-22 08:51:04 +02:00
Björn Lindqvist
2943e7f246
compiler.cfg.linear-scan.ranges: new word ranges-endpoints and remove relevant-ranges
2015-09-22 08:51:04 +02:00
Björn Lindqvist
fb45bc278f
compiler.cfg.linear-scan.live-intervals: the reg-class slot can be
...
removed
it's always the same as vreg>> rep-of reg-class-of so no need to store
that data twice
2015-09-22 08:51:04 +02:00
Björn Lindqvist
68c6654763
compiler.cfg.linear-scan.*: move words for splitting and intersecting ranges to the compiler.cfg.linear-scan.ranges vocab
2015-09-22 08:51:04 +02:00
Björn Lindqvist
b8d47ed845
compiler.cfg.linear-scan.ranges: new vocab to contain all the range
...
related stuff from live intervals
2015-09-22 08:51:03 +02:00
Björn Lindqvist
31aae02916
compiler.cfg.linear-scan.live-intervals: simpler code for finding the
...
sync points in the cfg
2015-07-28 17:58:27 -07:00
Björn Lindqvist
418438ab13
compiler.cfg.linear-scan.*: change compute-live-intervals so that it
...
returns only one sequence, it makes some words a little simpler
2015-06-14 16:44:37 +02:00
Björn Lindqvist
997f95196c
compiler.cfg.*: lots of new unit tests
2015-04-29 09:31:58 -07:00