factor/basis/compiler/tree/optimizer/optimizer.factor

44 lines
1.0 KiB
Factor
Raw Normal View History

! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
2008-09-08 20:02:24 -04:00
USING: kernel namespaces
compiler.tree.recursive
2008-09-08 20:02:24 -04:00
compiler.tree.normalization
2008-08-07 07:34:28 -04:00
compiler.tree.propagation
compiler.tree.cleanup
compiler.tree.escape-analysis
compiler.tree.escape-analysis.check
2008-08-07 07:34:28 -04:00
compiler.tree.tuple-unboxing
compiler.tree.identities
2008-08-07 07:34:28 -04:00
compiler.tree.def-use
compiler.tree.dead-code
compiler.tree.modular-arithmetic
compiler.tree.finalization
2008-08-15 00:35:19 -04:00
compiler.tree.checker ;
IN: compiler.tree.optimizer
2008-09-08 20:02:24 -04:00
SYMBOL: check-optimizer?
: ?check ( nodes -- nodes' )
check-optimizer? get [
dup check-nodes
] when ;
: optimize-tree ( nodes -- nodes' )
[
analyze-recursive
normalize
propagate
cleanup-tree
dup run-escape-analysis? [
escape-analysis
unbox-tuples
] when
apply-identities
compute-def-use
remove-dead-code
?check
compute-def-use
optimize-modular-arithmetic
finalize
] with-scope ;