GCC Middle and Back End API Reference
|
#include <tree-switch-conversion.h>
Public Member Functions | |
cluster (tree case_label_expr, basic_block case_bb, profile_probability prob, profile_probability subtree_prob) | |
virtual | ~cluster () |
virtual cluster_type | get_type ()=0 |
virtual tree | get_low ()=0 |
virtual tree | get_high ()=0 |
virtual void | debug ()=0 |
virtual void | dump (FILE *f, bool details=false)=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 | |
tree | m_case_label_expr |
basic_block | m_case_bb |
profile_probability | m_prob |
profile_probability | m_subtree_prob |
profile_probability | m_default_prob |
Protected Member Functions | |
cluster () | |
Abstract base class for representing a cluster of cases. Here is the inheritance hierarachy, and the enum_cluster_type values for the concrete subclasses: cluster |-simple_cluster (SIMPLE_CASE) `-group_cluster |-jump_table_cluster (JUMP_TABLE) `-bit_test_cluster (BIT_TEST).
|
inline |
|
inlinevirtual |
|
inlineprotected |
|
pure virtual |
Implemented in tree_switch_conversion::group_cluster, and tree_switch_conversion::simple_cluster.
Implemented in tree_switch_conversion::group_cluster, and tree_switch_conversion::simple_cluster.
Referenced by tree_switch_conversion::switch_decision_tree::dump_case_nodes().
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
inlinestatic |
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(), tree_switch_conversion::group_cluster::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 virtual |
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(), tree_switch_conversion::group_cluster::dump(), and tree_switch_conversion::switch_decision_tree::emit_case_nodes().
|
inlinevirtual |
Reimplemented in tree_switch_conversion::simple_cluster.
Referenced by tree_switch_conversion::switch_decision_tree::emit_case_nodes().
basic_block tree_switch_conversion::cluster::m_case_bb |
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().
tree tree_switch_conversion::cluster::m_case_label_expr |
profile_probability tree_switch_conversion::cluster::m_default_prob |
profile_probability tree_switch_conversion::cluster::m_prob |
Referenced by tree_switch_conversion::switch_decision_tree::balance_case_nodes(), tree_switch_conversion::switch_decision_tree::dump_case_nodes(), tree_switch_conversion::bit_test_cluster::emit(), tree_switch_conversion::switch_decision_tree::emit_case_nodes(), and tree_switch_conversion::group_cluster::group_cluster().
profile_probability tree_switch_conversion::cluster::m_subtree_prob |
Referenced by tree_switch_conversion::switch_decision_tree::balance_case_nodes(), tree_switch_conversion::switch_decision_tree::dump_case_nodes(), tree_switch_conversion::bit_test_cluster::emit(), tree_switch_conversion::switch_decision_tree::emit_case_nodes(), and tree_switch_conversion::group_cluster::group_cluster().