35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
USING: compiler.cfg compiler.cfg.dominance.private help.markup help.syntax
 | 
						|
sequences ;
 | 
						|
IN: compiler.cfg.dominance
 | 
						|
 | 
						|
HELP: dom-parents
 | 
						|
{ $var-description "Maps bb -> idom(bb)" } ;
 | 
						|
 | 
						|
HELP: dom-children
 | 
						|
{ $values { "bb" basic-block } { "seq" sequence } }
 | 
						|
{ $description "Maps bb -> {bb' | idom(bb') = bb} or in other words, all basic blocks dominated by the given basic block." } ;
 | 
						|
 | 
						|
HELP: dom-parent
 | 
						|
{ $values { "bb" basic-block } { "bb'" basic-block } }
 | 
						|
{ $description "The basic block dominating the given block." } ;
 | 
						|
 | 
						|
HELP: needs-dominance
 | 
						|
{ $values { "cfg" cfg } }
 | 
						|
{ $description "Recalculates predecessor and dominance info for the given cfg." } ;
 | 
						|
 | 
						|
ARTICLE: "compiler.cfg.dominance" "A Simple, Fast Dominance Algorithm"
 | 
						|
"A Simple, Fast Dominance Algorithm" $nl
 | 
						|
"Keith D. Cooper, Timothy J. Harvey, and Ken Kennedy" $nl
 | 
						|
"http://www.cs.rice.edu/~keith/EMBED/dom.pdf"
 | 
						|
$nl
 | 
						|
"Also, a nice overview is given in these lecture notes:" $nl
 | 
						|
"http://llvm.cs.uiuc.edu/~vadve/CS526/public_html/Notes/4ssa.4up.pdf"
 | 
						|
$nl
 | 
						|
"To rebuild dominance information:"
 | 
						|
{ $subsections needs-dominance }
 | 
						|
"To read the dominance data:"
 | 
						|
{ $subsections dom-children dom-parent } ;
 | 
						|
 | 
						|
 | 
						|
ABOUT: "compiler.cfg.dominance"
 |