30 lines
		
	
	
		
			848 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			848 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2009, 2010 Slava Pestov
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: combinators
 | 
						|
compiler.cfg
 | 
						|
compiler.cfg.registers
 | 
						|
compiler.cfg.predecessors
 | 
						|
compiler.cfg.loop-detection
 | 
						|
compiler.cfg.representations.rewrite
 | 
						|
compiler.cfg.representations.peephole
 | 
						|
compiler.cfg.representations.selection
 | 
						|
compiler.cfg.representations.coalescing ;
 | 
						|
IN: compiler.cfg.representations
 | 
						|
 | 
						|
! Virtual register representation selection. This is where
 | 
						|
! decisions about integer tagging and float and vector boxing
 | 
						|
! are made. The appropriate conversion operations inserted
 | 
						|
! after a cost analysis.
 | 
						|
 | 
						|
: select-representations ( cfg -- cfg' )
 | 
						|
    needs-loops
 | 
						|
    needs-predecessors
 | 
						|
 | 
						|
    {
 | 
						|
        [ compute-components ]
 | 
						|
        [ compute-possibilities ]
 | 
						|
        [ compute-representations ]
 | 
						|
        [ insert-conversions ]
 | 
						|
        [ ]
 | 
						|
    } cleave ;
 |