Björn Lindqvist
1b08ef3593
compiler.cfg.builder.*: fix for tests that broke on windows
2016-08-05 01:01:25 +02:00
Björn Lindqvist
e67745aaba
stack-checker.*: removes the in-d and out-d slots from the alien-node-params tuple
...
That data is already on the #alien-node tuple so it doesn't need to be
stored twice.
2016-08-04 20:30:58 +02:00
Björn Lindqvist
5794ca6834
compiler.cfg.builder.alien.tests: fix for the test case i broke
2016-08-02 01:29:19 +02:00
Björn Lindqvist
af62d33ba9
compiler.cfg.*: lots of new tests
2016-08-01 21:52:06 +02:00
Björn Lindqvist
2e332f73b5
compiler.*: new docs
2016-08-01 21:52:05 +02:00
Björn Lindqvist
e359f3fca4
compiler.cfg.builder.alien.params: refactors the next-reg-param and reg-class-full? words
2016-08-01 21:52:05 +02:00
Björn Lindqvist
8aef16bed2
compiler.cfg.builder.alien.*: merge of with-param-regs and with-param-regs*
2016-08-01 21:52:05 +02: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
75a3e191b2
compiler.*: a bunch of random doc additions
2016-06-21 23:15:20 +02:00
Björn Lindqvist
2fe26444aa
compiler.cfg.builder.*: docs and tests
2016-05-24 17:22:38 +02:00
Björn Lindqvist
249483fc4f
compiler.cfg.value-numbering.*: new docs
2016-05-24 17:21:27 +02:00
Björn Lindqvist
e60d45a169
Docs: fixing help-lint failures
2016-05-20 13:35:08 +02:00
Björn Lindqvist
27f9613694
compiler.cfg.value-numbering.comparisons: some duplicated words that can
...
be removed
2016-05-19 16:15:36 +02:00
Björn Lindqvist
3810889f91
compiler.cfg.value-numbering.graph: docs and test
2016-05-19 16:10:06 +02:00
Björn Lindqvist
1eaa151a3c
compiler.cfg.value-numbering.comparisons: docs and tests
2016-05-19 14:04:23 +02:00
Björn Lindqvist
05de15bdc1
compiler.cfg.utilities: rewrite apply-passes as a macro
...
It makes for more detailed callstacks when profiling.
2016-05-18 23:49:03 +02:00
Björn Lindqvist
30451ebf5a
compiler.cfg.*: new slots ds-height and rs-height
...
They are used when recording the blocks stacks height instead of the
ds-heights and rs-heights variables. It makes the code a bit simpler.
2016-05-03 01:16:50 +02:00
Björn Lindqvist
b8e0d5e278
compiler.cfg.builder.*: the when* checks aren't needed
2016-04-30 09:28:30 +02: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
d5cb972a71
Docs: ui and compiler
2016-04-22 18:23:02 +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
3e14ceafe2
compiler.*: more compiler tests
2016-04-22 12:44:25 +02:00
Björn Lindqvist
e58e1b9a65
compiler.cfg.ssa.interference.live-ranges: Docs
2016-04-22 12:33:39 +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
Doug Coleman
41209a3a42
summary.txt: Delete empty lines and empty files.
2016-03-30 22:11:51 -07: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
John Benediktsson
3f18b71d07
cleanup some QUALIFIED: that are no longer needed.
2016-03-29 10:20:16 -07:00
Björn Lindqvist
ff99f69f02
compiler.cfg.save-contexts: fix $link markup
2016-03-27 23:47:08 +02:00
Björn Lindqvist
07aee7525f
compiler.cfg.save-contexts: ##save-context isn't need in front of ##call-gc
...
The reason is because the minor-gc primitive itself saves the
context. Not inlining context saves, saves 20 bytes/call site.
2016-03-27 19:21:50 +02:00
Björn Lindqvist
63ef600aa3
compiler.cfg.*: indentation fixes
2016-03-27 19:21:50 +02:00
Doug Coleman
d3bc2035a2
factor: remove rest of double paren words.
2016-03-25 03:13:27 -07:00
Björn Lindqvist
707bc801a4
compiler.cfg.stacks.local: replace-sets values must be hash-sets ( #1507 )
...
The compiler hang was because { D: 3 D: 2 } was unequal to { D: 2 D: 3
}, so using a set should fix that.
2016-03-16 16:32:50 +01:00
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
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
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
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
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
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
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
Björn Lindqvist
bdc4880b17
compiler.cfg.save-contexts: context-save-needed not needed because it's
...
the same as gc-map-insn
2015-08-14 20:19:51 -07: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
Doug Coleman
0bdc27053b
compiler: oops, assoc-empty? vs empty?. undo harvest-values here.
2015-08-08 12:27:36 -05:00
Doug Coleman
76cb13ac52
basis: use harvest-values
2015-08-08 12:24:22 -05:00