diff options
author | Richard Biener <rguenther@suse.de> | 2018-01-29 15:22:55 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-01-29 15:22:55 +0000 |
commit | b9921bf0a01418b70e7869c45fd0c3cb7c50f528 (patch) | |
tree | 7172e8e175be33df91a5cb96df4db2001e894eec /gcc/tree-ssanames.c | |
parent | 670a8d74975944b8a1f7ae7b1325ccd11aabeac3 (diff) | |
download | gcc-b9921bf0a01418b70e7869c45fd0c3cb7c50f528.zip gcc-b9921bf0a01418b70e7869c45fd0c3cb7c50f528.tar.gz gcc-b9921bf0a01418b70e7869c45fd0c3cb7c50f528.tar.bz2 |
re PR libgomp/84086 ([8 Regresssion] segfault in instantiate_scev_r for libgomp.fortran/examples-4/simd-2.f90 -O1)
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.
From-SVN: r257152
Diffstat (limited to 'gcc/tree-ssanames.c')
-rw-r--r-- | gcc/tree-ssanames.c | 5 |
1 files changed, 5 insertions, 0 deletions
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); } |