Commit Graph

248 Commits (2c82dfb51ba6923c2e7dcf3fac5109ae9da528f2)

Author SHA1 Message Date
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
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
Björn Lindqvist b4e4792cb6 compiler.cfg.*: a bunch of docs updates 2015-07-28 17:58:27 -07: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
Doug Coleman 892c62e1dc factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test 2015-07-03 09:39:59 -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 5ad35fabd1 compiler.cfg.*: lots of more compiler docs 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
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -07:00
Doug Coleman 62ea429c2b compiler.cfg.linear-scan.assignment: Trivial docs fix. 2015-04-30 18:39:31 -07:00
John Benediktsson a7cd03b45d compiler.cfg.linear-scan.assignment: fix help-lint. 2015-04-30 17:20:52 -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 2077ae9180 compiler.cfg.linear-scan.assignment: refactoring vreg>reg and
assign-registers-in-block so locals aren't needed
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 c3ca8bd859 compiler.cfg.*: even more compiler docs 2015-04-29 09:31:58 -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