1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors kernel namespaces sequences assocs io
4 prettyprint inference generator optimizer
7 compiler.tree.optimizer
9 compiler.cfg.simplifier
10 compiler.machine.builder
11 compiler.machine.simplifier ;
12 IN: compiler.machine.debugger
14 : tree>linear ( tree word -- linear )
18 [ simplify-cfg build-mr simplify-mr ] assoc-map
21 : linear. ( linear -- )
27 : linearized-quot. ( quot -- )
28 build-tree optimize-tree
29 "Anonymous quotation" tree>linear
32 : linearized-word. ( word -- )
33 dup build-tree-from-word nip optimize-tree
34 dup word-dataflow nip optimize swap tree>linear linear. ;
36 : >basic-block ( quot -- basic-block )
37 build-tree optimize-tree
40 "Anonymous quotation" build-cfg
41 >alist first second simplify-cfg
44 : basic-block. ( basic-block -- )
45 instructions>> [ . ] each ;