]> gitweb.factorcode.org Git - factor.git/commitdiff
Fix >r/r> optimization
authorslava <slava@factorcode.org>
Sat, 4 Nov 2006 08:01:28 +0000 (08:01 +0000)
committerslava <slava@factorcode.org>
Sat, 4 Nov 2006 08:01:28 +0000 (08:01 +0000)
library/compiler/optimizer/optimizer.factor

index c116ab277499beb8b20d0e52cae89deb6a44a47c..c53c03aac0f804bcc960995ebaad5a962556395e 100644 (file)
@@ -41,14 +41,20 @@ M: #shuffle optimize-node*
     [ node-values empty? ] prune-if ;
 
 ! #>r
-M: #>r optimize-node* 
-    [ dup node-in-d empty? swap node-successor #r>? or ]
-    prune-if ;
+M: #>r optimize-node*
+    dup node-successor #r>? [
+        node-successor node-successor
+    ] [
+        [ node-in-d empty? ] prune-if
+    ] if ;
 
 ! #r>
-M: #r> optimize-node* 
-    [ dup node-in-r empty? swap node-successor #>r? or ]
-    prune-if ;
+M: #r> optimize-node*
+    dup node-successor #>r? [
+        node-successor node-successor
+    ] [
+        [ node-in-r empty? ] prune-if
+    ] if ;
 
 ! #push
 M: #push optimize-node*