Björn Lindqvist
b89a305ef7
compiler.cfg.linear-scan.assignment: correct representation used when spilling
...
Previously the rep-of word was used. But as the vregs representation can
change, you need to instead use the representation it uas as the spill
point.
2016-11-15 03:49:46 +01:00
Björn Lindqvist
b1ac5ae7ca
compiler.cfg.linear-scan: more tests
2016-11-15 03:49:46 +01:00
Björn Lindqvist
ffef75f8a7
compiler.cfg.*: more docs
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
7053c72aa1
compiler.cfg.linear-scan.allocation.spilling: <linked-hash>
2016-11-15 03:49:46 +01:00
Alexander Iljin
2fd5654473
Add EOL at EOF for all authors.txt files for consistency
...
In some instances replaced CR/LF with LF.
2016-07-30 09:25:30 -07: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
720edcbd3b
style fixes - indenting slots and word bodies
2016-04-22 13:06:41 +02:00
Björn Lindqvist
92a85ebe86
compiler.*: more compiler docs
2016-04-22 12:57:54 +02:00
Björn Lindqvist
cf74a4dc0f
compiler.cfg.linear-scan.allocation.splitting: Docs
2016-04-22 12:16:46 +02:00
Björn Lindqvist
951c0586f0
compiler.cfg.linear-scan.allocation: removes no-free-registers?
2016-04-22 12:04:22 +02:00
Björn Lindqvist
e426e5c339
compiler.cfg.linear-scan.assignment: better vregs>regs
2016-04-11 01:17:13 +02:00
Björn Lindqvist
754f52d399
compiler.cfg.linear-scan.assignment: refactoring of assign-registers-in-block + tests
2016-04-11 01:17:13 +02:00
John Benediktsson
e4ddd9f38e
compiler.cfg.linear-scan.allocation.spilling: fix $maybe docs.
2016-04-04 10:40:02 -07:00
Björn Lindqvist
2cc8b5e7de
compiler.cfg.linear-scan.allocation.spilling: fix stack effect
2016-04-03 20:56:30 +02:00
Björn Lindqvist
89e98e96a4
compiler.cfg.linear-scan.live-intervals: hairy- and clober-insn moved to
...
this vocab
2016-04-03 20:56:30 +02:00
Björn Lindqvist
1a71407112
compiler.cfg.linear-scan.assignment: refactoring + tests
...
better expire-old-intervals, activate-new-intervals and assign-gc-roots
2016-04-03 20:56:29 +02:00
Björn Lindqvist
86606213de
compiler.cfg.linear-scan.assignment: refactoring
...
Better definitions for expire-old-intervals, activate-new-intervals and
assign-registers-in-insn.
2016-04-03 20:56:29 +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
3ef33708ae
compiler.cfg.linear-scan.assignment: dont think prepare-insn should be called twice here
2016-04-02 17:48:23 +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
95c1b6bbe3
compiler.cfg.linear-scan.live-intervals: doc lint fixes
2016-04-01 23:42:00 +02:00
Björn Lindqvist
a60f122c5e
basis.compiler.cfg.linear-scan.*: fixing boostrap problems due to the
...
word rename
Sorry for the noise.
2016-04-01 20:16:13 +02:00
Björn Lindqvist
eb68ad6932
compiler.cfg.linear-scan.allocation.splitting: fix HINTS: specialization
...
for split-interval
2016-04-01 19:38:45 +02:00
Björn Lindqvist
52e78441f8
compiler.cfg.linear-scan.live-intervals: simplify uses-vregs*
2016-04-01 19:16:35 +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
John Benediktsson
1721f9e314
fix some tests for the sets:set change.
2016-03-29 20:43:46 -07:00
John Benediktsson
71ef8a22c2
disambiguate namespaces:set and sets:set.
2016-03-29 17:14:42 -07:00
Björn Lindqvist
5663d39a76
compiler.*: more docs
2016-02-28 01:01:38 +01:00
Björn Lindqvist
7b18618b3e
compiler.cfg.linear-scan.allocation.state: fixes the the 64-bit-o-centric testcases
2015-11-04 13:54:14 +01:00
Björn Lindqvist
bb6fa7267c
compiler.cfg.linear-scan.allocation.state: help-lint fixes
2015-11-04 13:38:59 +01:00
Björn Lindqvist
f692200547
compiler.cfg.*: refactoring which removes spill-area-size and
...
spill-area-align from cfg
This makes the code for building the stack frame simpler.
2015-11-04 07:53:19 +01:00
Björn Lindqvist
cfe4fec574
compiler.cfg.linear-scan.*: make it so cfg is given as an argument to next-spill-slot
2015-11-04 07:53:19 +01:00
Björn Lindqvist
804348287c
Docs: fix a bunch of help-lint warnings
2015-09-22 08:52:59 +02:00
Björn Lindqvist
4db173cadb
compiler.*: random doc and tests updates
2015-09-22 08:52:59 +02:00
Björn Lindqvist
86d35982ac
compiler.cfg.linear-scan.allocation.splitting: better def for split-uses
...
it seems to be just as fast as the wordier one
2015-09-22 08:52:37 +02:00
Björn Lindqvist
aaef9af863
compiler.cfg.*: random doc updates
2015-09-22 08:51:46 +02:00
Björn Lindqvist
508ddc5c0b
compiler.cfg.linear-scan.ranges: merge adjacent ranges when adding them
...
this way, the number of live interval ranges you have to deal with is
much smaller
2015-09-22 08:51:04 +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
8c781639ed
compiler.cfg.linear-scan.ranges: move more range-related features into
...
this vocab
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
John Benediktsson
ceb75057da
change ERROR: words from throw-foo back to foo.
2015-08-13 16:13:05 -07:00
Doug Coleman
ce046b77c8
compiler: rename D to D: because it wants a token. Same for R -> R:
2015-08-13 15:23:10 -07:00
Doug Coleman
b6be8685c3
basis: ERROR: changes.
2015-08-13 03:20:39 -07:00
Doug Coleman
e0d1b14e5c
factor: don't need FROM: namespaces => set or namespaces:set anymore
2015-08-12 11:25:57 -05:00
Doug Coleman
330c7ba156
factor: Removing SLOT: nth/at/global in favor of using change: at for tuple slots named ``at`` and change-at for hashtables.
...
Redo many FROM: and QUALIFIED: and using lists.
2015-08-12 08:49:02 -05:00
Björn Lindqvist
22b871d82e
compiler.cfg.utilities: make it so block>cfg initializes spill-area-align
2015-07-29 13:01:24 +02:00