GCC Middle and Back End API Reference
|
#include <tree-switch-conversion.h>
Public Member Functions | |
simple_cluster (tree low, tree high, tree case_label_expr, basic_block case_bb, profile_probability prob, bool has_forward_bb=false) | |
~simple_cluster () | |
cluster_type | get_type () final override |
tree | get_low () final override |
tree | get_high () final override |
void | set_high (tree high) |
void | debug () final override |
void | dump (FILE *f, bool details=false) final override |
void | emit (tree, tree, tree, basic_block, location_t) final override |
bool | is_single_value_p () final override |
unsigned | get_comparison_count () |
Static Public Member Functions | |
static unsigned HOST_WIDE_INT | get_range (tree low, tree high) |
Subclass of cluster representing a simple contiguous range from [low..high].
|
inline |
|
inline |
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References dump().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References get_high(), get_low(), and PRINT_CASE.
Referenced by debug().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References gcc_unreachable.
|
inline |
References m_range_p.
Referenced by tree_switch_conversion::group_cluster::dump(), and tree_switch_conversion::jump_table_cluster::find_jump_tables().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References m_high.
Referenced by cluster_cmp(), dump(), tree_switch_conversion::bit_test_cluster::emit(), if_chain::is_beneficial(), and is_single_value_p().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References m_low.
Referenced by cluster_cmp(), dump(), tree_switch_conversion::bit_test_cluster::emit(), if_chain::is_beneficial(), and is_single_value_p().
|
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(), 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().
|
inlinefinaloverridevirtual |
Implements tree_switch_conversion::cluster.
References tree_switch_conversion::SIMPLE_CASE.
|
inlinefinaloverridevirtual |
Reimplemented from tree_switch_conversion::cluster.
References get_high(), get_low(), and tree_int_cst_equal().
|
inline |
References m_high.
Referenced by if_chain::is_beneficial().
|
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 |
|
inherited |
bool tree_switch_conversion::simple_cluster::m_has_forward_bb |
Referenced by if_chain::is_beneficial().
tree tree_switch_conversion::simple_cluster::m_high |
Referenced by get_high(), set_high(), and simple_cluster().
tree tree_switch_conversion::simple_cluster::m_low |
Referenced by get_low(), and simple_cluster().
|
inherited |
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().
bool tree_switch_conversion::simple_cluster::m_range_p |
Referenced by get_comparison_count(), and simple_cluster().
|
inherited |
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().