Commit Graph

127 Commits (b1ac5ae7cae46c859b08bc19ce65a52bb34e1eeb)

Author SHA1 Message Date
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
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
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 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 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 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 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 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 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 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 b6be8685c3 basis: ERROR: changes. 2015-08-13 03:20:39 -07: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
Björn Lindqvist b544c1b352 compiler.cfg.*: some extra unit tests for the compiler 2015-07-28 17:58:29 -07:00
Björn Lindqvist 2c5f00d865 compiler.cfg.*: even more docs 2015-07-28 17:58:28 -07:00
Doug Coleman 40892c0302 tests: prefer ${ } instead of 1array 2015-07-02 14:56:14 -07:00
Doug Coleman 59f3b1ea57 Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
Needs a bit more work.

This reverts commit 7e54cc2824.
2015-07-02 13:47:06 -07:00
Doug Coleman 7e54cc2824 factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool! 2015-07-02 11:36:08 -07:00
John Benediktsson 423b2afb91 compiler.cfg.linear-scan.allocation: fix docs for free-position. 2015-06-16 20:38:34 -07:00
Björn Lindqvist 3678f62508 x86.64: change the register order so that RBX is allocated before RCX 2015-06-16 18:28:32 -07:00
Björn Lindqvist 8c8605d11a compiler.cfg.linear-scan.*: more tests and docs for allocation and state 2015-06-16 18:28:32 -07:00
Björn Lindqvist 78fe8bf1dc compiler.cfg.linear-scan.*: dont use a hashtable here, it fixes register
allocation so it's always in the same order as machine-registers
2015-06-16 18:28:32 -07:00
Björn Lindqvist c0645ecafe compiler.cfg.linear-scan.*: fix help-lint errors 2015-06-14 16:44:37 +02: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 91118ae5df compiler.cfg.linear-scan.allocation.state: fix #1345 by adding vreg to
the heap key

By having { start end vreg } as the key in the min-heap ordering is
guaranteed even if two intervals share the same start and end.
2015-06-14 16:44:37 +02:00
John Benediktsson dfa763434e Fix tests broken by word hashcode change. 2015-06-09 20:37:55 -07:00
John Benediktsson 2c3492a916 minor cleanup to some docs. 2015-05-13 16:09:14 -07:00
Björn Lindqvist 6097e80178 compiler.cfg.*: fixing tests so they work on 32bit archs too 2015-04-30 04:49:48 +02:00
Björn Lindqvist 6215561ad4 compiler.cfg.*: more docs and removing a test that isn't relevant anymore 2015-04-29 09:31:59 -07:00
Björn Lindqvist 135d7f5ff3 compiler.cfg.*: more unit tests 2015-04-29 09:31:59 -07:00
Björn Lindqvist 997f95196c compiler.cfg.*: lots of new unit tests 2015-04-29 09:31:58 -07:00
Björn Lindqvist 167d1598b3 compiler.cfg.linear-scan.allocation.*: lots more docs and some word simplifications 2015-04-29 09:31:58 -07:00
Björn Lindqvist 16f6025979 compiler.cfg.linear-scan.allocation.spilling: docs and tests for this vocab 2015-04-29 09:31:58 -07:00
Björn Lindqvist 5cd44dc07c compiler.cfg.linear-scan.allocation.state: set spill-area-size/align when the cfg tuple is created 2015-04-29 09:31:57 -07:00
Björn Lindqvist 4cda101717 compiler.cfg.linear-scan.allocation.state: more docs and tests for vocab 2015-04-29 09:31:57 -07:00