Hello. There's another version of the patch that should be based on what I discussed with Richi and Jakub:
- the first patch introduces a new option -fbit-tests that analogue to -fjump-tables and will control the new if-to-switch conversion pass - the second patch adds the pass - I share code with tree-ssa-reassoc.c (range_entry and init_range_entry) - a local discovery phase is run first - later than these local BBs are chained into a candidate list for the conversion I'm also sending transformed chains for 'make all-host' (620 transformations). Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Thoughts? Thanks, Martin
>From 69b043dfe5a741ca5b0d9536a0b59b1d5066d47f Mon Sep 17 00:00:00 2001 From: Martin Liska <mli...@suse.cz> Date: Fri, 28 Aug 2020 10:26:13 +0200 Subject: [PATCH 2/2] Add if-chain to switch conversion pass. gcc/ChangeLog: PR tree-optimization/14799 PR ipa/88702 * Makefile.in: Add gimple-if-to-switch.o. * dbgcnt.def (DEBUG_COUNTER): Add new debug counter. * passes.def: Include new pass_if_to_switch pass. * timevar.def (TV_TREE_IF_TO_SWITCH): New timevar. * tree-pass.h (make_pass_if_to_switch): New. * tree-ssa-reassoc.c (struct operand_entry): Move to the header. (dump_range_entry): Move to header file. (debug_range_entry): Likewise. (no_side_effect_bb): Make it global. * tree-switch-conversion.h (simple_cluster::simple_cluster): Add inline for couple of functions in order to prevent error about multiple defined symbols. * gimple-if-to-switch.cc: New file. * tree-ssa-reassoc.h: New file. gcc/testsuite/ChangeLog: PR tree-optimization/14799 PR ipa/88702 * gcc.dg/tree-ssa/pr96480.c: Disable if-to-switch conversion. * gcc.dg/tree-ssa/reassoc-32.c: Likewise. * g++.dg/tree-ssa/if-to-switch-1.C: New test. * gcc.dg/tree-ssa/if-to-switch-1.c: New test. * gcc.dg/tree-ssa/if-to-switch-2.c: New test. * gcc.dg/tree-ssa/if-to-switch-3.c: New test. * gcc.dg/tree-ssa/if-to-switch-4.c: New test. * gcc.dg/tree-ssa/if-to-switch-5.c: New test. * gcc.dg/tree-ssa/if-to-switch-6.c: New test. * gcc.dg/tree-ssa/if-to-switch-7.c: New test. * gcc.dg/tree-ssa/if-to-switch-8.c: New test. --- gcc/Makefile.in | 1 + gcc/dbgcnt.def | 1 + gcc/gimple-if-to-switch.cc | 565 ++++++++++++++++++ gcc/passes.def | 1 + .../g++.dg/tree-ssa/if-to-switch-1.C | 25 + .../gcc.dg/tree-ssa/if-to-switch-1.c | 35 ++ .../gcc.dg/tree-ssa/if-to-switch-2.c | 11 + .../gcc.dg/tree-ssa/if-to-switch-3.c | 11 + .../gcc.dg/tree-ssa/if-to-switch-4.c | 36 ++ .../gcc.dg/tree-ssa/if-to-switch-5.c | 12 + .../gcc.dg/tree-ssa/if-to-switch-6.c | 42 ++ .../gcc.dg/tree-ssa/if-to-switch-7.c | 25 + .../gcc.dg/tree-ssa/if-to-switch-8.c | 27 + gcc/testsuite/gcc.dg/tree-ssa/pr96480.c | 2 +- gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c | 2 +- gcc/timevar.def | 1 + gcc/tree-pass.h | 1 + gcc/tree-ssa-reassoc.c | 27 +- gcc/tree-ssa-reassoc.h | 48 ++ gcc/tree-switch-conversion.h | 24 +- 20 files changed, 865 insertions(+), 32 deletions(-) create mode 100644 gcc/gimple-if-to-switch.cc create mode 100644 gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-6.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-7.c create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c create mode 100644 gcc/tree-ssa-reassoc.h diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 5a8fb0d7612..c7ecda54df2 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1361,6 +1361,7 @@ OBJS = \ gimple-array-bounds.o \ gimple-builder.o \ gimple-expr.o \ + gimple-if-to-switch.o \ gimple-iterator.o \ gimple-fold.o \ gimple-laddress.o \ diff --git a/gcc/dbgcnt.def b/gcc/dbgcnt.def index 07946a85ecc..c8d41065a94 100644 --- a/gcc/dbgcnt.def +++ b/gcc/dbgcnt.def @@ -170,6 +170,7 @@ DEBUG_COUNTER (if_after_combine) DEBUG_COUNTER (if_after_reload) DEBUG_COUNTER (if_conversion) DEBUG_COUNTER (if_conversion_tree) +DEBUG_COUNTER (if_to_switch) DEBUG_COUNTER (ipa_cp_bits) DEBUG_COUNTER (ipa_mod_ref) DEBUG_COUNTER (ipa_sra_params) diff --git a/gcc/gimple-if-to-switch.cc b/gcc/gimple-if-to-switch.cc new file mode 100644 index 00000000000..25ef45175a7 --- /dev/null +++ b/gcc/gimple-if-to-switch.cc @@ -0,0 +1,565 @@ +/* If-elseif-else to switch conversion pass + Copyright (C) 2020 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +<http://www.gnu.org/licenses/>. */ + +/* Algorithm of the pass runs in the following steps: + a) We walk basic blocks in DOMINATOR order so that we first reach + a first condition of a future switch. + b) We follow false edges of a if-else-chain and we record chain + of GIMPLE conditions. These blocks are only used for comparison + of a common SSA_NAME and we do not allow any side effect. + c) We remove all basic blocks (except first) of such chain and + GIMPLE switch replaces the condition in the first basic block. + d) We move all GIMPLE statements in the removed blocks into the + first one. */ + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "backend.h" +#include "rtl.h" +#include "tree.h" +#include "gimple.h" +#include "tree-pass.h" +#include "ssa.h" +#include "gimple-pretty-print.h" +#include "fold-const.h" +#include "gimple-iterator.h" +#include "tree-cfg.h" +#include "tree-dfa.h" +#include "tree-cfgcleanup.h" +#include "alias.h" +#include "tree-ssa-loop.h" +#include "diagnostic.h" +#include "cfghooks.h" +#include "tree-into-ssa.h" +#include "cfganal.h" +#include "dbgcnt.h" +#include "target.h" +#include "alloc-pool.h" +#include "tree-switch-conversion.h" +#include "tree-ssa-reassoc.h" + +using namespace tree_switch_conversion; + +struct condition_info +{ + typedef vec<std::pair<gphi *, tree>> mapping_vec; + + condition_info (gcond *cond): m_cond (cond), m_bb (gimple_bb (cond)), + m_forwarder_bb (NULL), m_ranges (), m_true_edge (NULL), m_false_edge (NULL), + m_true_edge_phi_mapping (), m_false_edge_phi_mapping () + { + m_ranges.create (0); + } + + /* Recond PHI mapping for an original edge E and save these into + vector VEC. */ + void record_phi_mapping (edge e, mapping_vec *vec); + + gcond *m_cond; + basic_block m_bb; + basic_block m_forwarder_bb; + vec<range_entry> m_ranges; + edge m_true_edge; + edge m_false_edge; + mapping_vec m_true_edge_phi_mapping; + mapping_vec m_false_edge_phi_mapping; +}; + +/* Recond PHI mapping for an original edge E and save these into vector VEC. */ + +void +condition_info::record_phi_mapping (edge e, mapping_vec *vec) +{ + for (gphi_iterator gsi = gsi_start_phis (e->dest); !gsi_end_p (gsi); + gsi_next (&gsi)) + { + gphi *phi = gsi.phi (); + if (!virtual_operand_p (gimple_phi_result (phi))) + { + tree arg = PHI_ARG_DEF_FROM_EDGE (phi, e); + vec->safe_push (std::make_pair (phi, arg)); + } + } +} + +/* Master structure for one if to switch conversion candidate. */ + +struct if_chain +{ + /* Default constructor. */ + if_chain (): m_entries () + { + m_entries.create (2); + } + + /* Default destructor. */ + ~if_chain () + { + m_entries.release (); + } + + /* Verify that all case ranges do not overlap. */ + bool check_non_overlapping_cases (); + + /* Return true when the switch can be expanded with a jump table or + a bit test (at least partially). */ + bool is_beneficial (); + + /* If chain entries. */ + vec<condition_info *> m_entries; +}; + +/* Compare two case ranges by minimum value. */ + +static int +range_cmp (const void *a, const void *b) +{ + const range_entry *re1 = *(const range_entry * const *) a; + const range_entry *re2 = *(const range_entry * const *) b; + + return tree_int_cst_compare (re1->low, re2->low); +} + +/* Verify that all case ranges do not overlap. */ + +bool +if_chain::check_non_overlapping_cases () +{ + auto_vec<range_entry *> all_ranges; + for (unsigned i = 0; i < m_entries.length (); i++) + for (unsigned j = 0; j < m_entries[i]->m_ranges.length (); j++) + all_ranges.safe_push (&m_entries[i]->m_ranges[j]); + + all_ranges.qsort (range_cmp); + + for (unsigned i = 0; i < all_ranges.length () - 1; i++) + { + range_entry *left = all_ranges[i]; + range_entry *right = all_ranges[i + 1]; + if (tree_int_cst_le (left->low, right->low) + && tree_int_cst_le (right->low, left->high)) + return false; + } + + return true; +} + +/* Compare clusters by minimum value. */ + +static int +cluster_cmp (const void *a, const void *b) +{ + simple_cluster *sc1 = *(simple_cluster * const *) a; + simple_cluster *sc2 = *(simple_cluster * const *) b; + + return tree_int_cst_compare (sc1->get_low (), sc2->get_high ()); +} + +/* Dump constructed CLUSTERS with prefix MESSAGE. */ + +static void +dump_clusters (vec<cluster *> *clusters, const char *message) +{ + if (dump_file) + { + fprintf (dump_file, ";; %s: ", message); + for (unsigned i = 0; i < clusters->length (); i++) + (*clusters)[i]->dump (dump_file, dump_flags & TDF_DETAILS); + fprintf (dump_file, "\n"); + } +} + +/* Return true when the switch can be expanded with a jump table or + a bit test (at least partially). */ + +bool +if_chain::is_beneficial () +{ + profile_probability prob = profile_probability::uninitialized (); + + auto_vec<cluster *> clusters; + clusters.create (m_entries.length ()); + + for (unsigned i = 0; i < m_entries.length (); i++) + { + condition_info *info = m_entries[i]; + for (unsigned j = 0; j < info->m_ranges.length (); j++) + { + range_entry *range = &info->m_ranges[j]; + basic_block bb = info->m_true_edge->dest; + bool has_forwarder = !info->m_true_edge_phi_mapping.is_empty (); + clusters.safe_push (new simple_cluster (range->low, range->high, + NULL_TREE, bb, prob, + has_forwarder)); + } + } + + /* Sort clusters and merge them. */ + auto_vec<cluster *> filtered_clusters; + filtered_clusters.create (16); + clusters.qsort (cluster_cmp); + simple_cluster *left = static_cast<simple_cluster *> (clusters[0]); + filtered_clusters.safe_push (left); + + for (unsigned i = 1; i < clusters.length (); i++) + { + simple_cluster *right = static_cast<simple_cluster *> (clusters[i]); + tree type = TREE_TYPE (left->get_low ()); + tree pos_one = build_int_cst (type, 1); + if (!left->m_has_forward_bb + && !right->m_has_forward_bb + && left->m_case_bb == right->m_case_bb) + { + tree next = int_const_binop (PLUS_EXPR, left->get_high (), pos_one); + if (tree_int_cst_equal (next, right->get_low ())) + { + left->set_high (right->get_high ()); + continue; + } + } + + left = static_cast<simple_cluster *> (clusters[i]); + filtered_clusters.safe_push (left); + } + + dump_clusters (&filtered_clusters, "Canonical GIMPLE case clusters"); + + vec<cluster *> output + = jump_table_cluster::find_jump_tables (filtered_clusters); + bool r = output.length () < filtered_clusters.length (); + if (r) + dump_clusters (&output, "JT can be built"); + output.release (); + if (r) + return true; + + output = bit_test_cluster::find_bit_tests (filtered_clusters); + r = output.length () < filtered_clusters.length (); + if (r) + dump_clusters (&output, "BT can be built"); + output.release (); + return r; +} + +/* Build case label with MIN and MAX values of a given basic block DEST. */ + +static tree +build_case_label (tree index_type, tree min, tree max, basic_block dest) +{ + if (min != NULL_TREE && index_type != TREE_TYPE (min)) + min = fold_convert (index_type, min); + if (max != NULL_TREE && index_type != TREE_TYPE (max)) + max = fold_convert (index_type, max); + + tree label = gimple_block_label (dest); + return build_case_label (min, min == max ? NULL_TREE : max, label); +} + +/* Compare two integer constants. */ + +static int +label_cmp (const void *a, const void *b) +{ + const_tree l1 = *(const const_tree *) a; + const_tree l2 = *(const const_tree *) b; + + return tree_int_cst_compare (CASE_LOW (l1), CASE_LOW (l2)); +} + +/* Convert a given if CHAIN into a switch GIMPLE statement. */ + +static void +convert_if_conditions_to_switch (if_chain *chain) +{ + if (!dbg_cnt (if_to_switch)) + return; + + auto_vec<tree> labels; + unsigned entries = chain->m_entries.length (); + condition_info *first_cond = chain->m_entries[0]; + condition_info *last_cond = chain->m_entries[entries - 1]; + + edge default_edge = last_cond->m_false_edge; + basic_block default_bb = default_edge->dest; + + gimple_stmt_iterator gsi = gsi_for_stmt (first_cond->m_cond); + tree index_type = TREE_TYPE (first_cond->m_ranges[0].exp); + for (unsigned i = 0; i < entries; i++) + { + condition_info *info = chain->m_entries[i]; + basic_block case_bb = info->m_true_edge->dest; + + /* Create a forwarder block if needed. */ + if (!info->m_true_edge_phi_mapping.is_empty ()) + { + info->m_forwarder_bb = split_edge (info->m_true_edge); + case_bb = info->m_forwarder_bb; + } + + for (unsigned j = 0; j < info->m_ranges.length (); j++) + labels.safe_push (build_case_label (index_type, + info->m_ranges[j].low, + info->m_ranges[j].high, + case_bb)); + default_bb = info->m_false_edge->dest; + + if (i == 0) + { + remove_edge (first_cond->m_true_edge); + remove_edge (first_cond->m_false_edge); + } + else + delete_basic_block (info->m_bb); + + make_edge (first_cond->m_bb, case_bb, 0); + } + + labels.qsort (label_cmp); + + edge e = find_edge (first_cond->m_bb, default_bb); + if (e == NULL) + e = make_edge (first_cond->m_bb, default_bb, 0); + gswitch *s + = gimple_build_switch (first_cond->m_ranges[0].exp, + build_case_label (index_type, NULL_TREE, + NULL_TREE, default_bb), + labels); + + gsi_remove (&gsi, true); + gsi_insert_before (&gsi, s, GSI_NEW_STMT); + + if (dump_file) + { + fprintf (dump_file, "Expanded into a new gimple STMT: "); + print_gimple_stmt (dump_file, s, 0, TDF_SLIM); + putc ('\n', dump_file); + } + + /* Fill up missing PHI node arguments. */ + for (unsigned i = 0; i < chain->m_entries.length (); ++i) + { + condition_info *info = chain->m_entries[i]; + for (unsigned j = 0; j < info->m_true_edge_phi_mapping.length (); ++j) + { + std::pair<gphi *, tree> item = info->m_true_edge_phi_mapping[j]; + add_phi_arg (item.first, item.second, + single_succ_edge (info->m_forwarder_bb), + UNKNOWN_LOCATION); + } + } + + /* Fill up missing PHI nodes for the default BB. */ + for (unsigned j = 0; j < last_cond->m_false_edge_phi_mapping.length (); ++j) + { + std::pair<gphi *, tree> item = last_cond->m_false_edge_phi_mapping[j]; + add_phi_arg (item.first, item.second, e, UNKNOWN_LOCATION); + } +} + +/* Identify an index variable used in BB in a GIMPLE condition. + Save information about the condition into CONDITIONS_IN_BBS. */ + +static void +find_conditions (basic_block bb, + hash_map<basic_block, condition_info> *conditions_in_bbs) +{ + gimple_stmt_iterator gsi = gsi_last_nondebug_bb (bb); + if (gsi_end_p (gsi)) + return; + + gcond *cond = dyn_cast<gcond *> (gsi_stmt (gsi)); + if (cond == NULL) + return; + + if (!no_side_effect_bb (bb)) + return; + + tree lhs = gimple_cond_lhs (cond); + tree rhs = gimple_cond_rhs (cond); + tree_code code = gimple_cond_code (cond); + + condition_info info (cond); + + gassign *def; + if (code == NE_EXPR + && TREE_CODE (lhs) == SSA_NAME + && (def = dyn_cast<gassign *> (SSA_NAME_DEF_STMT (lhs))) != NULL + && integer_zerop (rhs)) + { + enum tree_code rhs_code = gimple_assign_rhs_code (def); + if (rhs_code == BIT_IOR_EXPR) + { + info.m_ranges.safe_grow (2, true); + init_range_entry (&info.m_ranges[0], gimple_assign_rhs1 (def), NULL); + init_range_entry (&info.m_ranges[1], gimple_assign_rhs2 (def), NULL); + } + } + else + { + info.m_ranges.safe_grow (1, true); + init_range_entry (&info.m_ranges[0], NULL_TREE, cond); + } + + /* All identified ranges must have equal expression and IN_P flag. */ + if (!info.m_ranges.is_empty ()) + { + edge true_edge, false_edge; + tree expr = info.m_ranges[0].exp; + bool in_p = info.m_ranges[0].in_p; + + extract_true_false_edges_from_block (bb, &true_edge, &false_edge); + info.m_true_edge = in_p ? true_edge : false_edge; + info.m_false_edge = in_p ? false_edge : true_edge; + + for (unsigned i = 0; i < info.m_ranges.length (); ++i) + if (info.m_ranges[i].exp == NULL_TREE + || info.m_ranges[i].low == NULL_TREE + || info.m_ranges[i].high == NULL_TREE) + return; + + for (unsigned i = 1; i < info.m_ranges.length (); ++i) + if (info.m_ranges[i].exp != expr + || info.m_ranges[i].in_p != in_p) + return; + + info.record_phi_mapping (info.m_true_edge, + &info.m_true_edge_phi_mapping); + info.record_phi_mapping (info.m_false_edge, + &info.m_false_edge_phi_mapping); + conditions_in_bbs->put (bb, info); + } + +} + +namespace { + +const pass_data pass_data_if_to_switch = +{ + GIMPLE_PASS, /* type */ + "iftoswitch", /* name */ + OPTGROUP_NONE, /* optinfo_flags */ + TV_TREE_IF_TO_SWITCH, /* tv_id */ + ( PROP_cfg | PROP_ssa ), /* properties_required */ + 0, /* properties_provided */ + 0, /* properties_destroyed */ + 0, /* todo_flags_start */ + TODO_cleanup_cfg | TODO_update_ssa /* todo_flags_finish */ +}; + +class pass_if_to_switch : public gimple_opt_pass +{ +public: + pass_if_to_switch (gcc::context *ctxt) + : gimple_opt_pass (pass_data_if_to_switch, ctxt) + {} + + /* opt_pass methods: */ + virtual bool gate (function *) + { + return (jump_table_cluster::is_enabled () + || bit_test_cluster::is_enabled ()); + } + + virtual unsigned int execute (function *); + +}; // class pass_if_to_switch + +unsigned int +pass_if_to_switch::execute (function *fun) +{ + auto_vec<if_chain *> all_candidates; + hash_map<basic_block, condition_info> conditions_in_bbs; + + basic_block bb; + FOR_EACH_BB_FN (bb, fun) + find_conditions (bb, &conditions_in_bbs); + + int *rpo = XNEWVEC (int, n_basic_blocks_for_fn (fun)); + unsigned n = pre_and_rev_post_order_compute_fn (fun, NULL, rpo, false); + + auto_bitmap seen_bbs; + for (int i = n - 1; i >= 0; --i) + { + basic_block bb = BASIC_BLOCK_FOR_FN (fun, rpo[i]); + if (bitmap_bit_p (seen_bbs, bb->index)) + continue; + + bitmap_set_bit (seen_bbs, bb->index); + condition_info *info = conditions_in_bbs.get (bb); + if (info) + { + if_chain *chain = new if_chain (); + chain->m_entries.safe_push (info); + /* Try to find a chain starting in this BB. */ + while (true) + { + if (!single_pred_p (gimple_bb (info->m_cond))) + break; + edge e = single_pred_edge (gimple_bb (info->m_cond)); + condition_info *info2 = conditions_in_bbs.get (e->src); + if (!info2 || info->m_ranges[0].exp != info2->m_ranges[0].exp) + break; + + chain->m_entries.safe_push (info2); + bitmap_set_bit (seen_bbs, e->src->index); + info = info2; + } + + chain->m_entries.reverse (); + if (chain->m_entries.length () >= 3 + && chain->check_non_overlapping_cases () + && chain->is_beneficial ()) + { + gcond *cond = chain->m_entries[0]->m_cond; + expanded_location loc = expand_location (gimple_location (cond)); + if (dump_file) + { + fprintf (dump_file, "Condition chain (at %s:%d) with %d BBs " + "transformed into a switch statement.\n", + loc.file, loc.line, + chain->m_entries.length ()); + } + all_candidates.safe_push (chain); + } + } + } + + for (unsigned i = 0; i < all_candidates.length (); i++) + { + convert_if_conditions_to_switch (all_candidates[i]); + delete all_candidates[i]; + } + + free (rpo); + free_dominance_info (CDI_DOMINATORS); + + if (!all_candidates.is_empty ()) + mark_virtual_operands_for_renaming (fun); + + return 0; +} + +} // anon namespace + +gimple_opt_pass * +make_pass_if_to_switch (gcc::context *ctxt) +{ + return new pass_if_to_switch (ctxt); +} diff --git a/gcc/passes.def b/gcc/passes.def index f865bdc19ac..10d7eeb091b 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -93,6 +93,7 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_phiopt, true /* early_p */); NEXT_PASS (pass_modref); NEXT_PASS (pass_tail_recursion); + NEXT_PASS (pass_if_to_switch); NEXT_PASS (pass_convert_switch); NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_profile); diff --git a/gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C b/gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C new file mode 100644 index 00000000000..0f9c8d35ff9 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/if-to-switch-1.C @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +void fancy_abort(const char *, int, const char *); + +enum machine_mode +{ + MODE_FLOAT, + MODE_DECIMAL_FLOAT, + MODE_COMPLEX_INT, + MODE_COMPLEX_FLOAT, + MODE_VECTOR_BOOL, + MODE_VECTOR_FLOAT +} extern const mode_class; + +void tree_node() { + if (mode_class) + mode_class == MODE_FLOAT || mode_class == MODE_DECIMAL_FLOAT || + mode_class == MODE_COMPLEX_FLOAT || mode_class == MODE_VECTOR_FLOAT + ? fancy_abort("aaa", 2, __FUNCTION__), + 0 : 0; + int g = 0; +} + +/* { dg-final { scan-tree-dump "Condition chain \\(at .*\\) with 3 BBs transformed into a switch statement." "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c new file mode 100644 index 00000000000..94a0db649e4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-1.c @@ -0,0 +1,35 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int global; +int foo (); + +int main(int argc, char **argv) +{ + if (argc == 1) + foo (); + else if (argc == 2) + { + global += 1; + } + else if (argc == 3) + { + foo (); + foo (); + } + else if (argc == 4) + { + foo (); + } + else if (argc == 5) + { + global = 2; + } + else + global -= 123; + + global -= 12; + return 0; +} + +/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-1.c:9\\) with 5 BBs transformed into a switch statement." "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c new file mode 100644 index 00000000000..b114e74ac37 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-2.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int IsHTMLWhitespaceNoRange(int aChar) +{ + return aChar == 0x0001 || aChar == 0x000A || + aChar == 0x000C || aChar == 0x000E || + aChar == 0x0020; +} + +/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-2.c:7\\) with 3 BBs transformed into a switch statement." "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c new file mode 100644 index 00000000000..e157039e75b --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-3.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int IsHTMLWhitespace(int aChar) +{ + return aChar == 0x0009 || aChar == 0x000A || + aChar == 0x000C || aChar == 0x000D || + aChar == 0x0020 || aChar == 0x0030; +} + +/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-3.c:8\\) with 3 BBs transformed into a switch statement." "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c new file mode 100644 index 00000000000..3ae006f6ca2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-4.c @@ -0,0 +1,36 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int global; +int foo (); + +int main(int argc, char **argv) +{ + if (argc == 1) + foo (); + else if (argc == 2) + { + global += 1; + } + else if (argc == 3) + { + foo (); + foo (); + } + else if (argc == 4) + { + foo (); + } + /* This will be removed with EVRP. */ + else if (argc == 1) + { + global = 2; + } + else + global -= 123; + + global -= 12; + return 0; +} + +/* { dg-final { scan-tree-dump-not "Condition chain" "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c new file mode 100644 index 00000000000..46ea5b627c8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-5.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int crud (unsigned char c) +{ + return (((((((((((int) c == 46) || (int) c == 44) + || (int) c == 58) || (int) c == 59) || (int) c == 60) + || (int) c == 62) || (int) c == 34) || (int) c == 92) + || (int) c == 39) != 0); +} + +/* { dg-final { scan-tree-dump "Condition chain \\(at .*if-to-switch-5.c:9\\) with 5 BBs transformed into a switch statement." "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-6.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-6.c new file mode 100644 index 00000000000..7af323ae251 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-6.c @@ -0,0 +1,42 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int global; +int foo (); + +int main(int argc, char **argv) +{ + if (argc >= 1 && argc <= 10) + foo (); + else if (argc == 12) + { + global += 1; + } + else if (argc == 13) + { + foo (); + foo (); + } + else if (argc == 14) + { + foo (); + } + /* This will be removed with EVRP. */ + else if (argc == 5) + { + global = 2; + } + /* This will be removed with EVRP. */ + else if (argc >= 7 && argc <= 9) + { + global = 2; + } + + else + global -= 123; + + global -= 12; + return 0; +} + +/* { dg-final { scan-tree-dump-not "Condition chain" "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-7.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-7.c new file mode 100644 index 00000000000..1a919bf025a --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-7.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int global; + +int foo(int a) +{ + int x = 0; + for (unsigned i = 0; i < a; i++) + { + if (a == 2) + { + global += 123; + x = 1; + } + else if (a == 3) + x = 2; + else if (a == 10) + x = 3; + } + + return x; +} + +/* { dg-final { scan-tree-dump-not "Condition chain " "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c new file mode 100644 index 00000000000..a5f1a1eae18 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/if-to-switch-8.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-iftoswitch" } */ + +int global; +int global1; +int global2; +int global3; + +int foo(int a, int b) +{ + int x = 0; + for (unsigned i = 0; i < a; i++) + { + if (b == 1) + global += 2; + else if (a == 2) + global = 123; + else if (a == 3) + global1 = 1234; + else if (a == 10) + global2 = 12345; + else if (a == 1) + global2 = 123456; + } +} + +/* { dg-final { scan-tree-dump-not "Condition chain" "iftoswitch" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr96480.c b/gcc/testsuite/gcc.dg/tree-ssa/pr96480.c index f2a91ef9909..cc04721c1df 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr96480.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr96480.c @@ -1,6 +1,6 @@ /* PR tree-optimization/96480 */ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-optimized" } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-bit-tests" } */ /* { dg-final { scan-tree-dump " = _\[0-9]* <= 3;" "optimized" } } */ int v[4]; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c index 944362ad076..093e7a57a27 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-32.c @@ -1,6 +1,6 @@ /* { dg-do run { target { ! "m68k*-*-* mmix*-*-* bfin*-*-* v850*-*-* moxie*-*-* cris*-*-* m32c*-*-* fr30*-*-* mcore*-*-* powerpc*-*-* xtensa*-*-*"} } } */ -/* { dg-options "-O2 -fno-inline -fdump-tree-reassoc1-details --param logical-op-non-short-circuit=1" } */ +/* { dg-options "-O2 -fno-inline -fdump-tree-reassoc1-details --param logical-op-non-short-circuit=1 -fno-bit-tests" } */ /* { dg-additional-options "-mbranch-cost=2" { target branch_cost } } */ diff --git a/gcc/timevar.def b/gcc/timevar.def index 08c21c04009..ee87718f3e4 100644 --- a/gcc/timevar.def +++ b/gcc/timevar.def @@ -292,6 +292,7 @@ DEFTIMEVAR (TV_VAR_TRACKING , "variable tracking") DEFTIMEVAR (TV_VAR_TRACKING_DATAFLOW , "var-tracking dataflow") DEFTIMEVAR (TV_VAR_TRACKING_EMIT , "var-tracking emit") DEFTIMEVAR (TV_TREE_IFCOMBINE , "tree if-combine") +DEFTIMEVAR (TV_TREE_IF_TO_SWITCH , "if to switch conversion") DEFTIMEVAR (TV_TREE_UNINIT , "uninit var analysis") DEFTIMEVAR (TV_PLUGIN_INIT , "plugin initialization") DEFTIMEVAR (TV_PLUGIN_RUN , "plugin execution") diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 62e5b696cab..f8adb902345 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -374,6 +374,7 @@ extern gimple_opt_pass *make_pass_empty_loop (gcc::context *ctxt); extern gimple_opt_pass *make_pass_graphite (gcc::context *ctxt); extern gimple_opt_pass *make_pass_graphite_transforms (gcc::context *ctxt); extern gimple_opt_pass *make_pass_if_conversion (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_if_to_switch (gcc::context *ctxt); extern gimple_opt_pass *make_pass_loop_distribution (gcc::context *ctxt); extern gimple_opt_pass *make_pass_vectorize (gcc::context *ctxt); extern gimple_opt_pass *make_pass_simduid_cleanup (gcc::context *ctxt); diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c index a2ca1713d4b..96765bdd3f2 100644 --- a/gcc/tree-ssa-reassoc.c +++ b/gcc/tree-ssa-reassoc.c @@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. If not see #include "builtins.h" #include "gimplify.h" #include "case-cfn-macros.h" +#include "tree-ssa-reassoc.h" /* This is a simple global reassociation pass. It is, in part, based on the LLVM pass of the same name (They do some things more/less @@ -188,15 +189,6 @@ static struct int pows_created; } reassociate_stats; -/* Operator, rank pair. */ -struct operand_entry -{ - unsigned int rank; - unsigned int id; - tree op; - unsigned int count; - gimple *stmt_to_insert; -}; static object_allocator<operand_entry> operand_entry_pool ("operand entry pool"); @@ -226,7 +218,7 @@ static bool reassoc_stmt_dominates_stmt_p (gimple *, gimple *); /* Wrapper around gsi_remove, which adjusts gimple_uid of debug stmts possibly added by gsi_remove. */ -bool +static bool reassoc_remove_stmt (gimple_stmt_iterator *gsi) { gimple *stmt = gsi_stmt (*gsi); @@ -2406,18 +2398,7 @@ optimize_ops_list (enum tree_code opcode, For more information see comments above fold_test_range in fold-const.c, this implementation is for GIMPLE. */ -struct range_entry -{ - tree exp; - tree low; - tree high; - bool in_p; - bool strict_overflow_p; - unsigned int idx, next; -}; -void dump_range_entry (FILE *file, struct range_entry *r); -void debug_range_entry (struct range_entry *r); /* Dump the range entry R to FILE, skipping its expression if SKIP_EXP. */ @@ -2447,7 +2428,7 @@ debug_range_entry (struct range_entry *r) an SSA_NAME and STMT argument is ignored, otherwise STMT argument should be a GIMPLE_COND. */ -static void +void init_range_entry (struct range_entry *r, tree exp, gimple *stmt) { int in_p; @@ -4284,7 +4265,7 @@ suitable_cond_bb (basic_block bb, basic_block test_bb, basic_block *other_bb, range test optimization, all SSA_NAMEs set in the bb are consumed in the bb and there are no PHIs. */ -static bool +bool no_side_effect_bb (basic_block bb) { gimple_stmt_iterator gsi; diff --git a/gcc/tree-ssa-reassoc.h b/gcc/tree-ssa-reassoc.h new file mode 100644 index 00000000000..dc7f59f1eca --- /dev/null +++ b/gcc/tree-ssa-reassoc.h @@ -0,0 +1,48 @@ +/* Reassociation for trees. + Copyright (C) 2020 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +<http://www.gnu.org/licenses/>. */ + +#ifndef GCC_SSA_REASSOC_H +#define GCC_SSA_REASSOC_H + +/* Operator, rank pair. */ +struct operand_entry +{ + unsigned int rank; + unsigned int id; + tree op; + unsigned int count; + gimple *stmt_to_insert; +}; + +struct range_entry +{ + tree exp; + tree low; + tree high; + bool in_p; + bool strict_overflow_p; + unsigned int idx, next; +}; + +void dump_range_entry (FILE *file, struct range_entry *r); +void debug_range_entry (struct range_entry *r); +void init_range_entry (struct range_entry *r, tree exp, gimple *stmt); +bool no_side_effect_bb (basic_block bb); + +#endif /* GCC_SSA_REASSOC_H */ diff --git a/gcc/tree-switch-conversion.h b/gcc/tree-switch-conversion.h index 7515e952eb3..62cfde168c8 100644 --- a/gcc/tree-switch-conversion.h +++ b/gcc/tree-switch-conversion.h @@ -48,8 +48,8 @@ class cluster { public: /* Constructor. */ - cluster (tree case_label_expr, basic_block case_bb, profile_probability prob, - profile_probability subtree_prob); + inline cluster (tree case_label_expr, basic_block case_bb, + profile_probability prob, profile_probability subtree_prob); /* Destructor. */ virtual ~cluster () @@ -121,8 +121,9 @@ class simple_cluster: public cluster { public: /* Constructor. */ - simple_cluster (tree low, tree high, tree case_label_expr, - basic_block case_bb, profile_probability prob); + inline simple_cluster (tree low, tree high, tree case_label_expr, + basic_block case_bb, profile_probability prob, + bool has_forward_bb = false); /* Destructor. */ ~simple_cluster () @@ -146,6 +147,11 @@ public: return m_high; } + void set_high (tree high) + { + m_high = high; + } + void debug () { @@ -182,12 +188,16 @@ public: /* True if case is a range. */ bool m_range_p; + + /* True if the case will use a forwarder BB. */ + bool m_has_forward_bb; }; simple_cluster::simple_cluster (tree low, tree high, tree case_label_expr, - basic_block case_bb, profile_probability prob): + basic_block case_bb, profile_probability prob, + bool has_forward_bb): cluster (case_label_expr, case_bb, prob, prob), - m_low (low), m_high (high) + m_low (low), m_high (high), m_has_forward_bb (has_forward_bb) { m_range_p = m_high != NULL; if (m_high == NULL) @@ -271,7 +281,7 @@ public: static inline unsigned int case_values_threshold (void); /* Return whether jump table expansion is allowed. */ - static bool is_enabled (void); + static inline bool is_enabled (void); }; /* A GIMPLE switch statement can be expanded to a short sequence of bit-wise -- 2.28.0
>From 7984458480ceadc6b3c43ed952c21d55305bc567 Mon Sep 17 00:00:00 2001 From: Martin Liska <mli...@suse.cz> Date: Fri, 2 Oct 2020 14:12:06 +0200 Subject: [PATCH 1/2] Add -fbit-tests option. gcc/ChangeLog: * common.opt: Add new -fbit-tests option. * doc/invoke.texi: Document the option. * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): Use the option. * tree-switch-conversion.h (is_enabled): New function. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/switch-4.c: New test. --- gcc/common.opt | 4 ++++ gcc/doc/invoke.texi | 8 +++++++- gcc/testsuite/gcc.dg/tree-ssa/switch-4.c | 25 ++++++++++++++++++++++++ gcc/tree-switch-conversion.c | 3 +++ gcc/tree-switch-conversion.h | 6 ++++++ 5 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/switch-4.c diff --git a/gcc/common.opt b/gcc/common.opt index 7e789d1c47f..aa3d75c2357 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -1936,6 +1936,10 @@ fjump-tables Common Var(flag_jump_tables) Init(1) Optimization Use jump tables for sufficiently large switch statements. +fbit-tests +Common Var(flag_bit_tests) Init(1) Optimization +Use bit tests for sufficiently large switch statements. + fkeep-inline-functions Common Report Var(flag_keep_inline_functions) Generate code for functions even if they are fully inlined. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 631a119181c..9ee62197b51 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -635,7 +635,7 @@ Objective-C and Objective-C++ Dialects}. -fno-gnu-unique @gol -finhibit-size-directive -fcommon -fno-ident @gol -fpcc-struct-return -fpic -fPIC -fpie -fPIE -fno-plt @gol --fno-jump-tables @gol +-fno-jump-tables -fno-bit-tests @gol -frecord-gcc-switches @gol -freg-struct-return -fshort-enums -fshort-wchar @gol -fverbose-asm -fpack-struct[=@var{n}] @gol @@ -15879,6 +15879,12 @@ building code that forms part of a dynamic linker and cannot reference the address of a jump table. On some targets, jump tables do not require a GOT and this option is not needed. +@item -fno-bit-tests +@opindex fno-bit-tests +@opindex fbit-tests +Do not use bit tests for switch statements even where it would be +more efficient than other code generation strategies. + @item -ffixed-@var{reg} @opindex ffixed Treat the register named @var{reg} as a fixed register; generated code diff --git a/gcc/testsuite/gcc.dg/tree-ssa/switch-4.c b/gcc/testsuite/gcc.dg/tree-ssa/switch-4.c new file mode 100644 index 00000000000..5953ef34e9b --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/switch-4.c @@ -0,0 +1,25 @@ +/* { dg-do compile { target { { x86_64-*-* aarch64-*-* ia64-*-* powerpc64-*-* } && lp64 } } } */ +/* { dg-options "-O2 -fno-bit-tests -fdump-tree-switchlower1" } */ + +int global; + +int foo (int x) +{ + switch (x) { + case 0: + case 10: + return 1; + case 20: + case 30: + case 62: + return 2; + case 1000: + case 1010: + case 1025 ... 1030: + return 1; + default: + return 0; + } +} + +/* { dg-final { scan-tree-dump-not "BT:" "switchlower1" } } */ diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c index 03a1fe632d0..426462e856b 100644 --- a/gcc/tree-switch-conversion.c +++ b/gcc/tree-switch-conversion.c @@ -1310,6 +1310,9 @@ jump_table_cluster::is_beneficial (const vec<cluster *> &, vec<cluster *> bit_test_cluster::find_bit_tests (vec<cluster *> &clusters) { + if (!is_enabled ()) + return clusters.copy (); + unsigned l = clusters.length (); auto_vec<min_cluster_item> min; min.reserve (l + 1); diff --git a/gcc/tree-switch-conversion.h b/gcc/tree-switch-conversion.h index dbfd9eecba2..7515e952eb3 100644 --- a/gcc/tree-switch-conversion.h +++ b/gcc/tree-switch-conversion.h @@ -411,6 +411,12 @@ public: basic_block case_bb, profile_probability prob); + /* Return whether bit test expansion is allowed. */ + static inline bool is_enabled (void) + { + return flag_bit_tests; + } + /* True when the jump table handles an entire switch statement. */ bool m_handles_entire_switch; -- 2.28.0
Condition chain (at /home/marxin/Programming/gcc2/libcpp/init.c:555) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/macro.c:819) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/macro.c:1170) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:371) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:391) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:411) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:431) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/lex.c:2341) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/lex.c:1856) with 14 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/lex.c:4147) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libdecnumber/decContext.c:358) with 13 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libdecnumber/decNumber.c:3322) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/init.c:555) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/macro.c:819) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/macro.c:1170) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:371) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:391) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:411) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/expr.c:431) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/lex.c:2341) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/lex.c:1856) with 14 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libcpp/lex.c:4147) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/simplify-rtx.c:2274) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/simplify-rtx.c:2272) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/simplify-rtx.c:2294) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cfgcleanup.c:1239) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cfgcleanup.c:1173) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cfgcleanup.c:1173) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/godump.c:246) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/godump.c:239) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/regcprop.c:788) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/sched-deps.c:4277) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/sched-deps.c:4732) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/sched-deps.c:2922) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-vect-generic.c:1296) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-vect-generic.c:2104) with 11 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2748) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2748) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2748) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2748) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:2781) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:2806) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:2833) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:2929) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:2954) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:3462) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sync.md:3487) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/ipa-utils.c:364) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-chrec.c:950) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-data-ref.c:710) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/trans-mem.c:369) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/trans-mem.c:415) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dwarf2out.c:5311) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dwarf2out.c:19876) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dwarf2out.c:6019) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dwarf2out.c:25295) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dwarf2out.c:22982) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-vect-stmts.c:10374) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-vect-stmts.c:7089) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/emit-rtl.c:3859) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/emit-rtl.c:6473) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/emit-rtl.c:6473) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/emit-rtl.c:953) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/emit-rtl.c:953) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dse.c:2633) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at gimple-match.c:20839) with 6 BBs transformed into a switch statement. Condition chain (at gimple-match.c:18029) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:461) with 21 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:5996) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:571) with 30 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:571) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:19177) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:886) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:878) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2976) with 15 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:503) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:926) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:765) with 9 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:1121) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:1113) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:565) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:557) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:17374) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:17366) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:560) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:552) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:481) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:14473) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/omp-low.c:637) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:15748) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:15747) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:15660) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:15659) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:16909) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:1712) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:20114) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:401) with 22 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:380) with 21 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:8133) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:8127) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:2706) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:2740) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:3488) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:4026) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:4573) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:6566) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-expand.c:19452) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-ssa-sprintf.c:944) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/read-md.c:472) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-structalias.c:6634) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cfgexpand.c:6149) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cfgexpand.c:4440) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/mangle.c:1890) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/call.c:881) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/search.c:462) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/search.c:518) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/name-lookup.c:2984) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/name-lookup.c:2943) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:2743) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:2756) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:31009) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:32737) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:34106) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:28568) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:26423) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:18110) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:7524) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:41219) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/parser.c:13540) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/semantics.c:3597) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl2.c:1358) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl2.c:5577) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/typeck.c:9473) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:278) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:1466) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:288) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:300) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:450) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:452) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:1490) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lambda.c:1495) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/tree.c:71) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/expr.c:117) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/expr.c:169) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/pt.c:26899) with 17 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/pt.c:18064) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/pt.c:7440) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/pt.c:13012) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl.c:2494) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl.c:2492) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl.c:914) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl.c:911) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/decl.c:3965) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/constexpr.c:5682) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/constexpr.c:7642) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/constexpr.c:7646) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/lex.c:695) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/class.c:1252) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/class.c:1252) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cp/class.c:1229) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs-query.h:89) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs-libfuncs.c:247) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs-libfuncs.c:259) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/lto/lto-lang.c:1112) with 18 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gensupport.c:3266) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gensupport.c:3261) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/read-md.c:472) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/genautomata.c:951) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/genrecog.c:703) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/genpreds.c:794) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gengtype.c:2491) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gengtype.h:344) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/genpeep.c:250) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:896) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/toplev.c:2228) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dce.c:594) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-ccp.c:856) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-alias.c:4089) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/ddg.c:237) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/lto-streamer-out.c:1922) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/lto-streamer-out.c:162) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/lto-streamer-out.c:527) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:13142) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19031) with 17 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19030) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19018) with 16 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19012) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19003) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19042) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19063) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:20965) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:20963) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:6746) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:16395) with 24 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:6726) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19201) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19200) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:21587) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19254) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19279) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19300) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:3328) with 22 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:3392) with 21 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:6797) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:6801) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:6599) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:12250) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:19603) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:1675) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8546) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:6623) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8512) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7110) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7823) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8734) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8435) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8468) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8447) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7085) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7308) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7295) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7197) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7193) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7000) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:1853) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8381) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8359) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8320) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8300) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8282) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8049) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8033) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8019) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8006) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7997) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7990) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7984) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7931) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7929) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7928) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:7964) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:9128) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:9157) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:9072) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8947) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:8971) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:13017) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:16724) with 22 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:16598) with 22 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:2884) with 14 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.c:3838) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1185) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/sse.md:1067) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-features.c:547) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/expmed.c:6272) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/read-rtl-function.c:1400) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/varasm.c:7305) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at insn-dfatab.c:2840) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3662) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3658) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3654) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3650) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2497) with 12 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2453) with 14 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:15505) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:20645) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:26030) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16987) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16983) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16979) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16975) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16987) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16983) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16979) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16975) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16128) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16124) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16120) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16116) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16128) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16124) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16120) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16116) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16387) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16158) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16158) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16171) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16171) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23580) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23516) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23512) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23508) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23504) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29654) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29590) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29586) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29582) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29578) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/asan.h:168) with 9 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/builtins.c:12207) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/builtins.c:4705) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/loop-iv.c:1569) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cse.c:3350) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/ipa-devirt.c:1238) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/predicates.md:1309) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/predicates.md:1313) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/predicates.md:1739) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/predicates.md:1811) with 9 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386-options.c:1176) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-pretty-print.c:390) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtlanal.c:6192) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:896) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/ifcvt.c:359) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-expr.h:97) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-object-size.c:312) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/convert.c:105) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/check.c:587) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/parse.c:1819) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/symbol.c:1766) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/intrinsic.c:208) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/intrinsic.c:4929) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/dump-parse-tree.c:3262) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/resolve.c:3307) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/scanner.c:2320) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/scanner.c:2215) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/trans-decl.c:2692) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/expr.c:1118) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fortran/decl.c:8423) with 6 BBs transformed into a switch statement. Condition chain (at generic-match.c:18862) with 6 BBs transformed into a switch statement. Condition chain (at generic-match.c:16134) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/stor-layout.c:486) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-pretty-print.c:1740) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fold-const.c:2115) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fold-const.c:8332) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fold-const.c:8837) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fold-const.c:8719) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-dce.c:964) with 12 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-expr.h:97) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/print-tree.c:691) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fixed-value.c:1112) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fixed-value.c:840) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fixed-value.c:827) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/fixed-value.c:896) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:14261) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:14751) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:14669) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:14648) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:14561) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:7083) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:10840) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.c:11697) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/cselib.c:2968) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/sel-sched-ir.c:2987) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-expr.h:97) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine-stack-adj.c:189) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine-stack-adj.c:412) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine-stack-adj.c:406) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/lto-streamer-in.c:1713) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dwarf2cfi.c:2546) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:896) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/reload.c:6536) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs-query.c:731) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-call-cdce.c:561) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-vect-data-refs.c:136) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:19430) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:19430) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:19430) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:19430) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:19441) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-tailcall.c:656) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-tailcall.c:440) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-attribs.c:3717) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-attribs.c:1962) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-lex.c:545) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-format.c:3439) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-ada-spec.c:469) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-common.c:2394) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-common.c:2349) with 18 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-common.c:2877) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-omp.c:2244) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-warn.c:1818) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-warn.c:1824) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-warn.c:1832) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-warn.c:1843) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-warn.c:1849) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c-family/c-warn.c:512) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-parser.c:384) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-parser.c:1298) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-parser.c:1262) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-decl.c:10942) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-decl.c:10772) with 9 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-decl.c:10829) with 10 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-decl.c:10890) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-decl.c:10993) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-decl.c:11042) with 11 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/gimple-parser.c:1579) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/c/c-typeck.c:8031) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gcc.c:9224) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gcc.c:3254) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gcc.c:7020) with 7 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-vect-slp.c:900) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/lto-opts.c:104) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/postreload.c:1452) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/reload1.c:6616) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:11890) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:9592) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:7549) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:5930) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:6750) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:6712) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:6695) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:3935) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/combine.c:2745) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree.h:5138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-expr.h:97) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimplify.c:14589) with 14 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/early-remat.c:2519) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/recog.c:3598) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/recog.c:3292) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/recog.c:3289) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/recog.c:3370) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-scopedtables.c:745) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16043) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3643) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3639) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3635) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:3631) with 8 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2442) with 12 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:2398) with 14 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:15652) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:20651) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:25947) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17133) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17129) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17125) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17121) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17133) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17129) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17125) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17121) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17405) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17401) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17397) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17393) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17405) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17401) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17397) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17393) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:17085) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16872) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16872) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16925) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:16925) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23767) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23703) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23699) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23695) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:23691) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29631) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29567) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29563) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29559) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/config/i386/i386.md:29555) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/ipa-prop.c:678) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-expr.h:97) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-ssa-isolate-paths.c:241) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-operands.c:587) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:7215) with 4 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:2033) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:2114) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:1874) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:1315) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:1277) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/optabs.c:1101) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/var-tracking.c:799) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/dojump.c:1026) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gengtype.c:2491) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gengtype.h:344) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:896) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/asan.h:168) with 9 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/rtl.h:884) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/tree-ssa-sccvn.c:5777) with 5 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/gcc/gimple-ssa-strength-reduction.c:2138) with 3 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/zlib/deflate.c:363) with 6 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libiberty/cp-demangle.c:1561) with 9 BBs transformed into a switch statement. Condition chain (at /home/marxin/Programming/gcc2/libiberty/cp-demangle.c:1561) with 9 BBs transformed into a switch statement.