re PR c/1687 (Exponential time behavior with -O -finline-functions (compile time...
authorSteven Bosscher <steven@gcc.gnu.org>
Tue, 8 Jul 2003 19:44:17 +0000 (19:44 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Tue, 8 Jul 2003 19:44:17 +0000 (19:44 +0000)
2003-07-08  Steven Bosscher  <steven@gcc.gnu.org>

PR c/1687
* tree-inline.c (find_alloca_call): Use
walk_tree_without_duplicates, instead of walk_tree.
(find_builtin_longjmp_call): Likewise.
* c-objc-common.c (c_cannot_inline_fn): Likewise.
* c-semantics.c (find_reachable_label): Likewise.

From-SVN: r69097

gcc/ChangeLog
gcc/c-objc-common.c
gcc/c-semantics.c
gcc/tree-inline.c

index 6e83cd0..886b3b4 100644 (file)
@@ -1,3 +1,12 @@
+2003-07-08  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR c/1687
+       * tree-inline.c (find_alloca_call): Use
+       walk_tree_without_duplicates, instead of walk_tree.
+       (find_builtin_longjmp_call): Likewise.
+       * c-objc-common.c (c_cannot_inline_fn): Likewise.
+       * c-semantics.c (find_reachable_label): Likewise.
+
 2003-07-08  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/11420
index 438b3fb..e0a99a3 100644 (file)
@@ -211,7 +211,8 @@ c_cannot_inline_tree_fn (tree *fnp)
        return 0;
     }
 
-  if (walk_tree (&DECL_SAVED_TREE (fn), inline_forbidden_p, fn, NULL))
+  if (walk_tree_without_duplicates (&DECL_SAVED_TREE (fn),
+                                   inline_forbidden_p, fn))
     goto cannot_inline;
 
   return 0;
index 1481e1d..9ecfc96 100644 (file)
@@ -924,7 +924,8 @@ static tree
 find_reachable_label (tree exp)
 {
   location_t saved_loc = input_location;
-  tree ret = walk_tree (&exp, find_reachable_label_1, NULL, NULL);
+  tree ret = walk_tree_without_duplicates
+               (&exp, find_reachable_label_1, NULL);
   input_location = saved_loc;
   return ret;
 }
index 0d4d7a4..c41ccea 100644 (file)
@@ -898,7 +898,8 @@ static tree
 find_alloca_call (tree exp)
 {
   location_t saved_loc = input_location;
-  tree ret = walk_tree (&exp, find_alloca_call_1, NULL, NULL);
+  tree ret = walk_tree_without_duplicates
+               (&exp, find_alloca_call_1, NULL);
   input_location = saved_loc;
   return ret;
 }
@@ -924,7 +925,8 @@ static tree
 find_builtin_longjmp_call (tree exp)
 {
   location_t saved_loc = input_location;
-  tree ret = walk_tree (&exp, find_builtin_longjmp_call_1, NULL, NULL);
+  tree ret = walk_tree_without_duplicates
+               (&exp, find_builtin_longjmp_call_1, NULL);
   input_location = saved_loc;
   return ret;
 }