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" |