GCC Middle and Back End API Reference
dbgcnt.cc File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "diagnostic-core.h"
#include "dumpfile.h"
#include "selftest.h"
#include "intl.h"
#include "dbgcnt.h"
#include "dbgcnt.def"
Include dependency graph for dbgcnt.cc:

Data Structures

struct  string2counter_map

Macros

#define DEBUG_COUNTER(a)

Typedefs

typedef std::pair< unsigned int, unsigned int > limit_tuple

Functions

static void print_limit_reach (const char *counter, int limit, bool upper_p)
bool dbg_cnt (enum debug_counter index)
unsigned dbg_cnt_counter (enum debug_counter index)
static int cmp_tuples (const void *ptr1, const void *ptr2)
static bool dbg_cnt_set_limit_by_index (enum debug_counter index, const char *name, unsigned int low, unsigned int high)
static bool dbg_cnt_set_limit_by_name (const char *name, unsigned int low, unsigned int high)
static bool dbg_cnt_process_single_pair (char *name, char *str)
void dbg_cnt_process_opt (const char *arg)
void dbg_cnt_list_all_counters (void)

Variables

static struct string2counter_map map [debug_counter_number_of_counters]
static vec< limit_tuplelimits [debug_counter_number_of_counters]
static vec< limit_tupleoriginal_limits [debug_counter_number_of_counters]
static unsigned int count [debug_counter_number_of_counters]

Macro Definition Documentation

◆ DEBUG_COUNTER

#define DEBUG_COUNTER ( a)
Value:
{ #a , a },
Ca & a
Definition poly-int.h:770

Typedef Documentation

◆ limit_tuple

typedef std::pair<unsigned int, unsigned int> limit_tuple

Function Documentation

◆ cmp_tuples()

int cmp_tuples ( const void * ptr1,
const void * ptr2 )
static
Compare limit_tuple intervals by first item in descending order.   

References cmp_tuples().

Referenced by cmp_tuples(), and dbg_cnt_set_limit_by_index().

◆ dbg_cnt()

bool dbg_cnt ( enum debug_counter index)

References count, dbg_cnt(), limits, map, string2counter_map::name, and print_limit_reach().

Referenced by dom_opt_dom_walker::before_dom_children(), cleanup_cfg(), convert_if_conditions_to_switch(), convert_mult_to_fma(), dbg_cnt(), dbg_cnt_is_enabled(), back_threader::debug_counter(), decide_about_value(), decide_whether_version_node(), delete_dead_store_insn(), delete_redundant_insns_1(), delete_trivially_dead_insns(), delete_unmarked_insns(), do_dbg_cnt(), do_pre_partial_partial_insertion(), do_pre_regular_insertion(), dse_step5(), eliminate_dom_walker::eliminate_stmt(), expand_call(), ext_dce_try_optimize_extension(), ext_dce_try_optimize_rshift(), ext_dce_try_promote_operation(), find_moveable_pseudos(), find_refs_for_sm(), fold_gimple_assign(), gate_intra_sra(), gate_tail_calls(), gimple_call_arg_flags(), gimple_call_retslot_flags(), gimple_call_static_chain_flags(), gimple_fold_call(), gimplify_decl_expr(), gimplify_target_expr(), hoist_code(), ipa_devirt(), ipa_make_edge_direct_to_target(), ipa_make_function_const(), ipa_make_function_pure(), ipcp_store_vr_results(), ipa_icf::sem_item_optimizer::merge_classes(), modref_may_conflict(), pre_delete(), dom_ranger::range_of_expr(), gimple_ranger::range_of_expr(), dom_ranger::range_of_stmt(), gimple_ranger::range_of_stmt(), dom_ranger::range_on_edge(), gimple_ranger::range_on_edge(), gimple_ranger::range_on_entry(), gimple_ranger::range_on_exit(), jt_path_registry::register_jump_thread(), reload_cse_move2add(), replace_phi_edge_with_variable(), replace_read(), schedule_prefetches(), stmt_kills_ref_p(), tree_if_conversion(), tree_ssa_iv_optimize(), tree_unswitch_single_loop(), try_merge(), try_peel_loop(), try_unroll_loop_completely(), try_vectorize_loop_1(), vect_slp_region(), walk_polymorphic_call_targets(), and walk_polymorphic_call_targets().

◆ dbg_cnt_counter()

unsigned dbg_cnt_counter ( enum debug_counter index)
Return the counter for INDEX.   

References count, and dbg_cnt_counter().

Referenced by dbg_cnt_counter(), dbg_cnt_is_enabled(), and dump_jump_thread_path().

◆ dbg_cnt_list_all_counters()

void dbg_cnt_list_all_counters ( void )

◆ dbg_cnt_process_opt()

◆ dbg_cnt_process_single_pair()

bool dbg_cnt_process_single_pair ( char * name,
char * str )
static
Process a single "low:high" pair.
Returns NULL if there's no valid pair is found.
Otherwise returns a pointer to the end of the pair.  

References dbg_cnt_process_single_pair(), dbg_cnt_set_limit_by_name(), string2counter_map::name, and NULL.

Referenced by dbg_cnt_process_opt(), and dbg_cnt_process_single_pair().

◆ dbg_cnt_set_limit_by_index()

bool dbg_cnt_set_limit_by_index ( enum debug_counter index,
const char * name,
unsigned int low,
unsigned int high )
static

◆ dbg_cnt_set_limit_by_name()

bool dbg_cnt_set_limit_by_name ( const char * name,
unsigned int low,
unsigned int high )
static

◆ print_limit_reach()

void print_limit_reach ( const char * counter,
int limit,
bool upper_p )
static

Variable Documentation

◆ count

◆ limits

◆ map

◆ original_limits