30 lines
874 B
Factor
30 lines
874 B
Factor
|
! Copyright (C) 2008 Slava Pestov.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: sequences namespaces compiler.tree.builder
|
||
|
compiler.tree.recursive
|
||
|
compiler.tree.normalization
|
||
|
compiler.tree.propagation
|
||
|
compiler.tree.propagation.info
|
||
|
compiler.tree.cleanup
|
||
|
compiler.tree.def-use
|
||
|
compiler.tree.dead-code ;
|
||
|
IN: compiler.tree.late-optimizations
|
||
|
|
||
|
! Late optimizations modify the tree such that stack flow
|
||
|
! information is no longer accurate, since we punt in
|
||
|
! 'splice-quot' and don't update everything that we should;
|
||
|
! this simplifies the code, improves performance, and we
|
||
|
! don't need the stack flow information after this pass anyway.
|
||
|
|
||
|
: splice-quot ( quot -- nodes )
|
||
|
[
|
||
|
build-tree
|
||
|
analyze-recursive
|
||
|
normalize
|
||
|
propagate
|
||
|
cleanup
|
||
|
compute-def-use
|
||
|
remove-dead-code
|
||
|
but-last
|
||
|
] with-scope ;
|