factor/basis/compiler/cfg/optimizer/optimizer.factor

37 lines
1.0 KiB
Factor
Raw Normal View History

! Copyright (C) 2008, 2009 Slava Pestov.
2008-10-22 19:41:37 -04:00
! See http://factorcode.org/license.txt for BSD license.
2009-05-27 19:58:01 -04:00
USING: kernel sequences accessors combinators namespaces
2008-11-03 00:09:31 -05:00
compiler.cfg.predecessors
compiler.cfg.useless-blocks
2008-10-22 22:59:07 -04:00
compiler.cfg.height
compiler.cfg.stack-analysis
2008-10-22 22:59:07 -04:00
compiler.cfg.alias-analysis
compiler.cfg.value-numbering
compiler.cfg.dce
compiler.cfg.write-barrier
compiler.cfg.liveness
2009-05-27 19:58:01 -04:00
compiler.cfg.rpo
compiler.cfg.phi-elimination ;
2008-10-22 19:41:37 -04:00
IN: compiler.cfg.optimizer
: optimize-cfg ( cfg -- cfg )
2008-10-22 19:41:37 -04:00
[
2009-05-27 19:58:01 -04:00
[
[ compute-predecessors ]
[ delete-useless-blocks ]
[ delete-useless-conditionals ] tri
] [
reverse-post-order
{
[ normalize-height ]
[ stack-analysis ]
[ compute-liveness ]
[ alias-analysis ]
[ value-numbering ]
[ eliminate-dead-code ]
[ eliminate-write-barriers ]
[ eliminate-phis ]
} cleave
] [ ] tri
] with-scope ;