38 lines
1.1 KiB
Factor
38 lines
1.1 KiB
Factor
|
! Copyright (C) 2009 Slava Pestov.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: accessors compiler.cfg.builder compiler.cfg.linear-scan
|
||
|
compiler.cfg.liveness compiler.cfg.mr compiler.cfg.optimizer
|
||
|
compiler.cfg.stacks.finalize compiler.cfg.stacks.global
|
||
|
compiler.codegen compiler.tree.builder compiler.tree.optimizer
|
||
|
kernel make sequences tools.annotations tools.crossref ;
|
||
|
IN: bootstrap.compiler.timing
|
||
|
|
||
|
: passes ( word -- seq )
|
||
|
def>> uses [ vocabulary>> "compiler." head? ] filter ;
|
||
|
|
||
|
: high-level-passes ( -- seq ) \ optimize-tree passes ;
|
||
|
|
||
|
: low-level-passes ( -- seq ) \ optimize-cfg passes ;
|
||
|
|
||
|
: machine-passes ( -- seq ) \ build-mr passes ;
|
||
|
|
||
|
: linear-scan-passes ( -- seq ) \ (linear-scan) passes ;
|
||
|
|
||
|
: all-passes ( -- seq )
|
||
|
[
|
||
|
\ build-tree ,
|
||
|
\ optimize-tree ,
|
||
|
high-level-passes %
|
||
|
\ build-cfg ,
|
||
|
\ compute-global-sets ,
|
||
|
\ finalize-stack-shuffling ,
|
||
|
\ optimize-cfg ,
|
||
|
low-level-passes %
|
||
|
\ compute-live-sets ,
|
||
|
\ build-mr ,
|
||
|
machine-passes %
|
||
|
linear-scan-passes %
|
||
|
\ generate ,
|
||
|
] { } make ;
|
||
|
|
||
|
all-passes [ [ reset ] [ add-timing ] bi ] each
|