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/cfgcleanup.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/cfgcleanup.c')
-rw-r--r-- | gcc/cfgcleanup.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index c706ed77..594eb5c 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -911,8 +911,9 @@ insns_match_p (mode, i1, i2) equal, they were constructed identically. */ if (GET_CODE (i1) == CALL_INSN - && !rtx_equal_p (CALL_INSN_FUNCTION_USAGE (i1), - CALL_INSN_FUNCTION_USAGE (i2))) + && (!rtx_equal_p (CALL_INSN_FUNCTION_USAGE (i1), + CALL_INSN_FUNCTION_USAGE (i2)) + || SIBLING_CALL_P (i1) != SIBLING_CALL_P (i2))) return false; #ifdef STACK_REGS |