factor/unfinished/compiler/machine/debugger/debugger.factor

46 lines
1.1 KiB
Factor

! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors kernel namespaces sequences assocs io
prettyprint inference generator optimizer
compiler.vops
compiler.tree.builder
compiler.tree.optimizer
compiler.cfg.builder
compiler.cfg.simplifier
compiler.machine.builder
compiler.machine.simplifier ;
IN: compiler.machine.debugger
: tree>linear ( tree word -- linear )
[
init-counter
build-cfg
[ simplify-cfg build-mr simplify-mr ] assoc-map
] with-scope ;
: linear. ( linear -- )
[
"==== " write swap .
[ . ] each
] assoc-each ;
: linearized-quot. ( quot -- )
build-tree optimize-tree
"Anonymous quotation" tree>linear
linear. ;
: linearized-word. ( word -- )
dup build-tree-from-word nip optimize-tree
dup word-dataflow nip optimize swap tree>linear linear. ;
: >basic-block ( quot -- basic-block )
build-tree optimize-tree
[
init-counter
"Anonymous quotation" build-cfg
>alist first second simplify-cfg
] with-scope ;
: basic-block. ( basic-block -- )
instructions>> [ . ] each ;