diff options
author | Martin Liska <mliska@suse.cz> | 2020-11-09 14:26:04 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2020-11-16 10:54:29 +0100 |
commit | 5e303cdee1ff01e4b302ef2f913c0bdd84ab967e (patch) | |
tree | 3ecf62b09717cbf9318e2a62da0d74ca85cca855 /gcc/tree-switch-conversion.c | |
parent | d12603b746986554981f5ee220926a36a6cb6baf (diff) | |
download | gcc-5e303cdee1ff01e4b302ef2f913c0bdd84ab967e.zip gcc-5e303cdee1ff01e4b302ef2f913c0bdd84ab967e.tar.gz gcc-5e303cdee1ff01e4b302ef2f913c0bdd84ab967e.tar.bz2 |
Prefer bit-test over the jump table.
gcc/ChangeLog:
PR tree-optimization/97736
* tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement):
Prefer bit tests.
gcc/testsuite/ChangeLog:
PR tree-optimization/97736
* gcc.dg/tree-ssa/switch-1.c: Prefer bit tests.
* g++.dg/tree-ssa/pr97736.C: New test.
Diffstat (limited to 'gcc/tree-switch-conversion.c')
-rw-r--r-- | gcc/tree-switch-conversion.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c index 426462e..a87a2a3 100644 --- a/gcc/tree-switch-conversion.c +++ b/gcc/tree-switch-conversion.c @@ -1743,10 +1743,10 @@ switch_decision_tree::analyze_switch_statement () reset_out_edges_aux (m_switch); - /* Find jump table clusters. */ - vec<cluster *> output = jump_table_cluster::find_jump_tables (clusters); + /* Find bit-test clusters. */ + vec<cluster *> output = bit_test_cluster::find_bit_tests (clusters); - /* Find bit test clusters. */ + /* Find jump table clusters. */ vec<cluster *> output2; auto_vec<cluster *> tmp; output2.create (1); @@ -1759,7 +1759,7 @@ switch_decision_tree::analyze_switch_statement () { if (!tmp.is_empty ()) { - vec<cluster *> n = bit_test_cluster::find_bit_tests (tmp); + vec<cluster *> n = jump_table_cluster::find_jump_tables (tmp); output2.safe_splice (n); n.release (); tmp.truncate (0); @@ -1773,7 +1773,7 @@ switch_decision_tree::analyze_switch_statement () /* We still can have a temporary vector to test. */ if (!tmp.is_empty ()) { - vec<cluster *> n = bit_test_cluster::find_bit_tests (tmp); + vec<cluster *> n = jump_table_cluster::find_jump_tables (tmp); output2.safe_splice (n); n.release (); } |