30 lines
		
	
	
		
			874 B
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			874 B
		
	
	
	
		
			Factor
		
	
	
|  | ! Copyright (C) 2008 Slava Pestov. | ||
|  | ! See http://factorcode.org/license.txt for BSD license. | ||
|  | USING: sequences namespaces compiler.tree.builder | ||
|  | compiler.tree.recursive | ||
|  | compiler.tree.normalization | ||
|  | compiler.tree.propagation | ||
|  | compiler.tree.propagation.info | ||
|  | compiler.tree.cleanup | ||
|  | compiler.tree.def-use | ||
|  | compiler.tree.dead-code ;
 | ||
|  | IN: compiler.tree.late-optimizations | ||
|  | 
 | ||
|  | ! Late optimizations modify the tree such that stack flow | ||
|  | ! information is no longer accurate, since we punt in | ||
|  | ! 'splice-quot' and don't update everything that we should; | ||
|  | ! this simplifies the code, improves performance, and we | ||
|  | ! don't need the stack flow information after this pass anyway. | ||
|  | 
 | ||
|  | : splice-quot ( quot -- nodes )
 | ||
|  |     [ | ||
|  |         build-tree | ||
|  |         analyze-recursive  | ||
|  |         normalize | ||
|  |         propagate | ||
|  |         cleanup
 | ||
|  |         compute-def-use | ||
|  |         remove-dead-code | ||
|  |         but-last
 | ||
|  |     ] with-scope ;
 |