GCC Middle and Back End API Reference
cgraphbuild.cc File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "tree.h"
#include "gimple.h"
#include "tree-pass.h"
#include "cgraph.h"
#include "gimple-iterator.h"
#include "gimple-fold.h"
#include "gimple-walk.h"
#include "ipa-utils.h"
#include "except.h"
#include "gimplify.h"
Include dependency graph for cgraphbuild.cc:

Data Structures

struct  record_reference_ctx
 

Functions

static tree record_reference (tree *tp, int *walk_subtrees, void *data)
 
static void record_type_list (cgraph_node *node, tree list)
 
static void record_eh_tables (cgraph_node *node, function *fun)
 
int compute_call_stmt_bb_frequency (tree decl, basic_block bb)
 
static bool mark_address (gimple *stmt, tree addr, tree, void *data)
 
static bool mark_load (gimple *stmt, tree t, tree, void *data)
 
static bool mark_store (gimple *stmt, tree t, tree, void *data)
 
gimple_opt_passmake_pass_build_cgraph_edges (gcc::context *ctxt)
 
void record_references_in_initializer (tree decl, bool only_vars)
 
gimple_opt_passmake_pass_rebuild_cgraph_edges (gcc::context *ctxt)
 
gimple_opt_passmake_pass_remove_cgraph_callee_edges (gcc::context *ctxt)
 

Function Documentation

◆ compute_call_stmt_bb_frequency()

int compute_call_stmt_bb_frequency ( tree decl,
basic_block bb )
Computes the frequency of the call statement so that it can be stored in
cgraph_edge.  BB is the basic block of the call statement.   

References basic_block_def::count, count, DECL_STRUCT_FUNCTION, ENTRY_BLOCK_PTR_FOR_FN, and profile_count::to_cgraph_frequency().

◆ make_pass_build_cgraph_edges()

gimple_opt_pass * make_pass_build_cgraph_edges ( gcc::context * ctxt)

◆ make_pass_rebuild_cgraph_edges()

gimple_opt_pass * make_pass_rebuild_cgraph_edges ( gcc::context * ctxt)

◆ make_pass_remove_cgraph_callee_edges()

gimple_opt_pass * make_pass_remove_cgraph_callee_edges ( gcc::context * ctxt)

◆ mark_address()

static bool mark_address ( gimple * stmt,
tree addr,
tree ,
void * data )
static

◆ mark_load()

◆ mark_store()

static bool mark_store ( gimple * stmt,
tree t,
tree ,
void * data )
static

◆ record_eh_tables()

◆ record_reference()

static tree record_reference ( tree * tp,
int * walk_subtrees,
void * data )
static

◆ record_references_in_initializer()

void record_references_in_initializer ( tree decl,
bool only_vars )
Record references to functions and other variables present in the
initial value of DECL, a variable.
When ONLY_VARS is true, we mark needed only variables, not functions.   

References DECL_INITIAL, varpool_node::get_create(), NULL, record_reference_ctx::only_vars, record_reference(), record_reference_ctx::varpool_node, and walk_tree.

Referenced by varpool_node::analyze(), function_and_variable_visibility(), and new_emutls_decl().

◆ record_type_list()

static void record_type_list ( cgraph_node * node,
tree list )
static