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/cfgbuild.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/cfgbuild.c')
-rw-r--r-- | gcc/cfgbuild.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c index 97552f9..9ac758b 100644 --- a/gcc/cfgbuild.c +++ b/gcc/cfgbuild.c @@ -292,7 +292,7 @@ make_edges (label_value_list, min, max, update_p) /* Heavy use of computed goto in machine-generated code can lead to nearly fully-connected CFGs. In that case we spend a significant amount of time searching the edge lists for duplicates. */ - if (forced_labels || label_value_list) + if (forced_labels || label_value_list || cfun->max_jumptable_ents > 100) { edge_cache = sbitmap_vector_alloc (last_basic_block, last_basic_block); sbitmap_vector_zero (edge_cache, last_basic_block); |