GCC Middle and Back End API Reference
cfg_hooks Struct Reference

#include <cfghooks.h>

Collaboration diagram for cfg_hooks:

Data Fields

const char * name
 
bool(* verify_flow_info )(void)
 
void(* dump_bb )(FILE *, basic_block, int, dump_flags_t)
 
void(* dump_bb_for_graph )(pretty_printer *, basic_block)
 
basic_block(* create_basic_block )(void *head, void *end, basic_block after)
 
edge(* redirect_edge_and_branch )(edge e, basic_block b)
 
basic_block(* redirect_edge_and_branch_force )(edge, basic_block)
 
bool(* can_remove_branch_p )(const_edge)
 
void(* delete_basic_block )(basic_block)
 
basic_block(* split_block )(basic_block b, void *i)
 
bool(* move_block_after )(basic_block b, basic_block a)
 
bool(* can_merge_blocks_p )(basic_block a, basic_block b)
 
void(* merge_blocks )(basic_block a, basic_block b)
 
void(* predict_edge )(edge e, enum br_predictor predictor, int probability)
 
bool(* predicted_by_p )(const_basic_block bb, enum br_predictor predictor)
 
bool(* can_duplicate_block_p )(const_basic_block a)
 
basic_block(* duplicate_block )(basic_block a, copy_bb_data *)
 
basic_block(* split_edge )(edge)
 
void(* make_forwarder_block )(edge)
 
void(* tidy_fallthru_edge )(edge)
 
basic_block(* force_nonfallthru )(edge)
 
bool(* block_ends_with_call_p )(basic_block)
 
bool(* block_ends_with_condjump_p )(const_basic_block)
 
int(* flow_call_edges_add )(sbitmap)
 
void(* execute_on_growing_pred )(edge)
 
void(* execute_on_shrinking_pred )(edge)
 
bool(* cfg_hook_duplicate_loop_body_to_header_edge )(class loop *, edge, unsigned, sbitmap, edge, vec< edge > *, int)
 
void(* lv_add_condition_to_bb )(basic_block, basic_block, basic_block, void *)
 
void(* lv_adjust_loop_header_phi )(basic_block, basic_block, basic_block, edge)
 
void(* extract_cond_bb_edges )(basic_block, edge *, edge *)
 
void(* flush_pending_stmts )(edge)
 
bool(* empty_block_p )(basic_block)
 
basic_block(* split_block_before_cond_jump )(basic_block)
 
void(* account_profile_record )(basic_block, struct profile_record *)
 

Field Documentation

◆ account_profile_record

void(* cfg_hooks::account_profile_record) (basic_block, struct profile_record *)

◆ block_ends_with_call_p

bool(* cfg_hooks::block_ends_with_call_p) (basic_block)

Referenced by block_ends_with_call_p().

◆ block_ends_with_condjump_p

bool(* cfg_hooks::block_ends_with_condjump_p) (const_basic_block)

◆ can_duplicate_block_p

bool(* cfg_hooks::can_duplicate_block_p) (const_basic_block a)

Referenced by can_duplicate_block_p().

◆ can_merge_blocks_p

bool(* cfg_hooks::can_merge_blocks_p) (basic_block a, basic_block b)

Referenced by can_merge_blocks_p().

◆ can_remove_branch_p

bool(* cfg_hooks::can_remove_branch_p) (const_edge)

Referenced by can_remove_branch_p().

◆ cfg_hook_duplicate_loop_body_to_header_edge

bool(* cfg_hooks::cfg_hook_duplicate_loop_body_to_header_edge) (class loop *, edge, unsigned, sbitmap, edge, vec< edge > *, int)

◆ create_basic_block

basic_block(* cfg_hooks::create_basic_block) (void *head, void *end, basic_block after)

Referenced by create_basic_block_1().

◆ delete_basic_block

void(* cfg_hooks::delete_basic_block) (basic_block)

Referenced by delete_basic_block().

◆ dump_bb

void(* cfg_hooks::dump_bb) (FILE *, basic_block, int, dump_flags_t)

Referenced by dump_bb().

◆ dump_bb_for_graph

void(* cfg_hooks::dump_bb_for_graph) (pretty_printer *, basic_block)

Referenced by dump_bb_for_graph().

◆ duplicate_block

basic_block(* cfg_hooks::duplicate_block) (basic_block a, copy_bb_data *)

Referenced by duplicate_block().

◆ empty_block_p

bool(* cfg_hooks::empty_block_p) (basic_block)

Referenced by empty_block_p().

◆ execute_on_growing_pred

void(* cfg_hooks::execute_on_growing_pred) (edge)

Referenced by execute_on_growing_pred().

◆ execute_on_shrinking_pred

void(* cfg_hooks::execute_on_shrinking_pred) (edge)

◆ extract_cond_bb_edges

void(* cfg_hooks::extract_cond_bb_edges) (basic_block, edge *, edge *)

Referenced by extract_cond_bb_edges().

◆ flow_call_edges_add

int(* cfg_hooks::flow_call_edges_add) (sbitmap)

Referenced by flow_call_edges_add().

◆ flush_pending_stmts

void(* cfg_hooks::flush_pending_stmts) (edge)

Referenced by lv_flush_pending_stmts().

◆ force_nonfallthru

basic_block(* cfg_hooks::force_nonfallthru) (edge)

Referenced by force_nonfallthru().

◆ lv_add_condition_to_bb

void(* cfg_hooks::lv_add_condition_to_bb) (basic_block, basic_block, basic_block, void *)

Referenced by lv_add_condition_to_bb().

◆ lv_adjust_loop_header_phi

void(* cfg_hooks::lv_adjust_loop_header_phi) (basic_block, basic_block, basic_block, edge)

◆ make_forwarder_block

void(* cfg_hooks::make_forwarder_block) (edge)

Referenced by make_forwarder_block().

◆ merge_blocks

void(* cfg_hooks::merge_blocks) (basic_block a, basic_block b)

Referenced by merge_blocks().

◆ move_block_after

bool(* cfg_hooks::move_block_after) (basic_block b, basic_block a)

Referenced by move_block_after().

◆ name

◆ predict_edge

void(* cfg_hooks::predict_edge) (edge e, enum br_predictor predictor, int probability)

Referenced by predict_edge(), and predicted_by_p().

◆ predicted_by_p

bool(* cfg_hooks::predicted_by_p) (const_basic_block bb, enum br_predictor predictor)

Referenced by predicted_by_p().

◆ redirect_edge_and_branch

edge(* cfg_hooks::redirect_edge_and_branch) (edge e, basic_block b)

◆ redirect_edge_and_branch_force

basic_block(* cfg_hooks::redirect_edge_and_branch_force) (edge, basic_block)

◆ split_block

basic_block(* cfg_hooks::split_block) (basic_block b, void *i)

Referenced by split_block_1().

◆ split_block_before_cond_jump

basic_block(* cfg_hooks::split_block_before_cond_jump) (basic_block)

◆ split_edge

basic_block(* cfg_hooks::split_edge) (edge)

Referenced by split_edge().

◆ tidy_fallthru_edge

void(* cfg_hooks::tidy_fallthru_edge) (edge)

◆ verify_flow_info

bool(* cfg_hooks::verify_flow_info) (void)

Referenced by verify_flow_info().


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