Commit Graph

144 Commits (e3f69995194b93c4db8a64a2c01a0e8957d24fa9)

Author SHA1 Message Date
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 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 af62d33ba9 compiler.cfg.*: lots of new tests 2016-08-01 21:52:06 +02:00
Björn Lindqvist 75a3e191b2 compiler.*: a bunch of random doc additions 2016-06-21 23:15:20 +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
John Benediktsson 71ef8a22c2 disambiguate namespaces:set and sets:set. 2016-03-29 17:14:42 -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 3a9b297b3b compiler.cfg.*: better stack effect for end-stack-analysis 2016-03-16 10:53:33 +01:00
Björn Lindqvist 5663d39a76 compiler.*: more docs 2016-02-28 01:01:38 +01: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 43fb73fae6 factor: Rename I[ ]I to [I I]. Fix places where we do "string"token without whitespace. 2015-08-06 17:05:12 -05:00
Björn Lindqvist eba939c0f2 compiler.cfg.stacks.map: this vocab is subsumed by
compiler.cfg.stacks.padding which works much better
2015-07-21 13:36:11 +02:00
John Benediktsson 3ea9f09f6a fix some sets:members. 2015-07-20 09:32:31 -07:00
John Benediktsson a66bed77b3 compiler.cfg.stacks.clearing: fix help-lint. 2015-05-18 10:02:35 -07:00
John Benediktsson c7ea419874 compiler.cfg.stacks.clearing: fix tests. 2015-05-17 09:32:44 -07:00
Björn Lindqvist 9ceea3c241 compiler.*: new cfg instruction ##clear, it makes it easier to see where
the compiler.cfg.stacks.clearing pass inserts extra instructions
2015-05-17 07:59:34 +02:00
Björn Lindqvist 655faadec9 compiler.*: now when we're tracking uninitialized locations instead of
initialized ones, the height slot isn't needed on ##call anymore
2015-05-17 07:59:34 +02:00
Björn Lindqvist 6dd2fe31b6 compiler.cfg.stacks.*: new attempt at fixing the gc maps bugs
the padding vocab is inverted so that instead of trying to track which
locations are live, it tracks those which are dead which is much easier
to get right.
2015-05-17 07:59:34 +02:00
John Benediktsson 296968580a use assoc-reject instead of [ ... not ] assoc-filter. 2015-05-12 19:08:42 -07:00
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -07:00
Björn Lindqvist f9a6bb27f4 compiler.cfg.*: new test-case and setting leader-map to f is better 2015-05-09 20:10:27 -07:00
Björn Lindqvist 409a32d555 compiler.cfg.stacks.padding: docs 2015-05-09 20:04:23 -07:00
Björn Lindqvist ecf3829843 compiler.cfg.stacks.*: new vocab 'padding' to perform much more accurate
live analysis. it will replace the 'map' vocab
2015-05-09 20:04:22 -07:00
Björn Lindqvist a195e361df compiler.cfg.stacks.*: create-locs, word for creating stack locations
from a sequence
2015-05-09 20:04:21 -07:00
Björn Lindqvist b4e7ffede4 compiler.cfg.stacks.local: test and fix for a silly bug in
compute-local-kill-set (switched the order on ds and rs)
2015-04-29 09:32:00 -07:00
Björn Lindqvist 9fc73c3355 compiler.cfg.stacks.local: unused words 2015-04-29 09:32:00 -07:00
Björn Lindqvist 24ca0e3160 compiler.cfg.*: reverting the commit
5fd9e61bc04b054d58b8eeecbe9b5c59f68f2195, caused bad regressions in SIMD code
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 745d3f29b2 compiler.cfg.*: a bunch of new docstrings and other doc fixes 2015-04-29 09:31:56 -07:00
Björn Lindqvist f9812d9874 compiler.cfg.stacks.*: possible fix for #1289
instead of delaying outputting ##replace instructions to when they are
needed, output them directly in the block so that "holes" in the
stacks are avoided.
2015-04-29 09:31:56 -07:00
Björn Lindqvist 177a356240 compiler.cfg.stacks.local: refactorings on the vocab to try and make it using less dynamic variables 2015-04-29 09:31:56 -07:00
Björn Lindqvist 91144c0712 compiler.cfg.stacks.*: simplify the code a little by making replace-sets, peek-sets and kill-sets contain hash-sets instead of hash-tables 2015-04-29 09:31:56 -07:00
Björn Lindqvist 0ff4c68e15 compiler.cfg.stacks.local: to simplify, end-local-analysis can take the block it operates on as argument 2015-04-29 09:31:56 -07:00
Björn Lindqvist b983053130 compiler.cfg.*: putting test-init in compiler.cfg.stacks.tests didn't work, put new word cfg-unit-test in compiler.test 2015-04-29 09:31:55 -07:00
Björn Lindqvist 4390561a6e compiler.cfg.*: new word reset-vreg-counter, useful for making test writing more convenient 2015-04-29 09:31:55 -07:00
Björn Lindqvist 2536943e82 compiler.cfg.*: new word connect-Nto1-bbs
using that word predecessors is already up-to-date so calling needs-predecessors isn't needed
2015-04-29 09:31:55 -07:00
Björn Lindqvist 6559382028 compiler.cfg.*: ds-load removed 2015-04-29 09:31:55 -07:00
Björn Lindqvist cc1903bec1 compiler.cfg.*: some refactoring in the stack tracking for #shuffle nodes
instead of having separate words for the stacks like inc-d/r and ds/rs-store use generic words that work on either stack
2015-04-29 09:31:55 -07:00
Björn Lindqvist 837e098d41 compiler.cfg.*: a little more docs 2015-04-29 09:31:54 -07:00
Björn Lindqvist ba4736ff75 compiler.cfg.stacks.local: change current-height to a two-tuple { { d emit-d } { r emit-r } } it makes the code a bit simpler 2015-04-29 09:31:54 -07:00
Björn Lindqvist c360f0123b compiler.cfg.stacks: a few unused words removed 2015-04-29 09:31:54 -07:00
Björn Lindqvist acc1bd3221 compiler.*: removing the check-d and check-r slots from gc-map and adjusting code that depended on those 2015-04-29 09:31:53 -07:00
Björn Lindqvist 2cd2aa498a VM: the compiler doesn't emit any live overinitialized locations anymore
Any overinitialized location immediately becomes garbage and is not
reused again. This is very nice because then the gc maps can be
simpler again.
2015-04-29 09:31:53 -07:00
Björn Lindqvist ded3760d46 compiler.*: merge of ##inc-r and ##inc-d into one instruction ##inc with a loc slot
this is nice because it leads to simpler code and matches how ##peek and ##replace instructions work
2015-04-29 09:31:53 -07:00