John Benediktsson
c3a4bdcf68
compiler.cfg.linear-scan.resolve: use if-empty.
2014-12-11 14:00:50 -08:00
John Benediktsson
068ddd6c7b
compiler: cleanup cfg passes to have stack effect ( cfg -- )
2014-12-11 12:48:43 -08:00
Björn Lindqvist
33500db79f
compiler.cfg.*: help-lint and test case fixes
2014-12-11 15:02:40 +01:00
Björn Lindqvist
08e9f18c3b
compiler.cfg.*: fix for test cases that broke due to stack effect changes
2014-12-11 14:30:47 +01:00
Björn Lindqvist
bfc0ef815b
compiler.cfg.dominance: fix for #1227 , the dom children needs to be sorted to ensure that the same instruction sequence is generated every time
2014-12-11 14:30:47 +01:00
Björn Lindqvist
628c87c5b1
compiler.cfg.utilities: adding connect-bbs and make-edges
2014-12-11 14:30:47 +01:00
Björn Lindqvist
00e2d9f116
compiler.cfg.dominance: some more docs
2014-12-11 14:30:47 +01:00
Björn Lindqvist
c85175c10c
compiler.cfg.*: new utility word apply-passes to improve the looks of long cleave's where each quotation only contains one word
2014-12-11 14:30:47 +01:00
Björn Lindqvist
e371327ec4
compiler.cfg.ssa.construction.tests: fix tc broken by previous commit
2014-12-11 14:30:47 +01:00
Björn Lindqvist
befbe0bb59
compiler.cfg.dominance: changed stack effect compute-dominance ( cfg -- cfg' ) to ( cfg -- )
2014-12-11 14:30:47 +01:00
Björn Lindqvist
e5866dfa80
compiler.cfg.*: changed stack effect of needs-predecessors from ( cfg -- cfg') to ( cfg -- )
2014-12-11 14:30:47 +01:00
Björn Lindqvist
76cb665a8d
compiler.cfg.dominance: change needs-dominance effect from ( cfg -- cfg') to ( cfg -- )
2014-12-11 14:30:46 +01:00
Björn Lindqvist
054982f24a
compiler.cfg.*: docs for compiler.cfg.dominance and compiler.cfg.ssa.construction
2014-12-11 14:30:46 +01:00
Björn Lindqvist
53b7f82368
Docs: more compiler docs
2014-12-11 14:30:46 +01:00
Björn Lindqvist
5fe9ce4235
compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- )
2014-12-11 14:30:46 +01:00
Björn Lindqvist
a0d4e9b417
compiler.cfg.stacks.uninitialized: this compiler pass isn't used anymore -- let's get rid of it
2014-12-11 14:30:46 +01:00
Björn Lindqvist
8744d908b6
compiler.cfg.*: fix stack effect of compiler passes in optimize-cfg
...
since they all modify the cfg in place, it is better if their stack
effect is ( cfg -- ) instead of ( cfg -- cfg' )
2014-12-11 14:30:45 +01:00
Björn Lindqvist
971a157369
compiler.cfg.instructions: ##alien-assembly should be in the alien-call-insn union but not gc-map-insn
2014-12-08 18:13:46 -08:00
Björn Lindqvist
52d3affeb8
compiler.cfg.*: the ##alien-assembly instruction does not use a gc-map
2014-12-08 18:13:46 -08:00
John Benediktsson
ad9d44aa2b
compiler.cfg.linear-scan.allocation.state: simplify init-unhandled.
2014-12-01 22:18:15 -08:00
John Benediktsson
c0d6fdedd1
classes.tuple: use slots>tuple when possible.
2014-11-29 16:54:50 -08:00
Doug Coleman
cd8b686639
compiler.tests.alien: Test demonstrates padding bytes breaking struct= on linux32. Disable for now.
2014-11-24 08:20:28 -08:00
Doug Coleman
20add9544a
compiler.cfg: cfg>insns has to go in linearization because of bootstrap circularity. Fix usings.
2014-11-23 22:53:27 -08:00
Björn Lindqvist
4c07d04417
compiler.cfg.*: getting an instruction sequence from a cfg is used in a few tests so let's make a word for it
2014-11-24 06:25:34 +01:00
Björn Lindqvist
22c512788b
compiler.codegen.gc-maps.tests: fix tests for win 64
2014-11-24 04:20:34 +01:00
Björn Lindqvist
9b7a873f6d
compiler.cfg.build-stack-frame.tests: improved fix for the test case
2014-11-24 03:42:27 +01:00
Doug Coleman
d40faa3bdc
compiler.cfg: Add vocabulary for words defined just to test compiler.cfg.
2014-11-23 01:06:46 -08:00
Doug Coleman
3b3103b545
compiler.cfg.scheduling: Fix V{ } -> { } unit test.
2014-11-22 17:43:27 -08:00
Björn Lindqvist
964ae127a2
compiler.cfg.dependence: docs
2014-11-22 17:31:40 -08:00
Björn Lindqvist
aca14563b0
compiler.cfg.dependence/scheduling: fix(?) for #1187 , just avoid shuffling ##peek...
2014-11-22 17:31:40 -08:00
Björn Lindqvist
9d0379b9ba
compiler.cfg.dependence: if node subclasses identity-tuple it doesn't need the number slot
2014-11-22 17:31:40 -08:00
Björn Lindqvist
eb9ca1c6fe
compiler.cfg.dependence: node class doesn't need parent attribute, that's nice
2014-11-22 17:31:40 -08:00
Björn Lindqvist
0feece123c
compiler.cfg.dependence/scheduling.tests: new tests, some that doesnt work yet
2014-11-22 17:31:40 -08:00
Björn Lindqvist
8347f43f84
compiler.cfg.dependence/scheduling: refactoring to get rid of node's follows>>
2014-11-22 17:31:40 -08:00
Björn Lindqvist
645a70f1d4
compiler.cfg.scheduling: refactoring to get rid of the roots dynamic variable
2014-11-22 17:31:39 -08:00
Björn Lindqvist
a96fff60af
compiler.cfg.dependence: keys-for ?first is not deterministic, use tiebreak-parents to get predictable ordering
2014-11-22 17:31:39 -08:00
Björn Lindqvist
7ebceb50e5
compiler.cfg.dependence/scheduling: select-parent and roots moved to scheduling
...
the roots stuff is only used by compiler.cfg.scheduling, so it's more
simple to have it there than in compiler.cfg.dependence
2014-11-22 17:31:39 -08:00
Björn Lindqvist
586c47e5ab
compiler.cfg.dependence/scheduling: more readable version of the select word
2014-11-22 17:31:39 -08:00
Björn Lindqvist
b5754d32ef
compiler.cfg.dependence: moved tree verification code to .tests
...
Since verify-trees just checked that make-trees worked correctly, it's
better to have that code in the test vocab instead of slowing down
every compile by running it
2014-11-22 17:31:39 -08:00
Björn Lindqvist
2ea1a999a4
compiler.cfg.dependence.tests: unit tests for the dependence vocab
2014-11-22 17:31:39 -08:00
Björn Lindqvist
3f3cc0eb8a
compiler.cfg.dependence: now the nodes are on the stack instead of being saved in a dynamic variable (fp++)
2014-11-22 17:31:39 -08:00
Björn Lindqvist
2cfd55b864
compiler.cfg.dependence/scheduling: refactoring, trying to get rid of the ugly usage of nodes dynamic variable
2014-11-22 17:31:39 -08:00
Björn Lindqvist
0a7726b66d
compiler.cfg.dependence: more docs for the vocab
2014-11-22 17:31:38 -08:00
Björn Lindqvist
a1b20e451b
compiler.cfg.scheduling: split-insns returns a 3-tuple instead of 3 items on the stack
2014-11-22 17:31:38 -08:00
Björn Lindqvist
c777cb954a
compiler.cfg.scheduling: refactor to use split-insns and compiler.cfg.linear-scan.numbering + tests
2014-11-22 17:31:38 -08:00
Björn Lindqvist
96396cb3ad
compiler.*: use block>cfg and insns>block in many tests instead of wordier code
2014-11-22 17:31:38 -08:00
Björn Lindqvist
c8a022423e
compiler.cfg.utilities: move and rename the helper words block>cfg, insns>block and insns>cfg, they are useful to many testing vocabs
2014-11-22 17:31:38 -08:00
John Benediktsson
44f31ee13e
use swapd instead of [ swap ] dip.
2014-11-21 11:56:17 -08:00
Doug Coleman
46174ab748
compiler.cfg.build-stack-frame: Fix test for win64
2014-11-18 14:21:45 -08:00
John Benediktsson
60d0937041
compiler.cfg.instructions: fix help-lint.
2014-11-16 16:22:13 -08:00