29 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								USING: compiler.tree disjoint-sets help.markup help.syntax ;
							 | 
						||
| 
								 | 
							
								IN: compiler.tree.escape-analysis.allocations
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: allocations
							 | 
						||
| 
								 | 
							
								{ $var-description "A map from values to one of the following:"
							 | 
						||
| 
								 | 
							
								  { $list
							 | 
						||
| 
								 | 
							
								    "f -- initial status, assigned to values we have not seen yet; may potentially become an allocation later"
							 | 
						||
| 
								 | 
							
								    "a sequence of values -- potentially unboxed tuple allocations"
							 | 
						||
| 
								 | 
							
								    "t -- not allocated in this procedure, can never be unboxed"
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: compute-escaping-allocations
							 | 
						||
| 
								 | 
							
								{ $description "Compute which tuples escape" } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: escaping-values
							 | 
						||
| 
								 | 
							
								{ $var-description "We track escaping values with a " { $link disjoint-set } "." } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: slot-access
							 | 
						||
| 
								 | 
							
								{ $var-description "We track slot access to connect constructor inputs with accessor outputs." } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: value-classes
							 | 
						||
| 
								 | 
							
								{ $var-description "A map from values to classes. Only for " { $link #introduce } " outputs." } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ARTICLE: "compiler.tree.escape-analysis.allocations" "Tracking memory allocations"
							 | 
						||
| 
								 | 
							
								"Tracks memory allocations and unboxes those which can be determined never escapes." ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ABOUT: "compiler.tree.escape-analysis.allocations"
							 |