GCC Middle and Back End API Reference
cfg_hooks Struct Reference

#include <cfghooks.h>

Collaboration diagram for cfg_hooks:

Data Fields

const char * name
int(* verify_flow_info )(void)
void(* dump_bb )(FILE *, basic_block, int, int)
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)
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_to_header_edge )(struct 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, int, struct profile_record *)

Detailed Description

@verbatim Hooks for cfg representation specific functions.

Copyright (C) 2003-2013 Free Software Foundation, Inc. Contributed by Sebastian Pop s.pop.nosp@m.@lap.nosp@m.oste..nosp@m.net

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.

Only basic-block.h includes this.   

Field Documentation

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

Referenced by account_profile_record().

bool(* cfg_hooks::block_ends_with_call_p)(basic_block)

Referenced by block_ends_with_call_p().

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

Referenced by can_duplicate_block_p().

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

Referenced by can_merge_blocks_p().

bool(* cfg_hooks::can_remove_branch_p)(const_edge)

Referenced by can_remove_branch_p().

bool(* cfg_hooks::cfg_hook_duplicate_loop_to_header_edge)(struct loop *, edge, unsigned, sbitmap, edge, vec< edge > *, int)
basic_block(* cfg_hooks::create_basic_block)(void *head, void *end, basic_block after)

Referenced by create_basic_block().

void(* cfg_hooks::delete_basic_block)(basic_block)

Referenced by delete_basic_block().

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

Referenced by dump_bb().

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

Referenced by dump_bb_for_graph().

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

Referenced by duplicate_block().

bool(* cfg_hooks::empty_block_p)(basic_block)

Referenced by empty_block_p().

void(* cfg_hooks::execute_on_growing_pred)(edge)

Referenced by execute_on_growing_pred().

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

Referenced by extract_cond_bb_edges().

int(* cfg_hooks::flow_call_edges_add)(sbitmap)

Referenced by flow_call_edges_add().

void(* cfg_hooks::flush_pending_stmts)(edge)

Referenced by lv_flush_pending_stmts().

basic_block(* cfg_hooks::force_nonfallthru)(edge)

Referenced by force_nonfallthru().

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

Referenced by lv_add_condition_to_bb().

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

Referenced by make_forwarder_block().

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

Referenced by merge_blocks().

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

Referenced by move_block_after().

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

Referenced by predict_edge(), and predicted_by_p().

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

Referenced by predicted_by_p().

edge(* cfg_hooks::redirect_edge_and_branch)(edge e, basic_block b)
basic_block(* cfg_hooks::redirect_edge_and_branch_force)(edge, basic_block)
basic_block(* cfg_hooks::split_block)(basic_block b, void *i)

Referenced by split_block().

basic_block(* cfg_hooks::split_block_before_cond_jump)(basic_block)
basic_block(* cfg_hooks::split_edge)(edge)

Referenced by split_edge().

void(* cfg_hooks::tidy_fallthru_edge)(edge)
int(* cfg_hooks::verify_flow_info)(void)

Referenced by verify_flow_info().


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