From ad0a2e78b374e10a74737d55f98b4bfebffe21ff Mon Sep 17 00:00:00 2001 From: Alex Vondrak Date: Sat, 18 Jun 2011 15:26:21 -0700 Subject: [PATCH] compiler.cfg.gvn.misc: simplify ##phi rewrite --- extra/compiler/cfg/gvn/expressions/expressions.factor | 3 +++ extra/compiler/cfg/gvn/misc/misc.factor | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/extra/compiler/cfg/gvn/expressions/expressions.factor b/extra/compiler/cfg/gvn/expressions/expressions.factor index e87fe66d89..c656d4ccc0 100644 --- a/extra/compiler/cfg/gvn/expressions/expressions.factor +++ b/extra/compiler/cfg/gvn/expressions/expressions.factor @@ -84,5 +84,8 @@ M: ##load-integer >expr val>> ; M: ##load-reference >expr obj>> ; +! TODO experiment with sorting, in case that identifies more +! phi equivalences + M: ##phi >expr inputs>> values [ vreg>vn ] map \ ##phi prefix ; diff --git a/extra/compiler/cfg/gvn/misc/misc.factor b/extra/compiler/cfg/gvn/misc/misc.factor index 864af7b0b5..9e23ae3bdd 100644 --- a/extra/compiler/cfg/gvn/misc/misc.factor +++ b/extra/compiler/cfg/gvn/misc/misc.factor @@ -16,10 +16,8 @@ M: ##replace rewrite ] [ 2drop f ] if ; M: ##phi rewrite - [ dst>> ] [ inputs>> values [ vreg>vn ] map ] bi - dup sift + [ dst>> ] [ inputs>> values [ vreg>vn ] map sift ] bi dup all-equal? [ - nip [ drop f ] [ first ] if-empty - ] [ 3drop f ] if ; + ] [ 2drop f ] if ;