Fix >r/r> optimization

slava 2006-11-04 08:01:28 +00:00
parent 40786556b3
commit 3af2f3443f
1 changed files with 12 additions and 6 deletions

View File

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