1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel math accessors sequences
4 compiler.cfg compiler.cfg.rpo compiler.cfg.utilities ;
5 IN: compiler.cfg.critical-edges
7 : critical-edge? ( from to -- ? )
8 [ successors>> length 1 > ] [ predecessors>> length 1 > ] bi* and ;
10 : split-critical-edge ( from to -- )
11 f <simple-block> insert-basic-block ;
13 : split-critical-edges ( cfg -- )
17 [ split-critical-edge ] [ 2drop ] if