24 lines
		
	
	
		
			714 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			714 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2008 Slava Pestov.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: classes classes.tuple math math.private accessors
 | 
						|
combinators kernel compiler.tree compiler.tree.combinators
 | 
						|
compiler.tree.propagation.info ;
 | 
						|
IN: compiler.tree.escape-analysis.check
 | 
						|
 | 
						|
GENERIC: run-escape-analysis* ( node -- ? )
 | 
						|
 | 
						|
M: #push run-escape-analysis*
 | 
						|
    literal>> [ class immutable-tuple-class? ] [ complex? ] bi or ;
 | 
						|
 | 
						|
M: #call run-escape-analysis*
 | 
						|
    {
 | 
						|
        { [ dup word>> \ <complex> eq? ] [ t ] }
 | 
						|
        { [ dup immutable-tuple-boa? ] [ t ] }
 | 
						|
        [ f ] 
 | 
						|
    } cond nip ;
 | 
						|
 | 
						|
M: node run-escape-analysis* drop f ;
 | 
						|
 | 
						|
: run-escape-analysis? ( nodes -- ? )
 | 
						|
    [ run-escape-analysis* ] contains-node? ;
 |