From: Richard Biener Date: Thu, 10 Oct 2013 14:07:19 +0000 (+0000) Subject: re PR tree-optimization/58656 (rnflow regressing after r202826) X-Git-Tag: releases/gcc-4.9.0~3613 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e2c2fde2105b83ec8c4fcc664969df2437467c36;p=thirdparty%2Fgcc.git re PR tree-optimization/58656 (rnflow regressing after r202826) 2013-10-10 Richard Biener PR tree-optimization/58656 * tree-ssa-pre.c (phi_translate): Do not cache failed translations. From-SVN: r203377 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 61efb9e674f2..06d5c986914c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-10-10 Richard Biener + + PR tree-optimization/58656 + * tree-ssa-pre.c (phi_translate): Do not cache failed + translations. + 2013-10-10 Andrew MacLeod * gimplify.c: Include expr.h and tm_p.h for targets with special va-arg diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 50027ebffe8c..946de8f3d52f 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -1758,7 +1758,14 @@ phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, phitrans = phi_translate_1 (expr, set1, set2, pred, phiblock); if (slot) - slot->v = phitrans; + { + if (phitrans) + slot->v = phitrans; + else + /* Remove failed translations again, they cause insert + iteration to not pick up new opportunities reliably. */ + phi_translate_table.remove_elt_with_hash (slot, slot->hashcode); + } return phitrans; }