| 
									
										
										
										
											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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | : each-with-next ( seq quot: ( elt -- ) -- )
 | 
					
						
							|  |  |  |     dupd '[ 1 + _ ?nth next-node set @ ] each-index ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-07 07:34:28 -04:00
										 |  |  | : (escape-analysis) ( node -- )
 | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         [ node-defs-values introduce-values ] | 
					
						
							|  |  |  |         [ escape-analysis* ] | 
					
						
							|  |  |  |         bi
 | 
					
						
							| 
									
										
										
										
											2009-08-09 17:29:21 -04:00
										 |  |  |     ] each-with-next ;
 |