diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2003-07-08 19:44:17 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2003-07-08 19:44:17 +0000 |
commit | 516574425b935981dcdae07ff0e3be6b5946bf04 (patch) | |
tree | 20adccaaafcd98efc427f57bfdc819e4ec959c91 /gcc/tree-inline.c | |
parent | 7e6dc3581ceb8a56bd80bcf7e47507d1902b19f7 (diff) | |
download | gcc-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.c | 6 |
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; } |