From 09c5d95f3286bc2f99caba4f6524169c92830654 Mon Sep 17 00:00:00 2001 From: slava Date: Mon, 6 Mar 2006 00:42:14 +0000 Subject: [PATCH] Fix another literal killing bug --- library/inference/kill-literals.factor | 2 +- library/inference/optimizer.factor | 10 +++------- library/test/compiler/optimizer.factor | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/library/inference/kill-literals.factor b/library/inference/kill-literals.factor index 2abb61d2da..7c0cb830c3 100644 --- a/library/inference/kill-literals.factor +++ b/library/inference/kill-literals.factor @@ -76,7 +76,7 @@ M: #killable live-values* ( node -- seq ) drop { } ; ! #label M: #label live-values* ( node -- seq ) dup node-child node-in-d over node-in-d 2array - rot collect-recursion append purge-invariants ; + swap collect-recursion append purge-invariants ; ! branching UNION: #branch #if #dispatch ; diff --git a/library/inference/optimizer.factor b/library/inference/optimizer.factor index d784e17fbe..8482d570bd 100644 --- a/library/inference/optimizer.factor +++ b/library/inference/optimizer.factor @@ -25,12 +25,9 @@ DEFER: optimize-node over set-node-successor r> r> r> or or ] [ r> ] if ; -: (optimize) ( dataflow n -- dataflow n ? ) - >r dup kill-values dup infer-classes optimize-node r> swap - [ 1+ (optimize) ] when ; - : optimize ( dataflow -- dataflow ) - 1 (optimize) [ "! Optimizer passes: " % # ] "" make print ; + dup kill-values dup infer-classes optimize-node + [ optimize ] when ; : prune-if ( node quot -- successor/t ) over >r call [ r> node-successor ] [ r> drop t ] if ; @@ -39,8 +36,7 @@ DEFER: optimize-node ! Generic nodes M: f optimize-node* drop t ; -M: node optimize-node* ( node -- t ) - drop t ; +M: node optimize-node* ( node -- t ) drop t ; ! #shuffle : can-compose? ( shuffle -- ? ) diff --git a/library/test/compiler/optimizer.factor b/library/test/compiler/optimizer.factor index a9a9a0cdf0..e6650c1bf8 100644 --- a/library/test/compiler/optimizer.factor +++ b/library/test/compiler/optimizer.factor @@ -1,8 +1,8 @@ +IN: temporary USING: arrays assembler compiler compiler-backend generic hashtables inference kernel kernel-internals lists math optimizer prettyprint sequences strings test vectors words sequences-internals ; -IN: temporary : kill-1 [ 1 2 3 ] [ + ] over drop drop ; compiled