osprey-gcc/gcc/cfg.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
#include "rtl.h"
#include "hard-reg-set.h"
#include "regs.h"
#include "flags.h"
#include "output.h"
#include "function.h"
#include "except.h"
#include "toplev.h"
#include "tm_p.h"
#include "alloc-pool.h"
#include "timevar.h"
#include "ggc.h"

Include dependency graph for cfg.c:

Go to the source code of this file.

Functions/Subroutines

void debug_flow_info (void)
static void free_edge (edge)
void init_flow (void)
static void free_edge (edge e ATTRIBUTE_UNUSED)
void clear_edges (void)
basic_block alloc_block (void)
void alloc_rbi_pool (void)
void free_rbi_pool (void)
void initialize_bb_rbi (basic_block bb)
void link_block (basic_block b, basic_block after)
void unlink_block (basic_block b)
void compact_blocks (void)
void expunge_block (basic_block b)
edge unchecked_make_edge (basic_block src, basic_block dst, int flags)
edge cached_make_edge (sbitmap *edge_cache, basic_block src, basic_block dst, int flags)
edge make_edge (basic_block src, basic_block dest, int flags)
edge make_single_succ_edge (basic_block src, basic_block dest, int flags)
void remove_edge (edge e)
void redirect_edge_succ (edge e, basic_block new_succ)
edge redirect_edge_succ_nodup (edge e, basic_block new_succ)
void redirect_edge_pred (edge e, basic_block new_pred)
void clear_bb_flags (void)
void check_bb_profile (basic_block bb, FILE *file)
void dump_flow_info (FILE *file)
void dump_edge_info (FILE *file, edge e, int do_succ)
void alloc_aux_for_block (basic_block bb, int size)
void alloc_aux_for_blocks (int size)
void clear_aux_for_blocks (void)
void free_aux_for_blocks (void)
void alloc_aux_for_edge (edge e, int size)
void alloc_aux_for_edges (int size)
void clear_aux_for_edges (void)
void free_aux_for_edges (void)
void debug_bb (basic_block bb)
basic_block debug_bb_n (int n)
static void dump_cfg_bb_info (FILE *file, basic_block bb)
void brief_dump_cfg (FILE *file)
void update_bb_profile_for_threading (basic_block bb, int edge_frequency, gcov_type count, edge taken_edge)

Variables

struct bitmap_obstack reg_obstack
int n_basic_blocks
int last_basic_block
int n_edges
varray_type basic_block_info
basic_block ENTRY_BLOCK_PTR
basic_block EXIT_BLOCK_PTR
alloc_pool rbi_pool
enum profile_status profile_status
static struct obstack block_aux_obstack
static voidfirst_block_aux_obj = 0
static struct obstack edge_aux_obstack
static voidfirst_edge_aux_obj = 0


Function Documentation

void alloc_aux_for_block ( basic_block  bb,
int  size 
) [inline]

void alloc_aux_for_blocks ( int  size  ) 

void alloc_aux_for_edge ( edge  e,
int  size 
) [inline]

Definition at line 739 of file cfg.c.

References edge_aux_obstack, first_edge_aux_obj, gcc_assert, memset, and obstack_alloc.

void alloc_aux_for_edges ( int  size  ) 

basic_block alloc_block ( void   ) 

Definition at line 152 of file cfg.c.

References ggc_alloc_cleared.

void alloc_rbi_pool ( void   ) 

Definition at line 162 of file cfg.c.

References create_alloc_pool(), and n_basic_blocks.

Referenced by build_tree_cfg(), and cfg_layout_initialize().

void brief_dump_cfg ( FILE file  ) 

Definition at line 866 of file cfg.c.

edge cached_make_edge ( sbitmap edge_cache,
basic_block  src,
basic_block  dst,
int  flags 
)

void check_bb_profile ( basic_block  bb,
FILE file 
)

Definition at line 466 of file cfg.c.

void clear_aux_for_blocks ( void   ) 

Definition at line 714 of file cfg.c.

References basic_block_def::aux, FOR_BB_BETWEEN, and NULL.

void clear_aux_for_edges ( void   ) 

Definition at line 783 of file cfg.c.

References FOR_BB_BETWEEN, FOR_EACH_EDGE, and NULL.

void clear_bb_flags ( void   ) 

Definition at line 452 of file cfg.c.

References BB_PARTITION, basic_block_def::flags, FOR_BB_BETWEEN, and NULL.

void clear_edges ( void   ) 

Definition at line 127 of file cfg.c.

References FOR_EACH_BB, FOR_EACH_EDGE, free_edge(), gcc_assert, n_edges, and VEC_truncate.

void compact_blocks ( void   ) 

void debug_bb ( basic_block  bb  ) 

Definition at line 810 of file cfg.c.

References dump_bb().

basic_block debug_bb_n ( int  n  ) 

Definition at line 816 of file cfg.c.

References BASIC_BLOCK, and dump_bb().

void debug_flow_info ( void   ) 

Definition at line 650 of file cfg.c.

static void dump_cfg_bb_info ( FILE file,
basic_block  bb 
) [static]

Definition at line 826 of file cfg.c.

References dump_edge_info(), first, basic_block_def::flags, FOR_EACH_EDGE, fprintf(), i, and basic_block_def::index.

Referenced by brief_dump_cfg().

void dump_edge_info ( FILE file,
edge  e,
int  do_succ 
)

void dump_flow_info ( FILE file  ) 

void expunge_block ( basic_block  b  ) 

Definition at line 234 of file cfg.c.

References BASIC_BLOCK, basic_block_def::index, n_basic_blocks, NULL, and unlink_block().

void free_aux_for_blocks ( void   ) 

void free_aux_for_edges ( void   ) 

static void free_edge ( edge ATTRIBUTE_UNUSED  )  [static]

Definition at line 118 of file cfg.c.

References ggc_free(), and n_edges.

static void free_edge ( edge   )  [static]

void free_rbi_pool ( void   ) 

Definition at line 172 of file cfg.c.

References free_alloc_pool().

Referenced by cfg_layout_finalize(), and delete_tree_cfg_annotations().

void init_flow ( void   ) 

void initialize_bb_rbi ( basic_block  bb  ) 

void link_block ( basic_block  b,
basic_block  after 
)

Definition at line 190 of file cfg.c.

References basic_block_def::next_bb, and basic_block_def::prev_bb.

edge make_edge ( basic_block  src,
basic_block  dest,
int  flags 
)

Definition at line 305 of file cfg.c.

References find_edge(), edge::flags, NULL, and unchecked_make_edge().

edge make_single_succ_edge ( basic_block  src,
basic_block  dest,
int  flags 
)

Definition at line 323 of file cfg.c.

References basic_block_def::count, make_edge(), and REG_BR_PROB_BASE.

void redirect_edge_pred ( edge  e,
basic_block  new_pred 
)

void redirect_edge_succ ( edge  e,
basic_block  new_succ 
)

edge redirect_edge_succ_nodup ( edge  e,
basic_block  new_succ 
)

Definition at line 400 of file cfg.c.

References find_edge(), edge::flags, redirect_edge_succ(), REG_BR_PROB_BASE, remove_edge(), s, and edge::src.

void remove_edge ( edge  e  ) 

edge unchecked_make_edge ( basic_block  src,
basic_block  dst,
int  flags 
)

void unlink_block ( basic_block  b  ) 

Definition at line 200 of file cfg.c.

References basic_block_def::next_bb, NULL, and basic_block_def::prev_bb.

void update_bb_profile_for_threading ( basic_block  bb,
int  edge_frequency,
gcov_type  count,
edge  taken_edge 
)

Definition at line 884 of file cfg.c.


Variable Documentation

Definition at line 85 of file cfg.c.

Definition at line 667 of file cfg.c.

Definition at line 669 of file cfg.c.

Definition at line 88 of file cfg.c.

Definition at line 88 of file cfg.c.

void* first_block_aux_obj = 0 [static]

Definition at line 668 of file cfg.c.

void* first_edge_aux_obj = 0 [static]

Definition at line 670 of file cfg.c.

Definition at line 77 of file cfg.c.

Definition at line 73 of file cfg.c.

int n_edges

Definition at line 81 of file cfg.c.

Definition at line 97 of file cfg.c.

Definition at line 91 of file cfg.c.

Definition at line 69 of file cfg.c.


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