GCC Middle and Back End API Reference
cfg_hooks Struct Reference

#include <cfghooks.h>

Collaboration diagram for cfg_hooks:

Data Fields

enum ir_type ir
bool(*) verify_flow_info (void)
void(*) dump_bb (FILE *, basic_block, int, dump_flags_t)
void(*) dump_bb_for_graph (pretty_printer *, basic_block)
void(*) dump_bb_as_sarif_properties (diagnostics::sarif_builder *, json::object &, 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_as_sarif_properties

void(*) cfg_hooks::dump_bb_as_sarif_properties(diagnostics::sarif_builder *, json::object &, basic_block)

◆ dump_bb_for_graph

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

◆ 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().

◆ ir

enum ir_type cfg_hooks::ir

Referenced by current_ir_name(), and current_ir_type().

◆ 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().

◆ 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: