GCC Middle and Back End API Reference
profile.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  edge_profile_info
 

Macros

#define EDGE_INFO(e)   ((struct edge_profile_info *) (e)->aux)
 

Typedefs

typedef struct gcov_working_set_info gcov_working_set_t
 

Functions

gcov_typeedge_gcov_count (edge e)
 
gcov_typebb_gcov_count (basic_block bb)
 
gcov_working_set_tfind_working_set (unsigned pct_times_10)
 
void add_working_set (gcov_working_set_t *)
 
void mcf_smooth_cfg (void)
 
gcov_type sum_edge_counts (vec< edge, va_gc > *edges)
 
void init_node_map (bool)
 
void del_node_map (void)
 
void get_working_sets (void)
 

Variables

vec< gcov_typebb_gcov_counts
 
hash_map< edge, gcov_type > * edge_gcov_counts
 
struct gcov_summaryprofile_info
 

Macro Definition Documentation

◆ EDGE_INFO

#define EDGE_INFO ( e)    ((struct edge_profile_info *) (e)->aux)

Typedef Documentation

◆ gcov_working_set_t

Function Documentation

◆ add_working_set()

void add_working_set ( gcov_working_set_t * )
extern

◆ bb_gcov_count()

◆ del_node_map()

void del_node_map ( void )
extern
Delete the CGRAPH_NODE_MAP.   

References cgraph_node_map.

Referenced by ipa_profile(), and tree_profiling().

◆ edge_gcov_count()

◆ find_working_set()

gcov_working_set_t * find_working_set ( unsigned pct_times_10)
extern

◆ get_working_sets()

void get_working_sets ( void )
extern

◆ init_node_map()

void init_node_map ( bool local)
extern

◆ mcf_smooth_cfg()

void mcf_smooth_cfg ( void )
extern
Smoothes the initial assigned basic block and edge counts using
a minimum cost flow algorithm.  
Main routine. Smoothes the initial assigned basic block and edge counts using
a minimum cost flow algorithm, to ensure that the flow consistency rule is
obeyed: sum of outgoing edges = sum of incoming edges for each basic
block.   

References adjust_cfg_counts(), create_fixup_graph(), delete_fixup_graph(), find_minimum_cost_flow(), and ggc_alloc().

Referenced by compute_branch_probabilities().

◆ sum_edge_counts()

gcov_type sum_edge_counts ( vec< edge, va_gc > * to_edges)
extern
Compute the sum of the edge counts in TO_EDGES.   

References edge_gcov_count(), EDGE_INFO, FOR_EACH_EDGE, and ggc_alloc().

Referenced by adjust_cfg_counts(), is_inconsistent(), and set_bb_counts().

Variable Documentation

◆ bb_gcov_counts

vec<gcov_type> bb_gcov_counts
extern
Helpers annotating edges/basic blocks to GCOV counts.   
Map from BBs/edges to gcov counters.   

Referenced by bb_gcov_count(), and compute_branch_probabilities().

◆ edge_gcov_counts

hash_map<edge,gcov_type>* edge_gcov_counts
extern

◆ profile_info