22 lines
		
	
	
		
			591 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			591 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008, 2009 Slava Pestov.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: kernel sequences fry math namespaces
 | 
						|
compiler.tree
 | 
						|
compiler.tree.def-use
 | 
						|
compiler.tree.escape-analysis.allocations ;
 | 
						|
IN: compiler.tree.escape-analysis.nodes
 | 
						|
 | 
						|
GENERIC: escape-analysis* ( node -- )
 | 
						|
 | 
						|
SYMBOL: next-node
 | 
						|
 | 
						|
: each-with-next ( ... seq quot: ( ... elt -- ... ) -- ... )
 | 
						|
    dupd '[ 1 + _ ?nth next-node set @ ] each-index ; inline
 | 
						|
 | 
						|
: (escape-analysis) ( node -- )
 | 
						|
    [
 | 
						|
        [ node-defs-values introduce-values ]
 | 
						|
        [ escape-analysis* ]
 | 
						|
        bi
 | 
						|
    ] each-with-next ;
 |