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 |