diff options
author | Richard Biener <rguenther@suse.de> | 2022-09-05 14:22:51 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-09-05 15:15:03 +0200 |
commit | 178447296423ff7e1072621185438c45ab5b0a1d (patch) | |
tree | f146e3eee62f7e44a2eb856b900da4ed90776a8e /gcc/tree-cfg.h | |
parent | e9ea2688271bd0b4319bdfb1fc852169ab3cf076 (diff) | |
download | gcc-178447296423ff7e1072621185438c45ab5b0a1d.zip gcc-178447296423ff7e1072621185438c45ab5b0a1d.tar.gz gcc-178447296423ff7e1072621185438c45ab5b0a1d.tar.bz2 |
Remove MAX_SWITCH_CASES limit
The following removes the MAX_SWITCH_CASES limit to fight quadraticness
when looking up case labels from edges. Instead use the
{start,end}_recording_case_labels facility for that. For it to be
usable I've exported get_cases_for_edge from tree-cfg.cc.
* tree-cfg.h (get_cases_for_edge): Declare.
* tree-cfg.cc (get_cases_for_edge): Export.
* tree-ssa-uninit.cc (execute_late_warn_uninitialized):
Start and end recording case labels.
* gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
(predicate::init_from_control_deps): Use get_cases_for_edge.
Diffstat (limited to 'gcc/tree-cfg.h')
-rw-r--r-- | gcc/tree-cfg.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/tree-cfg.h b/gcc/tree-cfg.h index cb67cdf..95ec93e 100644 --- a/gcc/tree-cfg.h +++ b/gcc/tree-cfg.h @@ -33,6 +33,7 @@ extern void init_empty_tree_cfg_for_function (struct function *); extern void init_empty_tree_cfg (void); extern void start_recording_case_labels (void); extern void end_recording_case_labels (void); +extern tree get_cases_for_edge (edge, gswitch *); extern basic_block label_to_block (struct function *, tree); extern void cleanup_dead_labels (void); extern bool group_case_labels_stmt (gswitch *); |