osprey/kg++fe/gnu/cfgrtl.c File Reference

#include "config.h"
#include "system.h"
#include "tree.h"
#include "rtl.h"
#include "hard-reg-set.h"
#include "basic-block.h"
#include "regs.h"
#include "flags.h"
#include "output.h"
#include "function.h"
#include "except.h"
#include "toplev.h"
#include "tm_p.h"
#include "obstack.h"
#include "insn-config.h"

Include dependency graph for cfgrtl.c:

Go to the source code of this file.

Defines

#define HAVE_return   0
#define gen_return()   NULL_RTX

Functions/Subroutines

static int can_delete_note_p PARAMS ((rtx))
static void
commit_one_edge_insertion 
PARAMS ((edge, int))
static bool
try_redirect_by_replacing_jump 
PARAMS ((edge, basic_block))
static bool
back_edge_of_syntactic_loop_p 
PARAMS ((basic_block, basic_block))
static int can_delete_note_p (rtx note)
static int can_delete_label_p (rtx label)
rtx delete_insn (rtx insn)
rtx delete_insn_and_edges (rtx insn)
void delete_insn_chain (rtx start, rtx finish)
void delete_insn_chain_and_edges (rtx first, rtx last)
basic_block create_basic_block_structure (rtx head, rtx end, rtx bb_note, basic_block after)
basic_block create_basic_block (rtx head, rtx end, basic_block after)
int flow_delete_block_noexpunge (basic_block b)
int flow_delete_block (basic_block b)
void compute_bb_for_insn ()
void free_bb_for_insn ()
void update_bb_for_insn (basic_block bb)
edge split_block (basic_block bb, rtx insn)
void merge_blocks_nomove (basic_block a, basic_block b)
rtx block_label (basic_block block)
static bool try_redirect_by_replacing_jump (edge e, basic_block target)
static rtx last_loop_beg_note (rtx insn)
bool redirect_edge_and_branch (edge e, basic_block target)
static basic_block force_nonfallthru_and_redirect (edge e, basic_block target)
basic_block force_nonfallthru (edge e)
basic_block redirect_edge_and_branch_force (edge e, basic_block target)
void tidy_fallthru_edge (edge e, basic_block b, basic_block c)
void tidy_fallthru_edges ()
static bool back_edge_of_syntactic_loop_p (basic_block bb1, basic_block bb2)
basic_block split_edge (edge edge_in)
void insert_insn_on_edge (rtx pattern, edge e)
static void commit_one_edge_insertion (edge e, int watch_calls)
void commit_edge_insertions ()
void commit_edge_insertions_watch_calls ()
void dump_bb (basic_block bb, FILE *outf)
void debug_bb (basic_block bb)
void debug_bb_n (int n)
void print_rtl_with_bb (FILE *outf, rtx rtx_first)
void update_br_prob_note (basic_block bb)
void verify_flow_info ()
bool purge_dead_edges (basic_block bb)
bool purge_all_dead_edges (int update_life_p)

Variables

rtx label_value_list
rtx tail_recursion_label_list


Define Documentation

 
#define gen_return (  )     NULL_RTX

#define HAVE_return   0


Function Documentation

static bool back_edge_of_syntactic_loop_p ( basic_block  bb1,
basic_block  bb2 
) [static]

rtx block_label ( basic_block  block  ) 

static int can_delete_label_p ( rtx  label  )  [static]

Definition at line 106 of file cfgrtl.c.

References forced_labels, in_expr_list_p(), LABEL_NAME, LABEL_PRESERVE_P, and label_value_list.

Referenced by delete_insn().

static int can_delete_note_p ( rtx  note  )  [static]

Definition at line 95 of file cfgrtl.c.

References NOTE_INSN_BASIC_BLOCK, NOTE_INSN_DELETED, NOTE_INSN_PREDICTION, and NOTE_LINE_NUMBER.

Referenced by delete_insn_chain().

void commit_edge_insertions ( void   ) 

void commit_edge_insertions_watch_calls ( void   ) 

Definition at line 1543 of file cfgrtl.c.

Referenced by branch_prob(), and instrument_edges().

static void commit_one_edge_insertion ( edge  e,
int  watch_calls 
) [static]

void compute_bb_for_insn ( void   ) 

basic_block create_basic_block ( rtx  head,
rtx  end,
basic_block  after 
)

basic_block create_basic_block_structure ( rtx  head,
rtx  end,
rtx  bb_note,
basic_block  after 
)

Definition at line 258 of file cfgrtl.c.

Referenced by create_basic_block(), find_basic_blocks_1(), and rtl_create_basic_block().

void debug_bb ( basic_block  bb  ) 

Definition at line 1623 of file cfgrtl.c.

void debug_bb_n ( int  n  ) 

Definition at line 1630 of file cfgrtl.c.

rtx delete_insn ( rtx  insn  ) 

Definition at line 119 of file cfgrtl.c.

Referenced by bfin_optimize_loop(), c4x_rptb_insert(), calculate_needs_all_insns(), cfg_layout_merge_blocks(), cfg_layout_redirect_edge(), cfg_layout_redirect_edge_and_branch(), check_dbra_loop(), cleanup_barriers(), cleanup_unconditional_jumps(), combine_bnp(), combine_btr_defs(), combine_stack_adjustments_for_block(), commit_one_edge_insertion(), cond_move_process_if_block(), conditionalize_block(), connect_post_landing_pads(), convert_from_ssa(), copy_loop_body(), cprop_jump(), cse_cc_succs(), cse_insn(), dead_or_predicable(), delete_address_reloads_1(), delete_barrier(), delete_caller_save_insns(), delete_dead_jumptables(), delete_insn_and_edges(), delete_insn_bb(), delete_insn_chain(), delete_null_pointer_checks_1(), delete_output_reload(), delete_redundant_insns_1(), delete_related_insns(), df_insn_delete(), divmod_fixed_value_transform(), dump_table(), duplicate_insn_chain(), eliminate_partially_redundant_load(), emit_new_cond_insn(), expand_gimple_tailcall(), expected_value_to_br_prob(), final(), final_scan_insn(), find_basic_blocks_1(), find_cond_trap(), fix_basic_block_boundaries(), fix_crossing_unconditional_branches(), fixup_abnormal_edges(), fixup_match_1(), fixup_var_refs_1(), fixup_var_refs_insn(), frv_optimize_membar_global(), frv_optimize_membar_local(), get_uncond_jump_length(), hoist_code(), i960_output_call_insn(), ia64_emit_deleted_label_after_insn(), instantiate_virtual_regs_in_insn(), instantiate_virtual_regs_lossage(), ip2k_reorg(), ix86_pad_returns(), loop_delete_insns(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), mod_pow2_value_transform(), mod_subtract_transform(), move_btr_def(), move_invariant_reg(), move_movables(), mt_check_delay_slot(), mt_reorg_loops(), noce_process_if_block(), pa_combine_instructions(), pa_reorg(), pre_delete(), process_note_predictions(), reemit_insn_block_notes(), reload(), reload_as_needed(), reload_combine(), reload_cse_move2add(), replace_store_insn(), rest_of_compilation(), scan_loop(), scope_to_insns_finalize(), scope_to_insns_initialize(), see_commit_ref_changes(), see_delete_merged_def_extension(), see_delete_unmerged_def_extension(), split_branches(), split_iv(), substitute_ep_register(), thread_prologue_and_epilogue_insns(), try_auto_increment(), try_redirect_by_replacing_jump(), try_split(), and update_equiv_regs().

rtx delete_insn_and_edges ( rtx  insn  ) 

void delete_insn_chain ( rtx  start,
rtx  finish 
)

void delete_insn_chain_and_edges ( rtx  first,
rtx  last 
)

Definition at line 235 of file cfgrtl.c.

Referenced by propagate_block_delete_libcall().

void dump_bb ( basic_block  bb,
FILE outf 
)

int flow_delete_block ( basic_block  b  ) 

int flow_delete_block_noexpunge ( basic_block  b  ) 

basic_block force_nonfallthru ( edge  e  ) 

static basic_block force_nonfallthru_and_redirect ( edge  e,
basic_block  target 
) [static]

void free_bb_for_insn ( void   ) 

void insert_insn_on_edge ( rtx  pattern,
edge  e 
)

static rtx last_loop_beg_note ( rtx  insn  )  [static]

void merge_blocks_nomove ( basic_block  a,
basic_block  b 
)

static bool back_edge_of_syntactic_loop_p PARAMS ( (basic_block, basic_block  )  [static]

static bool try_redirect_by_replacing_jump PARAMS ( (edge, basic_block  )  [static]

static void commit_one_edge_insertion PARAMS ( (edge, int)   )  [static]

static int can_delete_note_p PARAMS ( (rtx  )  [static]

void print_rtl_with_bb ( FILE outf,
rtx  rtx_first 
)

bool purge_all_dead_edges ( int  update_life_p  ) 

bool purge_dead_edges ( basic_block  bb  ) 

bool redirect_edge_and_branch ( edge  e,
basic_block  target 
)

basic_block redirect_edge_and_branch_force ( edge  e,
basic_block  target 
)

edge split_block ( basic_block  bb,
rtx  insn 
)

basic_block split_edge ( edge  edge_in  ) 

void tidy_fallthru_edge ( edge  e,
basic_block  b,
basic_block  c 
)

void tidy_fallthru_edges ( void   ) 

Definition at line 1180 of file cfgrtl.c.

Referenced by delete_unreachable_blocks(), and find_basic_blocks().

static bool try_redirect_by_replacing_jump ( edge  e,
basic_block  target 
) [static]

void update_bb_for_insn ( basic_block  bb  ) 

void update_br_prob_note ( basic_block  bb  ) 

void verify_flow_info ( void   ) 


Variable Documentation

Definition at line 80 of file cfgrtl.c.

Referenced by can_delete_label_p(), cleanup_cfg(), find_basic_blocks(), and find_basic_blocks_1().


Generated on Wed Apr 8 15:13:39 2009 for Open64 by  doxygen 1.5.6