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? ;
|