2009-08-09 17:29:21 -04:00
|
|
|
! Copyright (C) 2008, 2009 Slava Pestov.
|
2008-08-02 00:31:43 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-08-09 17:29:21 -04:00
|
|
|
USING: kernel sequences fry math namespaces
|
2008-08-07 07:34:28 -04:00
|
|
|
compiler.tree
|
|
|
|
compiler.tree.def-use
|
|
|
|
compiler.tree.escape-analysis.allocations ;
|
2008-08-02 00:31:43 -04:00
|
|
|
IN: compiler.tree.escape-analysis.nodes
|
|
|
|
|
|
|
|
GENERIC: escape-analysis* ( node -- )
|
|
|
|
|
2009-08-09 17:29:21 -04:00
|
|
|
SYMBOL: next-node
|
|
|
|
|
2010-03-09 02:38:10 -05:00
|
|
|
: each-with-next ( ... seq quot: ( ... elt -- ... ) -- ... )
|
2009-08-09 17:29:21 -04:00
|
|
|
dupd '[ 1 + _ ?nth next-node set @ ] each-index ; inline
|
|
|
|
|
2010-07-28 00:49:26 -04:00
|
|
|
: (escape-analysis) ( nodes -- )
|
2008-08-07 07:34:28 -04:00
|
|
|
[
|
|
|
|
[ node-defs-values introduce-values ]
|
|
|
|
[ escape-analysis* ]
|
|
|
|
bi
|
2009-08-09 17:29:21 -04:00
|
|
|
] each-with-next ;
|