From 5fc9aa05b04561a114b4947fbc1375bc99b39524 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Tue, 27 Jul 2010 23:58:41 -0400 Subject: [PATCH] Revert "compiler.cfg: change linear ordering to place GC call blocks at the end" This reverts commit 544a288192675b357e44833c7860a0f01ff0b46d. --- .../cfg/block-joining/block-joining.factor | 21 ++++++------------- .../cfg/finalization/finalization.factor | 3 +-- .../cfg/linearization/linearization.factor | 3 ++- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/basis/compiler/cfg/block-joining/block-joining.factor b/basis/compiler/cfg/block-joining/block-joining.factor index 1005e35d03..54cff306ed 100644 --- a/basis/compiler/cfg/block-joining/block-joining.factor +++ b/basis/compiler/cfg/block-joining/block-joining.factor @@ -1,8 +1,7 @@ -! Copyright (C) 2009, 2010 Slava Pestov. +! Copyright (C) 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors combinators.short-circuit kernel namespaces -sequences math compiler.utilities compiler.cfg -compiler.cfg.instructions compiler.cfg.rpo +USING: accessors combinators.short-circuit kernel sequences math +compiler.utilities compiler.cfg compiler.cfg.instructions compiler.cfg.rpo compiler.cfg.predecessors compiler.cfg.utilities ; IN: compiler.cfg.block-joining @@ -24,23 +23,15 @@ IN: compiler.cfg.block-joining : update-successors ( bb pred -- ) [ successors>> ] dip successors<< ; -: join-unlikely ( bb pred -- ) - over unlikely?>> [ t >>unlikely? ] when 2drop ; - : join-block ( bb pred -- ) - [ join-instructions ] - [ update-successors ] - [ join-unlikely ] - 2tri ; - -SYMBOL: changed? + [ join-instructions ] [ update-successors ] 2bi ; : join-blocks ( cfg -- cfg' ) needs-predecessors dup post-order [ dup join-block? - [ changed? on dup predecessor join-block ] [ drop ] if + [ dup predecessor join-block ] [ drop ] if ] each - changed? get [ cfg-changed predecessors-changed ] when ; + cfg-changed predecessors-changed ; diff --git a/basis/compiler/cfg/finalization/finalization.factor b/basis/compiler/cfg/finalization/finalization.factor index c07a30e5a0..2b731bdd90 100644 --- a/basis/compiler/cfg/finalization/finalization.factor +++ b/basis/compiler/cfg/finalization/finalization.factor @@ -4,7 +4,7 @@ USING: kernel compiler.cfg.representations compiler.cfg.scheduling compiler.cfg.gc-checks compiler.cfg.save-contexts compiler.cfg.ssa.destruction compiler.cfg.build-stack-frame compiler.cfg.linear-scan -compiler.cfg.stacks.uninitialized compiler.cfg.block-joining ; +compiler.cfg.stacks.uninitialized ; IN: compiler.cfg.finalization : finalize-cfg ( cfg -- cfg' ) @@ -15,5 +15,4 @@ IN: compiler.cfg.finalization insert-save-contexts destruct-ssa linear-scan - join-blocks build-stack-frame ; diff --git a/basis/compiler/cfg/linearization/linearization.factor b/basis/compiler/cfg/linearization/linearization.factor index 9f607de70f..c44b29d271 100644 --- a/basis/compiler/cfg/linearization/linearization.factor +++ b/basis/compiler/cfg/linearization/linearization.factor @@ -70,7 +70,8 @@ SYMBOLS: work-list loop-heads visited ; init-linearization-order [ work-list get [ process-block ] slurp-deque ] { } make - [ unlikely?>> not ] partition append ; + ! [ unlikely?>> not ] partition append + ; PRIVATE>