51 lines
1.3 KiB
Factor
51 lines
1.3 KiB
Factor
|
USING: help.markup help.syntax literals multiline ;
|
||
|
IN: compiler.tree.propagation
|
||
|
|
||
|
STRING: propagate-ex
|
||
|
USING: compiler.tree.builder compiler.tree.propagation math prettyprint ;
|
||
|
[ 3 + ] build-tree propagate third .
|
||
|
T{ #call
|
||
|
{ word + }
|
||
|
{ in-d V{ 9450187 9450186 } }
|
||
|
{ out-d { 9450188 } }
|
||
|
{ info
|
||
|
H{
|
||
|
{
|
||
|
9450186
|
||
|
T{ value-info-state
|
||
|
{ class fixnum }
|
||
|
{ interval
|
||
|
T{ interval
|
||
|
{ from ~array~ }
|
||
|
{ to ~array~ }
|
||
|
}
|
||
|
}
|
||
|
{ literal 3 }
|
||
|
{ literal? t }
|
||
|
}
|
||
|
}
|
||
|
{
|
||
|
9450187
|
||
|
T{ value-info-state
|
||
|
{ class object }
|
||
|
{ interval full-interval }
|
||
|
}
|
||
|
}
|
||
|
{
|
||
|
9450188
|
||
|
T{ value-info-state
|
||
|
{ class number }
|
||
|
{ interval full-interval }
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
;
|
||
|
|
||
|
HELP: propagate
|
||
|
{ $values { "nodes" "a sequence of nodes" } }
|
||
|
{ $description "Performs the propagation pass of the AST optimization. All nodes info slots are initialized here." }
|
||
|
{ $examples { $unchecked-example $[ propagate-ex ] }
|
||
|
} ;
|