Björn Lindqvist
db9093dd5c
compiler.cfg.stacks.*: new docs
...
Mostly from making comments into doc definitions
2016-03-16 15:21:42 +01:00
Björn Lindqvist
f80513cd99
compiler.cfg.dataflow-analysis: removes the -analysis from the dfa token
...
It makes the FORWARD-ANALYSIS: and BACKWARD-ANALYSIS: functors less
magical if the generated singletons name is the same as in the syntax.
2016-03-16 14:40:58 +01:00
Björn Lindqvist
4a472d7882
compiler.cfg.builder.blocks: return the slots, they are absolutely
...
needed for bootstrap
2016-03-16 14:08:49 +01:00
Björn Lindqvist
f906f1c282
compiler.cfg.*: the make-kill-block word is not needed
2016-03-16 12:26:03 +01:00
Björn Lindqvist
5ca571e304
compiler.cfg.builder.blocks: some cleanup
2016-03-16 11:48:31 +01:00
Björn Lindqvist
3a9b297b3b
compiler.cfg.*: better stack effect for end-stack-analysis
2016-03-16 10:53:33 +01:00
Björn Lindqvist
d62240a0a2
compiler.codegen.relocation.tests: fix test so it works on windows too
2016-03-13 07:37:49 +01:00
Björn Lindqvist
db4c4665f3
Docs: doc updates
2016-03-13 07:37:20 +01:00
Björn Lindqvist
076abf04ce
compiler.*: new tests
2016-03-09 23:24:43 +01:00
Björn Lindqvist
b51bd79819
compiler.cfg.*: new doc files
2016-03-09 23:24:43 +01:00
Björn Lindqvist
442827ade9
compiler.cfg.intrinsics.fixnum: more docs and tests
2016-03-09 23:24:43 +01:00
Björn Lindqvist
b27634bff7
compiler.cfg.builder.blocks: removes assignments to basic-block variable
...
Now it isn't used at all in the cfg creation step.
2016-03-09 23:24:43 +01:00
Björn Lindqvist
9df955e199
compiler.cfg.*: big changes which removes the last basic-block uses
...
All intrinsic code generating words signatures are changed from ( node
-- ) to ( block node -- block' ) so the current block is now always
passed on the stack.
2016-03-09 23:24:42 +01:00
Björn Lindqvist
482998974b
compiler.cfg.*: more refactoring to remove basic-block get:s
...
Now almost all words pass around the current basic block on the
stack. Left is updating all intrinsics.
2016-03-09 23:24:42 +01:00
Björn Lindqvist
f9c6d7cc43
compiler.cfg.*: changes to remove basic-block variable
...
The emit-node generics signature is changed to ( block node -- block' )
so that it always returns the next block to operate on. Signature for a
lot of related words are changed similarily. Now there is only a few
basic-block usages left.
2016-03-09 23:24:42 +01:00
Björn Lindqvist
07adc2ecae
compiler.cfg.*: changed generic emit-node to take the current block as
...
stack parameter
The idea is to eventually completely remove the basic-block dynamic
variable from cfg construction.
2016-03-09 23:24:42 +01:00
Björn Lindqvist
5663d39a76
compiler.*: more docs
2016-02-28 01:01:38 +01:00
Björn Lindqvist
7247906bf8
vm: remove vm-field-offset and context-field-offset
...
Shorter to just write "vm offset-of" and "context offset-of"
2015-12-14 09:29:18 +01:00
John Benediktsson
3affad7681
docs: using $maybe.
2015-12-11 17:05:45 -08:00
Björn Lindqvist
24db8a5d7f
compiler.tests.callstack-overflow: disable test for os x 64, see #1478
2015-12-08 02:16:51 +01:00
Björn Lindqvist
a35895f222
compiler.cfg.intrinsics: fix doc and make tests work on 32bit
2015-12-01 13:43:45 +01:00
Björn Lindqvist
02c80423ba
compiler.cfg.intrinsics.slots: refactor + docs & tests
2015-11-28 01:55:12 +01:00
Björn Lindqvist
6a2c36f5ec
compiler.cfg.builder.blocks: help-lint fix
2015-11-23 16:32:01 +01:00
Björn Lindqvist
63fd4d25cf
compiler.cfg.*: more fixes to pass basic-block on the stack than in a
...
dynamic variable
2015-11-22 01:06:11 +01:00
Björn Lindqvist
1421779c9e
compiler.cfg.*: refactors words to take a block parameter instead of
...
using the basic-block dynamic variable
the idea is to make the code easier to follow by limiting the use of
dynamic variables
2015-11-22 00:37:34 +01:00
Björn Lindqvist
e1b22e0af4
compiler.tree.dead-code.simple: small refactoring and docs
2015-11-22 00:37:33 +01:00
Björn Lindqvist
097b40ce41
compiler.tree.propagation.recursive: better counter-class
2015-11-22 00:37:33 +01:00
Björn Lindqvist
a3be724f5a
compiler.tree.propagation.info: better code for wrap-interval
2015-11-16 12:30:24 +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
4890239c3c
compiler.tree.propagation.tests: #1370 specific test
2015-09-22 09:03:16 +02:00
Björn Lindqvist
804348287c
Docs: fix a bunch of help-lint warnings
2015-09-22 08:52:59 +02:00
Björn Lindqvist
c5b92cedcb
compiler.*: even more compiler docs
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
3e485652fe
compiler.tree.propagation.slots: looks like you can do without the
...
constructor-output-class word
2015-09-22 08:52:59 +02:00
Björn Lindqvist
09ad5bd617
compiler.tree.propagation.slots: docs & tests for the vocab
2015-09-22 08:52:59 +02:00
Björn Lindqvist
4ee88bdc3d
compiler.tree.propagation.info: better logic for comparing value-infos
...
Now the slots of the value infos only matter if the class of the first
info is at least as large as the class of the second info
2015-09-22 08:52:37 +02:00
Björn Lindqvist
bc0cdff2c6
compiler.tree.propagation.info: fixed value-info<= so that it handles
...
slots correctly
if a slot is defined for a value-info, then it can't be <= a value-info
without that slot defined
2015-09-22 08:52:37 +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
ea67379751
compiler.tree.*: new tests
2015-09-22 08:52:37 +02:00
Björn Lindqvist
b9ce4910af
compiler.tree.*: docs
2015-09-22 08:52:36 +02:00
Björn Lindqvist
aaef9af863
compiler.cfg.*: random doc updates
2015-09-22 08:51:46 +02:00
Björn Lindqvist
a1153e6de1
compiler.tree.propagation.info: more docs and tests for the vocab
2015-09-22 08:51:46 +02:00
Björn Lindqvist
bb8b77419f
compiler.tree.propagation.nodes: the loop-nesting variable appears unused
2015-09-22 08:51:05 +02:00
Björn Lindqvist
44092bf78d
compiler.tree.propagation.*: better to use 2array than the "cuter" /\ word
2015-09-22 08:51:05 +02:00
Björn Lindqvist
9369f8216f
compiler.tree.propagation.constraints: docs for this vocab
2015-09-22 08:51:04 +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