| 
									
										
										
										
											2010-05-04 19:08:01 -04:00
										 |  |  | ! Copyright (C) 2009, 2010 Slava Pestov. | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  | USING: accessors kernel make sequences tools.annotations tools.crossref ;
 | 
					
						
							|  |  |  | QUALIFIED: compiler.cfg.builder | 
					
						
							|  |  |  | QUALIFIED: compiler.cfg.linear-scan | 
					
						
							|  |  |  | QUALIFIED: compiler.cfg.optimizer | 
					
						
							| 
									
										
										
										
											2010-05-04 19:08:01 -04:00
										 |  |  | QUALIFIED: compiler.cfg.finalization | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  | QUALIFIED: compiler.codegen | 
					
						
							|  |  |  | QUALIFIED: compiler.tree.builder | 
					
						
							|  |  |  | QUALIFIED: compiler.tree.optimizer | 
					
						
							| 
									
										
										
										
											2010-05-14 16:43:14 -04:00
										 |  |  | QUALIFIED: compiler.cfg.liveness | 
					
						
							|  |  |  | QUALIFIED: compiler.cfg.liveness.ssa | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  | IN: bootstrap.compiler.timing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : passes ( word -- seq )
 | 
					
						
							|  |  |  |     def>> uses [ vocabulary>> "compiler." head? ] filter ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  | : high-level-passes ( -- seq ) \ compiler.tree.optimizer:optimize-tree passes ;
 | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  | : low-level-passes ( -- seq ) \ compiler.cfg.optimizer:optimize-cfg passes ;
 | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-04 19:08:01 -04:00
										 |  |  | : machine-passes ( -- seq ) \ compiler.cfg.finalization:finalize-cfg passes ;
 | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  | : linear-scan-passes ( -- seq ) \ compiler.cfg.linear-scan:(linear-scan) passes ;
 | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : all-passes ( -- seq )
 | 
					
						
							|  |  |  |     [ | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  |         \ compiler.tree.builder:build-tree , | 
					
						
							|  |  |  |         \ compiler.tree.optimizer:optimize-tree , | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  |         high-level-passes % | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  |         \ compiler.cfg.builder:build-cfg , | 
					
						
							|  |  |  |         \ compiler.cfg.optimizer:optimize-cfg , | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  |         low-level-passes % | 
					
						
							| 
									
										
										
										
											2010-05-04 19:08:01 -04:00
										 |  |  |         \ compiler.cfg.finalization:finalize-cfg , | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  |         machine-passes % | 
					
						
							|  |  |  |         linear-scan-passes % | 
					
						
							| 
									
										
										
										
											2009-08-03 14:34:28 -04:00
										 |  |  |         \ compiler.codegen:generate , | 
					
						
							| 
									
										
										
										
											2010-05-14 16:43:14 -04:00
										 |  |  |         \ compiler.cfg.liveness:compute-live-sets , | 
					
						
							|  |  |  |         \ compiler.cfg.liveness.ssa:compute-ssa-live-sets , | 
					
						
							| 
									
										
										
										
											2009-07-30 22:27:52 -04:00
										 |  |  |     ] { } make ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | all-passes [ [ reset ] [ add-timing ] bi ] each
 |