From: Christoph Mallon Date: Fri, 31 Aug 2012 08:28:56 +0000 (+0200) Subject: Skip the check whether ifconv is allowed, if both phi operands are identical. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=f68b24054f44c477290d501d674d1b792e846fdd;p=libfirm Skip the check whether ifconv is allowed, if both phi operands are identical. In particular this allows ifconv when a PhiM is present, but nothing happens with the memory on the two paths. --- diff --git a/ir/opt/ifconv.c b/ir/opt/ifconv.c index c39e1a263..d56b723c7 100644 --- a/ir/opt/ifconv.c +++ b/ir/opt/ifconv.c @@ -333,6 +333,8 @@ restart: mux_true = get_Phi_pred(p, i); mux_false = get_Phi_pred(p, j); } + if (mux_true == mux_false) + continue; ir_mode *mode = get_irn_mode(mux_true); if (mode == mode_M || !env->allow_ifconv(sel, mux_false, mux_true)) {