aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-02-21 13:14:23 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-02-21 13:14:23 +0000
commit32417082bf9a8f2633e7960f2e45979ebab43e51 (patch)
treeb8ca0c2a0c74b596d5ba5799f42443e85678ca1b
parentb9b78c8ca0f8232d5baca64f5b3cd90076a8a799 (diff)
downloadgcc-32417082bf9a8f2633e7960f2e45979ebab43e51.zip
gcc-32417082bf9a8f2633e7960f2e45979ebab43e51.tar.gz
gcc-32417082bf9a8f2633e7960f2e45979ebab43e51.tar.bz2
re PR middle-end/60291 (slow compile times for any mode (-O0/-O1/-O2) on large .c source file (30MBs))
2014-02-21 Richard Biener <rguenther@suse.de> PR middle-end/60291 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk DECL_INITIAL for globals not in the current function context. From-SVN: r207991
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-live.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 29ed8c8..2acc2df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-02-21 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/60291
+ * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
+ DECL_INITIAL for globals not in the current function context.
+
2014-02-21 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/56490
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 13e4fb0..3cd3613 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -435,7 +435,8 @@ mark_all_vars_used_1 (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
{
/* When a global var becomes used for the first time also walk its
initializer (non global ones don't have any). */
- if (set_is_used (t) && is_global_var (t))
+ if (set_is_used (t) && is_global_var (t)
+ && DECL_CONTEXT (t) == current_function_decl)
mark_all_vars_used (&DECL_INITIAL (t));
}
/* remove_unused_scope_block_p requires information about labels