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