parent
							
								
									a15b20a671
								
							
						
					
					
						commit
						32d9102feb
					
				| 
						 | 
				
			
			@ -8,7 +8,7 @@ compiler.cfg.def-use
 | 
			
		|||
compiler.cfg.renaming
 | 
			
		||||
compiler.cfg.dominance
 | 
			
		||||
compiler.cfg.instructions
 | 
			
		||||
compiler.cfg.ssa.liveness
 | 
			
		||||
compiler.cfg.liveness.ssa
 | 
			
		||||
compiler.cfg.ssa.cssa
 | 
			
		||||
compiler.cfg.ssa.interference
 | 
			
		||||
compiler.cfg.ssa.interference.live-ranges
 | 
			
		||||
| 
						 | 
				
			
			@ -97,11 +97,11 @@ M: insn prepare-insn drop ;
 | 
			
		|||
: destruct-ssa ( cfg -- cfg' )
 | 
			
		||||
    dup cfg-has-phis? [
 | 
			
		||||
        dup construct-cssa
 | 
			
		||||
        dup precompute-liveness
 | 
			
		||||
        compute-ssa-live-sets
 | 
			
		||||
        dup compute-defs
 | 
			
		||||
        dup compute-dominance
 | 
			
		||||
        dup compute-live-ranges
 | 
			
		||||
        dup prepare-coalescing
 | 
			
		||||
        process-copies
 | 
			
		||||
        dup perform-renaming
 | 
			
		||||
    ] when ;
 | 
			
		||||
    ] when ;
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
USING: accessors compiler.cfg compiler.cfg.debugger
 | 
			
		||||
compiler.cfg.def-use compiler.cfg.dominance
 | 
			
		||||
compiler.cfg.instructions compiler.cfg.ssa.liveness
 | 
			
		||||
compiler.cfg.instructions compiler.cfg.liveness.ssa
 | 
			
		||||
compiler.cfg.registers compiler.cfg.predecessors
 | 
			
		||||
compiler.cfg.ssa.interference
 | 
			
		||||
compiler.cfg.ssa.interference.live-ranges cpu.architecture
 | 
			
		||||
| 
						 | 
				
			
			@ -9,8 +9,8 @@ IN: compiler.cfg.ssa.interference.tests
 | 
			
		|||
 | 
			
		||||
: test-interference ( -- )
 | 
			
		||||
    cfg new 0 get >>entry
 | 
			
		||||
    compute-ssa-live-sets
 | 
			
		||||
    compute-predecessors
 | 
			
		||||
    dup precompute-liveness
 | 
			
		||||
    dup compute-defs
 | 
			
		||||
    dup compute-dominance
 | 
			
		||||
    compute-live-ranges ;
 | 
			
		||||
| 
						 | 
				
			
			@ -49,4 +49,4 @@ V{
 | 
			
		|||
[ t ] [ V int-regs 3 V int-regs 5 vregs-interfere? ] unit-test
 | 
			
		||||
[ t ] [ V int-regs 5 V int-regs 3 vregs-interfere? ] unit-test
 | 
			
		||||
[ f ] [ V int-regs 3 V int-regs 6 vregs-interfere? ] unit-test
 | 
			
		||||
[ f ] [ V int-regs 6 V int-regs 3 vregs-interfere? ] unit-test
 | 
			
		||||
[ f ] [ V int-regs 6 V int-regs 3 vregs-interfere? ] unit-test
 | 
			
		||||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
! See http://factorcode.org/license.txt for BSD license.
 | 
			
		||||
USING: accessors assocs fry kernel namespaces sequences math
 | 
			
		||||
arrays compiler.cfg.def-use compiler.cfg.instructions
 | 
			
		||||
compiler.cfg.ssa.liveness compiler.cfg.rpo ;
 | 
			
		||||
compiler.cfg.liveness.ssa compiler.cfg.rpo ;
 | 
			
		||||
IN: compiler.cfg.ssa.interference.live-ranges
 | 
			
		||||
 | 
			
		||||
! Live ranges for interference testing
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue