20 lines
		
	
	
		
			608 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			608 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 Slava Pestov.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: kernel namespaces assocs fry sequences
 | 
						|
compiler.tree
 | 
						|
compiler.tree.escape-analysis.allocations
 | 
						|
compiler.tree.escape-analysis.recursive
 | 
						|
compiler.tree.escape-analysis.branches
 | 
						|
compiler.tree.escape-analysis.nodes
 | 
						|
compiler.tree.escape-analysis.simple ;
 | 
						|
IN: compiler.tree.escape-analysis
 | 
						|
 | 
						|
! This pass must run after propagation
 | 
						|
 | 
						|
: escape-analysis ( node -- node )
 | 
						|
    init-escaping-values
 | 
						|
    H{ } clone allocations set
 | 
						|
    H{ } clone slot-accesses set
 | 
						|
    dup (escape-analysis)
 | 
						|
    compute-escaping-allocations ;
 |