Commit 51657442 by Steven Bosscher

re PR c/1687 (Exponential time behavior with -O -finline-functions (compile time…

re PR c/1687 (Exponential time behavior with -O -finline-functions (compile time regression from 3.2, 3.3))

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
parent 7e6dc358
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
......
......@@ -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;
......
......@@ -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;
}
......
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment