aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-live.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-09-04 20:32:00 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2015-09-04 20:32:00 +0200
commit547fba7e1ff982be701e7b727f1b776fbf920f26 (patch)
treeff09e527405b967213181deefa305f57fdbfc62b /gcc/tree-ssa-live.c
parentb52ec220503a1c7fa25b21b8c34c4428b3ec13f8 (diff)
downloadgcc-547fba7e1ff982be701e7b727f1b776fbf920f26.zip
gcc-547fba7e1ff982be701e7b727f1b776fbf920f26.tar.gz
gcc-547fba7e1ff982be701e7b727f1b776fbf920f26.tar.bz2
re PR middle-end/67452 (LTO ICE with -fopenmp-simd)
PR middle-end/67452 * tree-ssa-live.c: Include cfgloop.h. (remove_unused_locals): Clear loop->simduid if simduid is about to be removed from cfun->local_decls. * gcc.dg/lto/pr67452_0.c: New test. From-SVN: r227498
Diffstat (limited to 'gcc/tree-ssa-live.c')
-rw-r--r--gcc/tree-ssa-live.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 4772558..e944a9a 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-ssa.h"
#include "cgraph.h"
#include "ipa-utils.h"
+#include "cfgloop.h"
#ifdef ENABLE_CHECKING
static void verify_live_on_entry (tree_live_info_p);
@@ -820,6 +821,14 @@ remove_unused_locals (void)
}
}
+ if (cfun->has_simduid_loops)
+ {
+ struct loop *loop;
+ FOR_EACH_LOOP (loop, 0)
+ if (loop->simduid && !is_used_p (loop->simduid))
+ loop->simduid = NULL_TREE;
+ }
+
cfun->has_local_explicit_reg_vars = false;
/* Remove unmarked local and global vars from local_decls. */