diff options
author | Richard Biener <rguenther@suse.de> | 2013-10-10 14:07:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-10-10 14:07:19 +0000 |
commit | e2c2fde2105b83ec8c4fcc664969df2437467c36 (patch) | |
tree | fc755051b75f46c3aa2262fb9734e192c371292c | |
parent | 20921a97e16f3f6fe229b7a8463e63d6d6b65f98 (diff) | |
download | gcc-e2c2fde2105b83ec8c4fcc664969df2437467c36.zip gcc-e2c2fde2105b83ec8c4fcc664969df2437467c36.tar.gz gcc-e2c2fde2105b83ec8c4fcc664969df2437467c36.tar.bz2 |
re PR tree-optimization/58656 (rnflow regressing after r202826)
2013-10-10 Richard Biener <rguenther@suse.de>
PR tree-optimization/58656
* tree-ssa-pre.c (phi_translate): Do not cache failed
translations.
From-SVN: r203377
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-pre.c | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 61efb9e..06d5c98 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-10-10 Richard Biener <rguenther@suse.de> + + PR tree-optimization/58656 + * tree-ssa-pre.c (phi_translate): Do not cache failed + translations. + 2013-10-10 Andrew MacLeod <amacleod@redhat.com> * 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 50027eb..946de8f 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; } |