From 3af2f3443ff7aed80b70599aa5da3bdebf2c9189 Mon Sep 17 00:00:00 2001 From: slava Date: Sat, 4 Nov 2006 08:01:28 +0000 Subject: [PATCH] Fix >r/r> optimization --- library/compiler/optimizer/optimizer.factor | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/library/compiler/optimizer/optimizer.factor b/library/compiler/optimizer/optimizer.factor index c116ab2774..c53c03aac0 100644 --- a/library/compiler/optimizer/optimizer.factor +++ b/library/compiler/optimizer/optimizer.factor @@ -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*