diff options
author | Jan Hubicka <jh@suse.cz> | 2002-10-11 22:26:50 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-10-11 20:26:50 +0000 |
commit | db6556348d92709dfaa930251b5aa0fd5cb740c3 (patch) | |
tree | fbcbac53dc98b47f9f2b0b115a5d2f2bb473c34d /gcc/calls.c | |
parent | ca91148bcd4fd17dea7dbd0407e491e0cfd5ee3d (diff) | |
download | gcc-db6556348d92709dfaa930251b5aa0fd5cb740c3.zip gcc-db6556348d92709dfaa930251b5aa0fd5cb740c3.tar.gz gcc-db6556348d92709dfaa930251b5aa0fd5cb740c3.tar.bz2 |
re PR c/7344 (performance regression on huge case statements)
* calls.c (expand_call): Simplify noreturn call.
PR c/7344
* cfgbuild.c (make_edges): Create edge cache when we do have
large jumptable.
(do_tablejump): Note size of maximal jumptable.
* function.c (prepare_function_start): Zero out size.
* function.h (function): Add max_jumptable_ents.
* cfgcleanup.c (insn_match_p): Verify sibcall flag for calls to.
From-SVN: r58063
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index d706751..903ddc1 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -2459,8 +2459,7 @@ expand_call (exp, target, ignore) reload insns generated to fix things up would appear before the sibcall_epilogue. */ || fndecl == NULL_TREE - || (flags & (ECF_RETURNS_TWICE | ECF_LONGJMP)) - || TREE_THIS_VOLATILE (fndecl) + || (flags & (ECF_RETURNS_TWICE | ECF_LONGJMP | ECF_NORETURN)) || !FUNCTION_OK_FOR_SIBCALL (fndecl) /* If this function requires more stack slots than the current function, we cannot change it into a sibling call. */ |