diff --git a/basis/compiler/cfg/builder/builder.factor b/basis/compiler/cfg/builder/builder.factor index ed1069d043..0c40b93ba6 100755 --- a/basis/compiler/cfg/builder/builder.factor +++ b/basis/compiler/cfg/builder/builder.factor @@ -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 diff --git a/basis/compiler/cfg/optimizer/optimizer.factor b/basis/compiler/cfg/optimizer/optimizer.factor index b411c42a35..52c4c40c09 100644 --- a/basis/compiler/cfg/optimizer/optimizer.factor +++ b/basis/compiler/cfg/optimizer/optimizer.factor @@ -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 diff --git a/basis/compiler/cfg/ssa/ssa-tests.factor b/basis/compiler/cfg/ssa/construction/construction-tests.factor similarity index 95% rename from basis/compiler/cfg/ssa/ssa-tests.factor rename to basis/compiler/cfg/ssa/construction/construction-tests.factor index 6a3a014f78..da0f320130 100644 --- a/basis/compiler/cfg/ssa/ssa-tests.factor +++ b/basis/compiler/cfg/ssa/construction/construction-tests.factor @@ -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 diff --git a/basis/compiler/cfg/ssa/ssa.factor b/basis/compiler/cfg/ssa/construction/construction.factor similarity index 98% rename from basis/compiler/cfg/ssa/ssa.factor rename to basis/compiler/cfg/ssa/construction/construction.factor index 410d8fd951..23bed8bce0 100644 --- a/basis/compiler/cfg/ssa/ssa.factor +++ b/basis/compiler/cfg/ssa/construction/construction.factor @@ -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. diff --git a/basis/compiler/cfg/coalescing/copies/copies.factor b/basis/compiler/cfg/ssa/destruction/copies/copies.factor similarity index 83% rename from basis/compiler/cfg/coalescing/copies/copies.factor rename to basis/compiler/cfg/ssa/destruction/copies/copies.factor index f691002d64..063704e0f6 100644 --- a/basis/compiler/cfg/coalescing/copies/copies.factor +++ b/basis/compiler/cfg/ssa/destruction/copies/copies.factor @@ -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 ; diff --git a/basis/compiler/cfg/coalescing/coalescing.factor b/basis/compiler/cfg/ssa/destruction/destruction.factor similarity index 81% rename from basis/compiler/cfg/coalescing/coalescing.factor rename to basis/compiler/cfg/ssa/destruction/destruction.factor index 86dee8a3be..2d0cd26798 100644 --- a/basis/compiler/cfg/coalescing/coalescing.factor +++ b/basis/compiler/cfg/ssa/destruction/destruction.factor @@ -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 diff --git a/basis/compiler/cfg/coalescing/forest/forest-tests.factor b/basis/compiler/cfg/ssa/destruction/forest/forest-tests.factor similarity index 94% rename from basis/compiler/cfg/coalescing/forest/forest-tests.factor rename to basis/compiler/cfg/ssa/destruction/forest/forest-tests.factor index 3cbcbb186a..a74947e5df 100644 --- a/basis/compiler/cfg/coalescing/forest/forest-tests.factor +++ b/basis/compiler/cfg/ssa/destruction/forest/forest-tests.factor @@ -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 diff --git a/basis/compiler/cfg/coalescing/forest/forest.factor b/basis/compiler/cfg/ssa/destruction/forest/forest.factor similarity index 100% rename from basis/compiler/cfg/coalescing/forest/forest.factor rename to basis/compiler/cfg/ssa/destruction/forest/forest.factor diff --git a/basis/compiler/cfg/coalescing/interference/interference.factor b/basis/compiler/cfg/ssa/destruction/interference/interference.factor similarity index 93% rename from basis/compiler/cfg/coalescing/interference/interference.factor rename to basis/compiler/cfg/ssa/destruction/interference/interference.factor index 4e0ca99834..4bb55a00aa 100644 --- a/basis/compiler/cfg/coalescing/interference/interference.factor +++ b/basis/compiler/cfg/ssa/destruction/interference/interference.factor @@ -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 dup [ diff --git a/basis/compiler/cfg/coalescing/state/state.factor b/basis/compiler/cfg/ssa/destruction/state/state.factor similarity index 92% rename from basis/compiler/cfg/coalescing/state/state.factor rename to basis/compiler/cfg/ssa/destruction/state/state.factor index 6174945ccb..30e69521b9 100644 --- a/basis/compiler/cfg/coalescing/state/state.factor +++ b/basis/compiler/cfg/ssa/destruction/state/state.factor @@ -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 ; diff --git a/basis/compiler/cfg/value-numbering/value-numbering-tests.factor b/basis/compiler/cfg/value-numbering/value-numbering-tests.factor index bec0c27aeb..c5b064b2d3 100644 --- a/basis/compiler/cfg/value-numbering/value-numbering-tests.factor +++ b/basis/compiler/cfg/value-numbering/value-numbering-tests.factor @@ -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 )