Alexander Iljin
eeeb65d7d8
compiler.cfg.stacks-docs: fix a typo
2016-10-30 14:18:53 -07:00
Alexander Iljin
47cd2861fb
compiler.tree.debugger-docs: fix a typo
2016-10-30 14:18:53 -07:00
Björn Lindqvist
c74a669dad
compiler.tree.propagation.info: undid a3be724f5a
to see if it solves #1513
2016-10-30 19:00:38 +01:00
Björn Lindqvist
46105b62f6
VM: change callstack>array primitive so it doesn't reverse anymore
...
This fixes one part of the #452 bug.
2016-10-13 01:34:55 +02:00
Björn Lindqvist
a102f7ad5d
compiler.cfg.*: bunch of doc updates
2016-10-08 07:08:00 +02:00
Björn Lindqvist
9eab4b5652
VM: make visit_instruction_operands() skip over uninitialized blocks
...
It will crash otherwise when compacting the code heap.
2016-09-29 06:35:35 +02:00
Björn Lindqvist
9e4a520862
compiler.test: this word is not used
2016-09-29 03:29:14 +02:00
Björn Lindqvist
409cf9bd3e
compiler.codegen: removing the insn-counts global
...
It created a histogram of instructins for debugging, but it is not so
useful...
2016-09-14 14:54:43 +02:00
Björn Lindqvist
ab7e077b1d
Docs: fixing docs & comments to work with new stack clearing
2016-09-12 02:11:51 +02:00
Björn Lindqvist
349f99661d
compiler.*: Remove the scrubbing part of the GC maps
...
Instead of generating GC maps which describe which stack locations that
are uninitialized, we emit ##clear instructions for those locations in
front of ##call-gc instructions. This makes the context root scanning
much simpler because the GC can assume that all stack slots are
initialized. It also removes the compiler.cfg.stacks.vacant pass and
seem to reduce the image size slightly because many fewer GC maps needs
to be emitted.
2016-09-11 20:34:44 +02:00
Björn Lindqvist
faaa898975
compiler.codegen.*: removing the init-gc-maps word
2016-09-09 18:57:57 +02:00
Björn Lindqvist
2f71e91dce
compiler.cfg.stacks.*: rename trace-stack-state2 -> trace-stack-state
2016-09-09 08:06:02 +02:00
Björn Lindqvist
9decb6a91e
compiler.cfg.*: better way to store the block height
...
It is stored as a height-state instance on the height slot of the
basic-block. It will make better analysis possible because you see how
much the height increased or decreased in the block.
2016-09-08 04:01:25 +02:00
Björn Lindqvist
670d2c344e
compiler.cfg.stacks.*: new word local-loc>global, replacing untranslate-loc
2016-09-08 04:01:25 +02:00
Björn Lindqvist
6f06b51443
compiler.cfg.stacks.local: simplified code for getting kill locations
2016-09-08 04:01:25 +02:00
Björn Lindqvist
c640e3b8c1
compiler.cfg.*: changing height-state from a 2-el array to a tuple
...
This way, it is a little easier to see what is going on in the local
analysis phase.
2016-09-08 04:01:25 +02:00
Björn Lindqvist
2edda80b5e
compiler.cfg.*: removing the adjust-d word
...
inc-stack can be used in emit-call-block if we check if the block is a
kill block in end-local-analysis
2016-09-05 12:12:01 +02:00
Björn Lindqvist
ee5c28f470
compiler.cfg.stacks.*: removing the adjust word which wasn't useful
2016-09-05 10:37:29 +02:00
Björn Lindqvist
a36ac6e435
compiler.tree: these constructor words aren't needed
2016-09-04 06:23:50 +02:00
Björn Lindqvist
367bff6339
compiler.cfg.builder: simplification of the shuffling logic
2016-09-04 06:22:54 +02:00
Björn Lindqvist
af7e4903a2
compiler.cfg.debugger: print -> write to not add stray newlines
2016-09-01 09:59:15 +02:00
Björn Lindqvist
26d53f9019
compiler.cfg.*: compiler doc updates
2016-09-01 02:16:30 +02:00
Björn Lindqvist
f7542e95a9
compiler.cfg.stacks.finalize: only insert blocks if they aren't empty
...
Previously, a lot of empty blocks were added too.
2016-09-01 01:54:11 +02:00
Björn Lindqvist
c26379ea7e
compiler.cfg.debugger: better code for outputting using the formatting vocab
2016-08-30 04:04:21 +02:00
Björn Lindqvist
b82ea14af0
sets,compiler.cfg.stacks.global: putting the refine word in sets
2016-08-30 02:34:37 +02:00
Björn Lindqvist
6c88577ee7
compiler.cfg.*: replacing the peek/replace/kill-sets with slots
...
So instead of storing the info in variables, it is stored in slots on
the basic-block tuple which is much nicer.
2016-08-29 12:07:47 +02:00
Björn Lindqvist
e8e1811542
compiler.cfg.stacks.height: removing vocab
...
It was so small so better to put the words it contained in the vocabs
where they are used.
2016-08-26 11:06:17 +02:00
Björn Lindqvist
f0834e7b36
compiler.prettyprint: new vocab for prettyprinting compiler types
...
The require-when ensures that the prettyprint methods are loaded when
both the compiler and prettyprint is loaded.
2016-08-15 15:16:41 +02:00
Björn Lindqvist
a36c0cb5ac
compiler.*: moving all words only relevant for testing to compiler.test
2016-08-12 15:13:51 +02:00
Björn Lindqvist
2a19e00ff3
compiler.cfg.test-words: vocab is unused so we can remove it
2016-08-12 14:06:19 +02:00
Björn Lindqvist
435a4e29b9
compiler.cfg.stacks.local: using compiler.cfg.debugger to ensure consistent prettyprint output
2016-08-12 13:55:10 +02:00
Björn Lindqvist
ddc5ece757
alien.*: frontend varargs support! #1677
...
alien-invoke gets an extra parameter indicating if the call uses varargs
or not. In 99.9% of the cases, the parameter should be f, but is t if
varargs are indicated. E.g
: do-printf ( fmt d -- st ) int f "printf" { c-string double } t alien-invoke ;
2016-08-10 21:34:37 +02:00
Björn Lindqvist
7ab3ebfdd5
compiler.cfg.builder.alien: simpler caller-stack-frame word
2016-08-10 21:34:37 +02:00
Björn Lindqvist
24a02a1c8f
compiler.*: Backend implementation of varargs
...
It is turned off by default. Support for using it coming soon. :)
2016-08-08 12:02:19 +02:00
Björn Lindqvist
a79309680c
compiler.*, stack-checker.*: fixes to make the tests work on 32bit too
2016-08-05 16:44:19 +02:00
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
00d15b66a6
compiler.tests.alien: tests for varargs calls
2016-08-02 23:36:02 +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
0cbd0552b0
bootstrap.image.primitives: resize-byte-array can also use integer-array-capacity
2016-05-24 14:20:46 +02:00
Björn Lindqvist
e60d45a169
Docs: fixing help-lint failures
2016-05-20 13:35:08 +02:00
Björn Lindqvist
9f0cd740c8
compiler.constants: docs
2016-05-19 21:49:51 +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
John Benediktsson
331483ab98
classes.algebra: removing valid-classoid? (enforced in constructors).
2016-04-13 14:29:24 -07: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
4bfcc86cc4
compiler.tests.stack-trace: use with-test-file.
2016-04-04 15:00:04 -07: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
46f781a56f
compiler.tests.stack-trace: remove temp-file usage.
2016-03-31 07:37:50 -07:00
Doug Coleman
41209a3a42
summary.txt: Delete empty lines and empty files.
2016-03-30 22:11:51 -07:00
Doug Coleman
391f8e433f
basis: Cleaning up tests using lists and IN: forms.
2016-03-30 20:04:14 -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
e7a42b1dc4
sets: rename unordered-set back to set.
2016-03-29 15:46:29 -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
John Benediktsson
6e035c3640
compiler.tests: fix a few KERNEL-ERROR.
2016-03-22 15:22:15 -07:00
John Benediktsson
9cc73c9492
graphs: move to core and simplify.
...
1. remove add-vertex* and remove-vertex* that contradicted the documentation.
2. graphs use hash-sets of edges instead of hashtables of {edge,edge} pairs.
3. make graphs:closure work like classes:closure, use in classes.
2016-03-21 10:20:38 -07:00
Björn Lindqvist
bce3a88287
stack-checker.known-words: fix input class declaration for <string>
...
it should be { integer-array-capacity integer } ofcourse
2016-03-19 18:59:19 +01:00
Björn Lindqvist
6f9ff8813e
compiler.*, stack-checker.known-words: adds the integer-array-capacity
...
This commit adds the integer-array-capacity declaration on a few
words. It should make loopy code compile faster and fix #1339
2016-03-18 20:46:41 +01:00
Björn Lindqvist
be4484d708
compiler.tree.*: fixes the propagation and dead-code removal logic so it
...
becomes aware of integer-array-capacity
2016-03-18 20:39:28 +01:00
Björn Lindqvist
a3ce61f8da
compiler.tree.cleanup: more docs and a test
2016-03-18 19:21:31 +01:00
Björn Lindqvist
6576660069
compiler.tree.dead-code.simple: tests and more docs
2016-03-18 19:21:31 +01: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