GCC Middle and Back End API Reference
|
#include <tree-switch-conversion.h>
Public Member Functions | |
group_cluster (vec< cluster * > &clusters, unsigned start, unsigned end) | |
~group_cluster () | |
tree | get_low () final override |
tree | get_high () final override |
void | debug () final override |
void | dump (FILE *f, bool details=false) final override |
virtual cluster_type | get_type ()=0 |
virtual void | emit (tree, tree, tree, basic_block, location_t)=0 |
virtual bool | is_single_value_p () |
Static Public Member Functions | |
static unsigned HOST_WIDE_INT | get_range (tree low, tree high) |
Data Fields | |
vec< simple_cluster * > | m_cases |
tree | m_case_label_expr |
basic_block | m_case_bb |
profile_probability | m_prob |
profile_probability | m_subtree_prob |
profile_probability | m_default_prob |
Abstract subclass of jump table and bit test cluster, handling a collection of simple_cluster instances.
Constructor.
References end(), gcc_checking_assert, i, m_cases, tree_switch_conversion::cluster::m_prob, tree_switch_conversion::cluster::m_subtree_prob, and profile_probability::never().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References dump().
Dump content of a cluster.
Implements tree_switch_conversion::cluster.
References tree_switch_conversion::simple_cluster::get_comparison_count(), get_high(), get_low(), tree_switch_conversion::cluster::get_range(), tree_switch_conversion::cluster::get_type(), HOST_WIDE_INT_PRINT_DEC, i, tree_switch_conversion::JUMP_TABLE, m_cases, PRINT_CASE, and sc.
Referenced by debug().
|
pure virtualinherited |
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References m_cases.
Referenced by tree_switch_conversion::bit_test_cluster::can_be_handled(), tree_switch_conversion::jump_table_cluster::can_be_handled(), dump(), tree_switch_conversion::bit_test_cluster::emit(), and tree_switch_conversion::jump_table_cluster::emit().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References m_cases.
Referenced by tree_switch_conversion::bit_test_cluster::can_be_handled(), tree_switch_conversion::jump_table_cluster::can_be_handled(), dump(), tree_switch_conversion::bit_test_cluster::emit(), and tree_switch_conversion::jump_table_cluster::emit().
|
inlinestaticinherited |
References wi::fits_uhwi_p(), wi::neg_p(), generic_wide_int< storage >::to_uhwi(), wi::to_wide(), TREE_TYPE, and TYPE_SIGN.
Referenced by tree_switch_conversion::bit_test_cluster::can_be_handled(), tree_switch_conversion::jump_table_cluster::can_be_handled(), dump(), tree_switch_conversion::bit_test_cluster::emit(), tree_switch_conversion::jump_table_cluster::emit(), and tree_switch_conversion::bit_test_cluster::find_bit_tests_fast().
|
pure virtualinherited |
Implemented in tree_switch_conversion::bit_test_cluster, tree_switch_conversion::jump_table_cluster, and tree_switch_conversion::simple_cluster.
Referenced by tree_switch_conversion::switch_decision_tree::analyze_switch_statement(), dump(), and tree_switch_conversion::switch_decision_tree::emit_case_nodes().
|
inlinevirtualinherited |
Reimplemented in tree_switch_conversion::simple_cluster.
Referenced by tree_switch_conversion::switch_decision_tree::emit_case_nodes().
|
inherited |
Referenced by tree_switch_conversion::bit_test_cluster::emit(), tree_switch_conversion::jump_table_cluster::emit(), tree_switch_conversion::switch_decision_tree::emit_case_nodes(), tree_switch_conversion::bit_test_cluster::find_bit_tests_fast(), if_chain::is_beneficial(), and tree_switch_conversion::switch_decision_tree::try_switch_expansion().
|
inherited |
vec<simple_cluster *> tree_switch_conversion::group_cluster::m_cases |
|
inherited |
|
inherited |
|
inherited |