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
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
Björn Lindqvist
d0aae5cc20
compiler.cfg.linearization: number-blocks can set the number>> accessor
...
instead of using the numbers dynamic variable
2015-09-22 08:51:03 +02:00
John Benediktsson
e477f6996f
Fix comments to be ! not #!.
2015-09-08 16:15:10 -07:00
Björn Lindqvist
bc7f9ee669
VM: always use undecorated names when loading ffi functions
...
For win32, Factor tries four different function names when loading
stdcall and fastcall functions, in case decorated names are used in the
dll. It seems to not be necessary because a dll meant for 3rd party use
will always export undecorated
names (http://blogs.msdn.com/b/oldnewthing/archive/2004/01/12/57833.aspx ).
2015-09-02 21:54:41 +02:00
Björn Lindqvist
9725169ca7
compiler.cfg.intrinsics.misc: use the vm-special-object-offset word
2015-09-02 21:54:36 +02:00