compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction
parent
80e10f1bd0
commit
d10993b837
|
@ -23,7 +23,7 @@ compiler.alien ;
|
|||
IN: compiler.cfg.builder
|
||||
|
||||
! Convert tree SSA IR to CFG IR. The result is not in SSA form; this is
|
||||
! constructed later by calling compiler.cfg.ssa:construct-ssa.
|
||||
! constructed later by calling compiler.cfg.ssa.construction:construct-ssa.
|
||||
|
||||
SYMBOL: procedures
|
||||
SYMBOL: loops
|
||||
|
|
|
@ -5,13 +5,13 @@ compiler.cfg.tco
|
|||
compiler.cfg.useless-conditionals
|
||||
compiler.cfg.branch-splitting
|
||||
compiler.cfg.block-joining
|
||||
compiler.cfg.ssa
|
||||
compiler.cfg.ssa.construction
|
||||
compiler.cfg.alias-analysis
|
||||
compiler.cfg.value-numbering
|
||||
compiler.cfg.copy-prop
|
||||
compiler.cfg.dce
|
||||
compiler.cfg.write-barrier
|
||||
compiler.cfg.coalescing
|
||||
compiler.cfg.ssa.destruction
|
||||
compiler.cfg.empty-blocks
|
||||
compiler.cfg.predecessors
|
||||
compiler.cfg.rpo
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
USING: accessors compiler.cfg compiler.cfg.debugger
|
||||
compiler.cfg.dominance compiler.cfg.instructions
|
||||
compiler.cfg.predecessors compiler.cfg.ssa assocs
|
||||
compiler.cfg.predecessors compiler.cfg.ssa.construction assocs
|
||||
compiler.cfg.registers cpu.architecture kernel namespaces sequences
|
||||
tools.test vectors ;
|
||||
IN: compiler.cfg.ssa.tests
|
||||
IN: compiler.cfg.ssa.construction.tests
|
||||
|
||||
: reset-counters ( -- )
|
||||
! Reset counters so that results are deterministic w.r.t. hash order
|
|
@ -10,7 +10,7 @@ compiler.cfg.liveness
|
|||
compiler.cfg.registers
|
||||
compiler.cfg.dominance
|
||||
compiler.cfg.instructions ;
|
||||
IN: compiler.cfg.ssa
|
||||
IN: compiler.cfg.ssa.construction
|
||||
|
||||
! SSA construction. Predecessors must be computed first.
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs hashtables fry kernel make namespaces
|
||||
sequences compiler.cfg.coalescing.state compiler.cfg.parallel-copy ;
|
||||
IN: compiler.cfg.coalescing.copies
|
||||
sequences compiler.cfg.ssa.destruction.state compiler.cfg.parallel-copy ;
|
||||
IN: compiler.cfg.ssa.destruction.copies
|
||||
|
||||
ERROR: bad-copy ;
|
||||
|
|
@ -9,15 +9,15 @@ compiler.cfg.dominance
|
|||
compiler.cfg.instructions
|
||||
compiler.cfg.liveness.ssa
|
||||
compiler.cfg.critical-edges
|
||||
compiler.cfg.coalescing.state
|
||||
compiler.cfg.coalescing.forest
|
||||
compiler.cfg.coalescing.copies
|
||||
compiler.cfg.coalescing.renaming
|
||||
compiler.cfg.coalescing.live-ranges
|
||||
compiler.cfg.coalescing.process-blocks ;
|
||||
IN: compiler.cfg.coalescing
|
||||
compiler.cfg.ssa.destruction.state
|
||||
compiler.cfg.ssa.destruction.forest
|
||||
compiler.cfg.ssa.destruction.copies
|
||||
compiler.cfg.ssa.destruction.renaming
|
||||
compiler.cfg.ssa.destruction.live-ranges
|
||||
compiler.cfg.ssa.destruction.process-blocks ;
|
||||
IN: compiler.cfg.ssa.destruction
|
||||
|
||||
! Fast Copy Coalescing and Live-Range Identification
|
||||
! Based on "Fast Copy Coalescing and Live-Range Identification"
|
||||
! http://www.cs.ucsd.edu/classes/sp02/cse231/kenpldi.pdf
|
||||
|
||||
! Dominance, liveness and def-use need to be computed
|
|
@ -1,9 +1,9 @@
|
|||
USING: accessors compiler.cfg compiler.cfg.coalescing.forest
|
||||
USING: accessors compiler.cfg compiler.cfg.ssa.destruction.forest
|
||||
compiler.cfg.debugger compiler.cfg.dominance compiler.cfg.instructions
|
||||
compiler.cfg.predecessors compiler.cfg.registers compiler.cfg.def-use
|
||||
cpu.architecture kernel namespaces sequences tools.test vectors sorting
|
||||
math.order ;
|
||||
IN: compiler.cfg.coalescing.forest.tests
|
||||
IN: compiler.cfg.ssa.destruction.forest.tests
|
||||
|
||||
V{ T{ ##peek f V int-regs 0 D 0 } } clone 0 test-bb
|
||||
V{ T{ ##peek f V int-regs 1 D 0 } } clone 1 test-bb
|
|
@ -2,8 +2,8 @@
|
|||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs combinators combinators.short-circuit
|
||||
kernel math namespaces sequences locals compiler.cfg.def-use
|
||||
compiler.cfg.dominance compiler.cfg.coalescing.live-ranges ;
|
||||
IN: compiler.cfg.coalescing.interference
|
||||
compiler.cfg.dominance compiler.cfg.ssa.destruction.live-ranges ;
|
||||
IN: compiler.cfg.ssa.destruction.interference
|
||||
|
||||
<PRIVATE
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
USING: accessors assocs fry kernel namespaces sequences math
|
||||
compiler.cfg.def-use compiler.cfg.instructions
|
||||
compiler.cfg.liveness compiler.cfg.rpo ;
|
||||
IN: compiler.cfg.coalescing.live-ranges
|
||||
IN: compiler.cfg.ssa.destruction.live-ranges
|
||||
|
||||
! Live ranges for interference testing
|
||||
|
|
@ -6,10 +6,10 @@ compiler.cfg.def-use
|
|||
compiler.cfg.instructions
|
||||
compiler.cfg.liveness
|
||||
compiler.cfg.dominance
|
||||
compiler.cfg.coalescing.state
|
||||
compiler.cfg.coalescing.forest
|
||||
compiler.cfg.coalescing.interference ;
|
||||
IN: compiler.cfg.coalescing.process-blocks
|
||||
compiler.cfg.ssa.destruction.state
|
||||
compiler.cfg.ssa.destruction.forest
|
||||
compiler.cfg.ssa.destruction.interference ;
|
||||
IN: compiler.cfg.ssa.destruction.process-blocks
|
||||
|
||||
! phi-union maps a vreg to the predecessor block
|
||||
! that carries it to the phi node's block
|
|
@ -1,9 +1,9 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors assocs fry kernel namespaces sequences
|
||||
compiler.cfg.coalescing.state compiler.cfg.renaming compiler.cfg.rpo
|
||||
compiler.cfg.ssa.destruction.state compiler.cfg.renaming compiler.cfg.rpo
|
||||
disjoint-sets ;
|
||||
IN: compiler.cfg.coalescing.renaming
|
||||
IN: compiler.cfg.ssa.destruction.renaming
|
||||
|
||||
: build-disjoint-set ( assoc -- disjoint-set )
|
||||
<disjoint-set> dup [
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: namespaces sets kernel assocs ;
|
||||
IN: compiler.cfg.coalescing.state
|
||||
IN: compiler.cfg.ssa.destruction.state
|
||||
|
||||
SYMBOLS: processed-names waiting used-by-another renaming-sets ;
|
||||
|
|
@ -3,7 +3,7 @@ USING: compiler.cfg.value-numbering compiler.cfg.instructions
|
|||
compiler.cfg.registers compiler.cfg.debugger compiler.cfg.comparisons
|
||||
cpu.architecture tools.test kernel math combinators.short-circuit
|
||||
accessors sequences compiler.cfg.predecessors locals
|
||||
compiler.cfg.dce compiler.cfg.coalescing
|
||||
compiler.cfg.dce compiler.cfg.ssa.destruction
|
||||
compiler.cfg assocs vectors arrays layouts namespaces ;
|
||||
|
||||
: trim-temps ( insns -- insns )
|
||||
|
|
Loading…
Reference in New Issue