aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssanames.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-01-29 15:22:55 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-01-29 15:22:55 +0000
commitb9921bf0a01418b70e7869c45fd0c3cb7c50f528 (patch)
tree7172e8e175be33df91a5cb96df4db2001e894eec /gcc/tree-ssanames.c
parent670a8d74975944b8a1f7ae7b1325ccd11aabeac3 (diff)
downloadgcc-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.c5
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);
}