]> gitweb.factorcode.org Git - factor.git/commitdiff
Revert "compiler.cfg: change linear ordering to place GC call blocks at the end"
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 28 Jul 2010 03:58:41 +0000 (23:58 -0400)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 28 Jul 2010 03:58:41 +0000 (23:58 -0400)
This reverts commit 544a288192675b357e44833c7860a0f01ff0b46d.

basis/compiler/cfg/block-joining/block-joining.factor
basis/compiler/cfg/finalization/finalization.factor
basis/compiler/cfg/linearization/linearization.factor

index 1005e35d0348bed922d166dfe2d0b06ec8da48c3..54cff306ed3c12f4a1ef996c87f71e44b0d42262 100644 (file)
@@ -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 ;
index c07a30e5a093d11a268a0ee9aa500cfc6e968411..2b731bdd904f49ae8994944872ec4c95366ba7b8 100644 (file)
@@ -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 ;
index 9f607de70fc1ccce23e3bfe6aed615f0762ea4b2..c44b29d27122dcbfb7df9075a9faa7e42d176973 100644 (file)
@@ -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>