29 lines
		
	
	
		
			788 B
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			29 lines
		
	
	
		
			788 B
		
	
	
	
		
			Factor
		
	
	
		
			Executable File
		
	
| ! Copyright (C) 2004, 2008 Slava Pestov.
 | |
| ! See http://factorcode.org/license.txt for BSD license.
 | |
| USING: accessors kernel sequences namespaces hashtables
 | |
| disjoint-sets
 | |
| compiler.tree
 | |
| compiler.tree.def-use
 | |
| compiler.tree.propagation.info
 | |
| compiler.tree.propagation.nodes
 | |
| compiler.tree.propagation.simple
 | |
| compiler.tree.propagation.branches
 | |
| compiler.tree.propagation.recursive
 | |
| compiler.tree.propagation.constraints
 | |
| compiler.tree.propagation.known-words ;
 | |
| IN: compiler.tree.propagation
 | |
| 
 | |
| : propagate-with ( node infos -- )
 | |
|     [
 | |
|         H{ } clone constraints set
 | |
|         >hashtable value-infos set
 | |
|         <disjoint-set> copies set
 | |
|         (propagate)
 | |
|     ] with-scope ;
 | |
| 
 | |
| : propagate ( node -- node )
 | |
|     dup f propagate-with ;
 | |
| 
 | |
| : propagate/node ( node existing -- )
 | |
|     info>> propagate-with ;
 |