aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2003-07-08 19:44:17 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2003-07-08 19:44:17 +0000
commit516574425b935981dcdae07ff0e3be6b5946bf04 (patch)
tree20adccaaafcd98efc427f57bfdc819e4ec959c91 /gcc/tree-inline.c
parent7e6dc3581ceb8a56bd80bcf7e47507d1902b19f7 (diff)
downloadgcc-516574425b935981dcdae07ff0e3be6b5946bf04.zip
gcc-516574425b935981dcdae07ff0e3be6b5946bf04.tar.gz
gcc-516574425b935981dcdae07ff0e3be6b5946bf04.tar.bz2
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
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 0d4d7a4..c41ccea 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -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;
}