44 lines
1.0 KiB
Factor
44 lines
1.0 KiB
Factor
! Copyright (C) 2008 Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: kernel namespaces
|
|
compiler.tree.recursive
|
|
compiler.tree.normalization
|
|
compiler.tree.propagation
|
|
compiler.tree.cleanup
|
|
compiler.tree.escape-analysis
|
|
compiler.tree.escape-analysis.check
|
|
compiler.tree.tuple-unboxing
|
|
compiler.tree.identities
|
|
compiler.tree.def-use
|
|
compiler.tree.dead-code
|
|
compiler.tree.modular-arithmetic
|
|
compiler.tree.finalization
|
|
compiler.tree.checker ;
|
|
IN: compiler.tree.optimizer
|
|
|
|
SYMBOL: check-optimizer?
|
|
|
|
: ?check ( nodes -- nodes' )
|
|
check-optimizer? get [
|
|
dup check-nodes
|
|
] when ;
|
|
|
|
: optimize-tree ( nodes -- nodes' )
|
|
[
|
|
analyze-recursive
|
|
normalize
|
|
propagate
|
|
cleanup
|
|
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 ;
|