diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-ssanames.c | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ac75869..e860055 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2018-01-29 Richard Biener <rguenther@suse.de> + PR tree-optimization/84086 + * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. + (flush_ssaname_freelist): When SSA names were released reset + the SCEV hash table. + +2018-01-29 Richard Biener <rguenther@suse.de> + PR tree-optimization/84057 * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already removed paths when removing edges. diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c index dffaa17..6cce43b 100644 --- a/gcc/tree-ssanames.c +++ b/gcc/tree-ssanames.c @@ -29,6 +29,8 @@ along with GCC; see the file COPYING3. If not see #include "stor-layout.h" #include "tree-into-ssa.h" #include "tree-ssa.h" +#include "cfgloop.h" +#include "tree-scalar-evolution.h" /* Rewriting a function into SSA form can create a huge number of SSA_NAMEs, many of which may be thrown away shortly after their creation if jumps @@ -241,6 +243,9 @@ verify_ssaname_freelists (struct function *fun) void flush_ssaname_freelist (void) { + /* If there were any SSA names released reset the SCEV cache. */ + if (! vec_safe_is_empty (FREE_SSANAMES_QUEUE (cfun))) + scev_reset_htab (); vec_safe_splice (FREE_SSANAMES (cfun), FREE_SSANAMES_QUEUE (cfun)); vec_safe_truncate (FREE_SSANAMES_QUEUE (cfun), 0); } |