GCC Middle and Back End API Reference
tree_switch_conversion::simple_cluster Class Reference

#include <tree-switch-conversion.h>

Inheritance diagram for tree_switch_conversion::simple_cluster:
Collaboration diagram for tree_switch_conversion::simple_cluster:

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)
 

Data Fields

tree m_low
 
tree m_high
 
bool m_range_p
 
bool m_has_forward_bb
 
tree m_case_label_expr
 
basic_block m_case_bb
 
profile_probability m_prob
 
profile_probability m_subtree_prob
 
profile_probability m_default_prob
 

Detailed Description

Subclass of cluster representing a simple contiguous range
from [low..high].   

Constructor & Destructor Documentation

◆ simple_cluster()

tree_switch_conversion::simple_cluster::simple_cluster ( tree low,
tree high,
tree case_label_expr,
basic_block case_bb,
profile_probability prob,
bool has_forward_bb = false )
inline

References m_high, m_low, m_range_p, and NULL.

◆ ~simple_cluster()

tree_switch_conversion::simple_cluster::~simple_cluster ( )
inline

Member Function Documentation

◆ debug()

void tree_switch_conversion::simple_cluster::debug ( )
inlinefinaloverridevirtual

Implements tree_switch_conversion::cluster.

References dump(), and ggc_alloc().

◆ dump()

void tree_switch_conversion::simple_cluster::dump ( FILE * f,
bool details = false )
inlinefinaloverridevirtual

Implements tree_switch_conversion::cluster.

References get_high(), get_low(), ggc_alloc(), and PRINT_CASE.

Referenced by debug().

◆ emit()

void tree_switch_conversion::simple_cluster::emit ( tree ,
tree ,
tree ,
basic_block ,
location_t  )
inlinefinaloverridevirtual

◆ get_comparison_count()

unsigned tree_switch_conversion::simple_cluster::get_comparison_count ( )
inline

References m_range_p.

◆ get_high()

tree tree_switch_conversion::simple_cluster::get_high ( )
inlinefinaloverridevirtual

◆ get_low()

tree tree_switch_conversion::simple_cluster::get_low ( )
inlinefinaloverridevirtual

◆ get_range()

◆ get_type()

cluster_type tree_switch_conversion::simple_cluster::get_type ( )
inlinefinaloverridevirtual

◆ is_single_value_p()

bool tree_switch_conversion::simple_cluster::is_single_value_p ( )
inlinefinaloverridevirtual

◆ set_high()

void tree_switch_conversion::simple_cluster::set_high ( tree high)
inline

References m_high.

Referenced by if_chain::is_beneficial().

Field Documentation

◆ m_case_bb

◆ m_case_label_expr

tree tree_switch_conversion::cluster::m_case_label_expr
inherited

◆ m_default_prob

◆ m_has_forward_bb

bool tree_switch_conversion::simple_cluster::m_has_forward_bb

Referenced by if_chain::is_beneficial().

◆ m_high

tree tree_switch_conversion::simple_cluster::m_high

Referenced by get_high(), set_high(), and simple_cluster().

◆ m_low

tree tree_switch_conversion::simple_cluster::m_low

Referenced by get_low(), and simple_cluster().

◆ m_prob

◆ m_range_p

bool tree_switch_conversion::simple_cluster::m_range_p

◆ m_subtree_prob


The documentation for this class was generated from the following file: