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

#include <tree-switch-conversion.h>

Collaboration diagram for tree_switch_conversion::case_bit_test:

Static Public Member Functions

static int cmp (const void *p1, const void *p2)
 

Data Fields

wide_int mask
 
basic_block target_bb
 
tree label
 
int bits
 
profile_probability prob
 

Detailed Description

A case_bit_test represents a set of case nodes that may be
selected from using a bit-wise comparison.  HI and LO hold
the integer to be tested against, TARGET_EDGE contains the
edge to the basic block to jump to upon success and BITS
counts the number of case nodes handled by this test,
typically the number of bits set in HI:LO.  The LABEL field
is used to quickly identify all cases in this set without
looking at label_to_block for every case label.   

Member Function Documentation

◆ cmp()

int case_bit_test::cmp ( const void * p1,
const void * p2 )
static
Comparison function for qsort to order bit tests by decreasing
probability of execution.   

References CASE_LABEL, d1, d2, ggc_alloc(), and LABEL_DECL_UID.

Referenced by tree_switch_conversion::bit_test_cluster::emit().

Field Documentation

◆ bits

int tree_switch_conversion::case_bit_test::bits

◆ label

tree tree_switch_conversion::case_bit_test::label

◆ mask

wide_int tree_switch_conversion::case_bit_test::mask

◆ prob

profile_probability tree_switch_conversion::case_bit_test::prob

◆ target_bb

basic_block tree_switch_conversion::case_bit_test::target_bb

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