31 lines
		
	
	
		
			753 B
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			753 B
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								USING: accessors assocs compiler.cfg.dataflow-analysis
							 | 
						||
| 
								 | 
							
								compiler.cfg.dataflow-analysis.private compiler.cfg.rpo compiler.cfg.utilities
							 | 
						||
| 
								 | 
							
								kernel tools.test ;
							 | 
						||
| 
								 | 
							
								IN: compiler.cfg.dataflow-analysis.tests
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								! run-dataflow-analysis
							 | 
						||
| 
								 | 
							
								TUPLE: im-a-dfa test ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: im-a-dfa block-order ( cfg dfa -- bbs )
							 | 
						||
| 
								 | 
							
								    drop post-order ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: im-a-dfa ignore-block? ( cfg bb -- ? )
							 | 
						||
| 
								 | 
							
								    2drop f ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: im-a-dfa predecessors ( bb dfa -- seq )
							 | 
						||
| 
								 | 
							
								    drop predecessors>> ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: im-a-dfa successors ( bb dfa -- seq )
							 | 
						||
| 
								 | 
							
								    drop successors>> ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: im-a-dfa join-sets ( sets bb dfa -- set )
							 | 
						||
| 
								 | 
							
								    2drop ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: im-a-dfa transfer-set ( in-set bb dfa -- out-set )
							 | 
						||
| 
								 | 
							
								    2drop ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								{ { V{ } } { V{ } } } [
							 | 
						||
| 
								 | 
							
								    { } 0 insns>block block>cfg 10 im-a-dfa boa run-dataflow-analysis
							 | 
						||
| 
								 | 
							
								    [ values ] bi@
							 | 
						||
| 
								 | 
							
								] unit-test
							 |