Handbook
Glossary
<validation-cycle> ( seed collect? -- graph )
Vocabulary
compiler
.
cfg
.
register-allocation
.
validation
Inputs
seed
an
object
collect?
an
object
Outputs
graph
an
object
Definition
USING:
accessors
compiler.cfg
compiler.cfg.comparisons
compiler.cfg.instructions
compiler.cfg.registers
compiler.cfg.utilities
kernel
layouts
make
math
;
IN:
compiler.cfg.register-allocation.validation
::
<validation-cycle>
( seed collect? -- graph )
init-validation-representations
[
##prologue,
0
D:
0
##peek,
1 0
##tagged>integer,
2 seed 1
+
tag-fixnum
##load-integer,
3 seed 3
+
tag-fixnum
##load-integer,
4 seed 7
+
tag-fixnum
##load-integer,
##branch,
]
{
}
make
0
insns>block
:>
entry
<basic-block>
:>
header
[
collect?
[
200 201
##save-context,
V{
}
clone
H{
}
clone
gc-map
boa
##call-gc,
]
when
21 20 1
tag-fixnum
##sub-imm,
##branch,
]
{
}
make
2
insns>block
:>
body
[
30 11 2
##mul-imm,
31 12 4
##mul-imm,
32 10 30
##add,
33 32 31
##add,
33
D:
0
##replace,
##epilogue,
##return,
]
{
}
make
3
insns>block
:>
done
[
10
H{
{
entry 2
}
{
body 11
}
}
##phi,
11
H{
{
entry 3
}
{
body 12
}
}
##phi,
12
H{
{
entry 4
}
{
body 10
}
}
##phi,
20
H{
{
entry 1
}
{
body 21
}
}
##phi,
20 0
cc>
##compare-integer-imm-branch,
]
V{
}
make
header
instructions<<
entry header
connect-bbs
header body
connect-bbs
header done
connect-bbs
body header
connect-bbs
entry
block>cfg
;