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
 |