osprey/kgccfe/gnu/basic-block.h File Reference

#include "bitmap.h"
#include "sbitmap.h"
#include "varray.h"
#include "partition.h"
#include "hard-reg-set.h"

Include dependency graph for basic-block.h:

Go to the source code of this file.

Data Types

type  edge_def
type  basic_block_def
type  loop
type  loops
type  loops::cfg
type  ce_if_block
type  edge_list

Defines

#define INIT_REG_SET(HEAD)   bitmap_initialize (HEAD, 1)
#define CLEAR_REG_SET(HEAD)   bitmap_clear (HEAD)
#define COPY_REG_SET(TO, FROM)   bitmap_copy (TO, FROM)
#define REG_SET_EQUAL_P(A, B)   bitmap_equal_p (A, B)
#define AND_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_AND)
#define AND_COMPL_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_AND_COMPL)
#define IOR_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_IOR)
#define XOR_REG_SET(TO, FROM)   bitmap_operation (TO, TO, FROM, BITMAP_XOR)
#define IOR_AND_COMPL_REG_SET(TO, FROM1, FROM2)   bitmap_ior_and_compl (TO, FROM1, FROM2)
#define CLEAR_REGNO_REG_SET(HEAD, REG)   bitmap_clear_bit (HEAD, REG)
#define SET_REGNO_REG_SET(HEAD, REG)   bitmap_set_bit (HEAD, REG)
#define REGNO_REG_SET_P(TO, REG)   bitmap_bit_p (TO, REG)
#define REG_SET_TO_HARD_REG_SET(TO, FROM)
#define EXECUTE_IF_SET_IN_REG_SET(REGSET, MIN, REGNUM, CODE)   EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, CODE)
#define EXECUTE_IF_AND_COMPL_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, CODE)   EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)
#define EXECUTE_IF_AND_IN_REG_SET(REGSET1, REGSET2, MIN, REGNUM, CODE)   EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)
#define OBSTACK_ALLOC_REG_SET(OBSTACK)   BITMAP_OBSTACK_ALLOC (OBSTACK)
#define INITIALIZE_REG_SET(HEAD)   bitmap_initialize (&HEAD, 1)
#define FREE_REG_SET(REGSET)   BITMAP_FREE(REGSET)
#define INIT_ONCE_REG_SET()   BITMAP_INIT_ONCE ()
#define MAX_REGNO_REG_SET(NUM_REGS, NEW_P, RENUMBER_P)
#define EDGE_FALLTHRU   1
#define EDGE_ABNORMAL   2
#define EDGE_ABNORMAL_CALL   4
#define EDGE_EH   8
#define EDGE_FAKE   16
#define EDGE_DFS_BACK   32
#define EDGE_CAN_FALLTHRU   64
#define EDGE_COMPLEX   (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)
#define BB_FREQ_MAX   10000
#define BB_DIRTY   1
#define BB_NEW   2
#define BB_REACHABLE   4
#define BB_VISITED   8
#define BASIC_BLOCK(N)   (VARRAY_BB (basic_block_info, (N)))
#define FOR_BB_BETWEEN(BB, FROM, TO, DIR)   for (BB = FROM; BB != TO; BB = BB->DIR)
#define FOR_EACH_BB(BB)   FOR_BB_BETWEEN (BB, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR, next_bb)
#define FOR_EACH_BB_REVERSE(BB)   FOR_BB_BETWEEN (BB, EXIT_BLOCK_PTR->prev_bb, ENTRY_BLOCK_PTR, prev_bb)
#define FOR_ALL_BB(BB)   for (BB = ENTRY_BLOCK_PTR; BB; BB = BB->next_bb)
#define REG_BLOCK_UNKNOWN   -1
#define REG_BLOCK_GLOBAL   -2
#define REG_BASIC_BLOCK(N)   (VARRAY_REG (reg_n_info, N)->basic_block)
#define BLOCK_HEAD(B)   (BASIC_BLOCK (B)->head)
#define BLOCK_END(B)   (BASIC_BLOCK (B)->end)
#define BLOCK_HEAD_TREE(B)   (BASIC_BLOCK (B)->head_tree)
#define BLOCK_END_TREE(B)   (BASIC_BLOCK (B)->end_tree)
#define ENTRY_BLOCK   (-1)
#define EXIT_BLOCK   (-2)
#define INVALID_BLOCK   (-3)
#define ENTRY_BLOCK_PTR   (&entry_exit_blocks[0])
#define EXIT_BLOCK_PTR   (&entry_exit_blocks[1])
#define BLOCK_NUM(INSN)   (BLOCK_FOR_INSN (INSN)->index + 0)
#define set_block_for_insn(INSN, BB)   (BLOCK_FOR_INSN (INSN) = BB)
#define EDGE_INDEX_NO_EDGE   -1
#define EDGE_INDEX(el, pred, succ)   (find_edge_index ((el), (pred), (succ)))
#define INDEX_EDGE_PRED_BB(el, index)   ((el)->index_to_edge[(index)]->src)
#define INDEX_EDGE_SUCC_BB(el, index)   ((el)->index_to_edge[(index)]->dest)
#define INDEX_EDGE(el, index)   ((el)->index_to_edge[(index)])
#define NUM_EDGES(el)   ((el)->num_edges)
#define FALLTHRU_EDGE(bb)
#define BRANCH_EDGE(bb)
#define EDGE_FREQUENCY(e)
#define EDGE_CRITICAL_P(e)
#define PROP_DEATH_NOTES   1
#define PROP_LOG_LINKS   2
#define PROP_REG_INFO   4
#define PROP_KILL_DEAD_CODE   8
#define PROP_SCAN_DEAD_CODE   16
#define PROP_ALLOW_CFG_CHANGES   32
#define PROP_AUTOINC   64
#define PROP_EQUAL_NOTES   128
#define PROP_SCAN_DEAD_STORES   256
#define PROP_FINAL
#define CLEANUP_EXPENSIVE   1
#define CLEANUP_CROSSJUMP   2
#define CLEANUP_POST_REGSTACK   4
#define CLEANUP_PRE_SIBCALL   8
#define CLEANUP_PRE_LOOP   16
#define CLEANUP_UPDATE_LIFE   32
#define CLEANUP_THREADING   64
#define CLEANUP_NO_INSN_DEL   128
#define LOOP_TREE   1
#define LOOP_PRE_HEADER   2
#define LOOP_ENTRY_EDGES   4
#define LOOP_EXIT_EDGES   8
#define LOOP_EDGES   (LOOP_ENTRY_EDGES | LOOP_EXIT_EDGES)
#define LOOP_ALL   15
#define VLS_EXPECT_PREHEADERS   1
#define VLS_EXPECT_SIMPLE_LATCHES   2

Typedefs

typedef bitmap_head regset_head
typedef bitmap regset
typedef HOST_WIDEST_INT gcov_type
typedef struct edge_defedge
typedef struct basic_block_defbasic_block
typedef struct dominance_infodominance_info
typedef struct ce_if_block ce_if_block_t
typedef struct conflict_graph_defconflict_graph
typedef int conflict_graph_enum_fn PARAMS ((int, int, void *))

Enumerations

enum  update_life_extent {
  UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2, UPDATE_LIFE_LOCAL = 0,
  UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2, UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1,
  UPDATE_LIFE_GLOBAL_RM_NOTES = 2, UPDATE_LIFE_LOCAL = 0, UPDATE_LIFE_GLOBAL = 1, UPDATE_LIFE_GLOBAL_RM_NOTES = 2
}
enum  cdi_direction {
  CDI_DOMINATORS, CDI_POST_DOMINATORS, CDI_DOMINATORS, CDI_POST_DOMINATORS,
  CDI_DOMINATORS, CDI_POST_DOMINATORS, CDI_DOMINATORS, CDI_POST_DOMINATORS
}

Functions/Subroutines

void reg_set_to_hard_reg_set PARAMS ((HARD_REG_SET *, bitmap))
 GTY (()) rtx label_value_list
void compute_bb_for_insn PARAMS ((void))
void update_bb_for_insn PARAMS ((basic_block))
void free_basic_block_vars PARAMS ((int))
edge split_block PARAMS ((basic_block, rtx))
basic_block split_edge PARAMS ((edge))
void insert_insn_on_edge PARAMS ((rtx, edge))
int flow_call_edges_add PARAMS ((sbitmap))
edge cached_make_edge PARAMS ((sbitmap *, basic_block, basic_block, int))
edge unchecked_make_edge PARAMS ((basic_block, basic_block, int))
void redirect_edge_succ PARAMS ((edge, basic_block))
basic_block
create_basic_block_structure 
PARAMS ((rtx, rtx, rtx, basic_block))
basic_block create_basic_block PARAMS ((rtx, rtx, basic_block))
void merge_blocks_nomove PARAMS ((basic_block, basic_block))
void tidy_fallthru_edge PARAMS ((edge, basic_block, basic_block))
void
flow_reverse_top_sort_order_compute 
PARAMS ((int *))
int flow_depth_first_order_compute PARAMS ((int *, int *))
void dump_edge_info PARAMS ((FILE *, edge, int))
int flow_loops_find PARAMS ((struct loops *, int flags))
void flow_loops_free PARAMS ((struct loops *))
void flow_loops_dump PARAMS ((const struct loops *, FILE *, void(*)(const struct loop *, FILE *, int), int))
void flow_loop_dump PARAMS ((const struct loop *, FILE *, void(*)(const struct loop *, FILE *, int), int))
int flow_loop_scan PARAMS ((struct loops *, struct loop *, int))
void flow_loop_tree_node_add PARAMS ((struct loop *, struct loop *))
void flow_loop_tree_node_remove PARAMS ((struct loop *))
void free_edge_list PARAMS ((struct edge_list *))
void print_edge_list PARAMS ((FILE *, struct edge_list *))
int find_edge_index PARAMS ((struct edge_list *, basic_block, basic_block))
void life_analysis PARAMS ((rtx, FILE *, int))
int update_life_info PARAMS ((sbitmap, enum update_life_extent, int))
int
update_life_info_in_dirty_blocks 
PARAMS ((enum update_life_extent, int))
int count_or_remove_death_notes PARAMS ((sbitmap, int))
int propagate_block PARAMS ((basic_block, regset, regset, regset, int))
rtx propagate_one_insn PARAMS ((struct propagate_block_info *, rtx))
void free_propagate_block_info PARAMS ((struct propagate_block_info *))
struct edge_list *pre_edge_lcm PARAMS ((FILE *, int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **))
void compute_available PARAMS ((sbitmap *, sbitmap *, sbitmap *, sbitmap *))
void dump_bb PARAMS ((basic_block, FILE *))
void dump_regset PARAMS ((regset, FILE *))
void debug_regset PARAMS ((regset))
int delete_noop_moves PARAMS ((rtx))
void flow_nodes_print PARAMS ((const char *, const sbitmap, FILE *))
void flow_edge_list_print PARAMS ((const char *, const edge *, int, FILE *))
void alloc_aux_for_block PARAMS ((basic_block, int))
void alloc_aux_for_edge PARAMS ((edge, int))
bool flow_loop_outside_edge_p PARAMS ((const struct loop *, edge))
bool flow_loop_nested_p PARAMS ((const struct loop *, const struct loop *))
bool flow_bb_inside_loop_p PARAMS ((const struct loop *, const basic_block))
basic_block *get_loop_body PARAMS ((const struct loop *))
int dfs_enumerate_from PARAMS ((basic_block, int, bool(*)(basic_block, void *), basic_block *, int, void *))
void add_bb_to_loop PARAMS ((basic_block, struct loop *))
void verify_loop_structure PARAMS ((struct loops *, int))
void conflict_graph_delete PARAMS ((conflict_graph))
int conflict_graph_add PARAMS ((conflict_graph, int, int))
void conflict_graph_enum PARAMS ((conflict_graph, int, conflict_graph_enum_fn, void *))
void conflict_graph_print PARAMS ((conflict_graph, FILE *))
conflict_graph
conflict_graph_compute 
PARAMS ((regset, partition))
bool can_hoist_insn_p PARAMS ((rtx, rtx, regset))
rtx hoist_insn_after PARAMS ((rtx, rtx, rtx, rtx))
rtx hoist_insn_to_edge PARAMS ((rtx, edge, rtx, rtx))
dominance_info
calculate_dominance_info 
PARAMS ((enum cdi_direction))
void free_dominance_info PARAMS ((dominance_info))
basic_block
nearest_common_dominator 
PARAMS ((dominance_info, basic_block, basic_block))
basic_block get_immediate_dominator PARAMS ((dominance_info, basic_block))
int get_dominated_by PARAMS ((dominance_info, basic_block, basic_block **))
void iterate_fix_dominators PARAMS ((dominance_info, basic_block *, int))

Variables

int n_basic_blocks
int last_basic_block
int n_edges
varray_type basic_block_info
regset regs_live_at_setjmp
struct obstack flow_obstack
struct basic_block_def entry_exit_blocks [2]


Define Documentation

#define AND_COMPL_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_AND_COMPL)

Definition at line 52 of file basic-block.h.

#define AND_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_AND)

Definition at line 49 of file basic-block.h.

#define BASIC_BLOCK (  )     (VARRAY_BB (basic_block_info, (N)))

Definition at line 256 of file basic-block.h.

#define BB_DIRTY   1

Definition at line 235 of file basic-block.h.

#define BB_FREQ_MAX   10000

Definition at line 232 of file basic-block.h.

#define BB_NEW   2

Definition at line 236 of file basic-block.h.

#define BB_REACHABLE   4

Definition at line 237 of file basic-block.h.

#define BB_VISITED   8

Definition at line 238 of file basic-block.h.

#define BLOCK_END ( B   )     (BASIC_BLOCK (B)->end)

Definition at line 300 of file basic-block.h.

#define BLOCK_END_TREE ( B   )     (BASIC_BLOCK (B)->end_tree)

Definition at line 303 of file basic-block.h.

#define BLOCK_HEAD ( B   )     (BASIC_BLOCK (B)->head)

Definition at line 299 of file basic-block.h.

#define BLOCK_HEAD_TREE ( B   )     (BASIC_BLOCK (B)->head_tree)

Definition at line 302 of file basic-block.h.

#define BLOCK_NUM ( INSN   )     (BLOCK_FOR_INSN (INSN)->index + 0)

Definition at line 317 of file basic-block.h.

#define BRANCH_EDGE ( bb   ) 

Value:

((bb)->succ->flags & EDGE_FALLTHRU \
           ? (bb)->succ->succ_next : (bb)->succ)

Definition at line 600 of file basic-block.h.

#define CLEANUP_CROSSJUMP   2

Definition at line 648 of file basic-block.h.

#define CLEANUP_EXPENSIVE   1

Definition at line 646 of file basic-block.h.

#define CLEANUP_NO_INSN_DEL   128

Definition at line 657 of file basic-block.h.

#define CLEANUP_POST_REGSTACK   4

Definition at line 649 of file basic-block.h.

#define CLEANUP_PRE_LOOP   16

Definition at line 653 of file basic-block.h.

#define CLEANUP_PRE_SIBCALL   8

Definition at line 651 of file basic-block.h.

#define CLEANUP_THREADING   64

Definition at line 656 of file basic-block.h.

#define CLEANUP_UPDATE_LIFE   32

Definition at line 655 of file basic-block.h.

#define CLEAR_REG_SET ( HEAD   )     bitmap_clear (HEAD)

Definition at line 40 of file basic-block.h.

#define CLEAR_REGNO_REG_SET ( HEAD,
REG   )     bitmap_clear_bit (HEAD, REG)

Definition at line 66 of file basic-block.h.

#define COPY_REG_SET ( TO,
FROM   )     bitmap_copy (TO, FROM)

Definition at line 43 of file basic-block.h.

#define EDGE_ABNORMAL   2

Definition at line 140 of file basic-block.h.

#define EDGE_ABNORMAL_CALL   4

Definition at line 142 of file basic-block.h.

#define EDGE_CAN_FALLTHRU   64

Definition at line 147 of file basic-block.h.

#define EDGE_COMPLEX   (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH)

Definition at line 150 of file basic-block.h.

#define EDGE_CRITICAL_P (  ) 

Value:

((e)->src->succ->succ_next \
           && (e)->dest->pred->pred_next)

Definition at line 610 of file basic-block.h.

#define EDGE_DFS_BACK   32

Definition at line 146 of file basic-block.h.

#define EDGE_EH   8

Definition at line 144 of file basic-block.h.

#define EDGE_FAKE   16

Definition at line 145 of file basic-block.h.

#define EDGE_FALLTHRU   1

Definition at line 139 of file basic-block.h.

#define EDGE_FREQUENCY (  ) 

Value:

(((e)->src->frequency \
            * (e)->probability \
            + REG_BR_PROB_BASE / 2) \
           / REG_BR_PROB_BASE)

Definition at line 604 of file basic-block.h.

#define EDGE_INDEX ( el,
pred,
succ   )     (find_edge_index ((el), (pred), (succ)))

Definition at line 582 of file basic-block.h.

#define EDGE_INDEX_NO_EDGE   -1

Definition at line 578 of file basic-block.h.

#define ENTRY_BLOCK   (-1)

Definition at line 306 of file basic-block.h.

#define ENTRY_BLOCK_PTR   (&entry_exit_blocks[0])

Definition at line 314 of file basic-block.h.

#define EXECUTE_IF_AND_COMPL_IN_REG_SET ( REGSET1,
REGSET2,
MIN,
REGNUM,
CODE   )     EXECUTE_IF_AND_COMPL_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)

Definition at line 90 of file basic-block.h.

#define EXECUTE_IF_AND_IN_REG_SET ( REGSET1,
REGSET2,
MIN,
REGNUM,
CODE   )     EXECUTE_IF_AND_IN_BITMAP (REGSET1, REGSET2, MIN, REGNUM, CODE)

Definition at line 96 of file basic-block.h.

#define EXECUTE_IF_SET_IN_REG_SET ( REGSET,
MIN,
REGNUM,
CODE   )     EXECUTE_IF_SET_IN_BITMAP (REGSET, MIN, REGNUM, CODE)

Definition at line 84 of file basic-block.h.

#define EXIT_BLOCK   (-2)

Definition at line 307 of file basic-block.h.

#define EXIT_BLOCK_PTR   (&entry_exit_blocks[1])

Definition at line 315 of file basic-block.h.

#define FALLTHRU_EDGE ( bb   ) 

Value:

((bb)->succ->flags & EDGE_FALLTHRU \
           ? (bb)->succ : (bb)->succ->succ_next)

Definition at line 596 of file basic-block.h.

#define FOR_ALL_BB ( BB   )     for (BB = ENTRY_BLOCK_PTR; BB; BB = BB->next_bb)

Definition at line 271 of file basic-block.h.

#define FOR_BB_BETWEEN ( BB,
FROM,
TO,
DIR   )     for (BB = FROM; BB != TO; BB = BB->DIR)

Definition at line 259 of file basic-block.h.

#define FOR_EACH_BB ( BB   )     FOR_BB_BETWEEN (BB, ENTRY_BLOCK_PTR->next_bb, EXIT_BLOCK_PTR, next_bb)

Definition at line 262 of file basic-block.h.

#define FOR_EACH_BB_REVERSE ( BB   )     FOR_BB_BETWEEN (BB, EXIT_BLOCK_PTR->prev_bb, ENTRY_BLOCK_PTR, prev_bb)

Definition at line 265 of file basic-block.h.

#define FREE_REG_SET ( REGSET   )     BITMAP_FREE(REGSET)

Definition at line 106 of file basic-block.h.

#define INDEX_EDGE ( el,
index   )     ((el)->index_to_edge[(index)])

Definition at line 590 of file basic-block.h.

#define INDEX_EDGE_PRED_BB ( el,
index   )     ((el)->index_to_edge[(index)]->src)

Definition at line 586 of file basic-block.h.

#define INDEX_EDGE_SUCC_BB ( el,
index   )     ((el)->index_to_edge[(index)]->dest)

Definition at line 587 of file basic-block.h.

 
#define INIT_ONCE_REG_SET (  )     BITMAP_INIT_ONCE ()

Definition at line 109 of file basic-block.h.

#define INIT_REG_SET ( HEAD   )     bitmap_initialize (HEAD, 1)

Definition at line 37 of file basic-block.h.

#define INITIALIZE_REG_SET ( HEAD   )     bitmap_initialize (&HEAD, 1)

Definition at line 103 of file basic-block.h.

#define INVALID_BLOCK   (-3)

Definition at line 310 of file basic-block.h.

#define IOR_AND_COMPL_REG_SET ( TO,
FROM1,
FROM2   )     bitmap_ior_and_compl (TO, FROM1, FROM2)

Definition at line 62 of file basic-block.h.

#define IOR_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_IOR)

Definition at line 56 of file basic-block.h.

#define LOOP_ALL   15

Definition at line 666 of file basic-block.h.

#define LOOP_EDGES   (LOOP_ENTRY_EDGES | LOOP_EXIT_EDGES)

Definition at line 665 of file basic-block.h.

#define LOOP_ENTRY_EDGES   4

Definition at line 663 of file basic-block.h.

#define LOOP_EXIT_EDGES   8

Definition at line 664 of file basic-block.h.

#define LOOP_PRE_HEADER   2

Definition at line 662 of file basic-block.h.

#define LOOP_TREE   1

Definition at line 661 of file basic-block.h.

#define MAX_REGNO_REG_SET ( NUM_REGS,
NEW_P,
RENUMBER_P   ) 

Definition at line 114 of file basic-block.h.

#define NUM_EDGES ( el   )     ((el)->num_edges)

Definition at line 593 of file basic-block.h.

#define OBSTACK_ALLOC_REG_SET ( OBSTACK   )     BITMAP_OBSTACK_ALLOC (OBSTACK)

Definition at line 100 of file basic-block.h.

#define PROP_ALLOW_CFG_CHANGES   32

Definition at line 635 of file basic-block.h.

#define PROP_AUTOINC   64

Definition at line 637 of file basic-block.h.

#define PROP_DEATH_NOTES   1

Definition at line 630 of file basic-block.h.

#define PROP_EQUAL_NOTES   128

Definition at line 638 of file basic-block.h.

#define PROP_FINAL

#define PROP_KILL_DEAD_CODE   8

Definition at line 633 of file basic-block.h.

#define PROP_LOG_LINKS   2

Definition at line 631 of file basic-block.h.

#define PROP_REG_INFO   4

Definition at line 632 of file basic-block.h.

#define PROP_SCAN_DEAD_CODE   16

Definition at line 634 of file basic-block.h.

#define PROP_SCAN_DEAD_STORES   256

Definition at line 639 of file basic-block.h.

#define REG_BASIC_BLOCK (  )     (VARRAY_REG (reg_n_info, N)->basic_block)

Definition at line 295 of file basic-block.h.

#define REG_BLOCK_GLOBAL   -2

Definition at line 293 of file basic-block.h.

#define REG_BLOCK_UNKNOWN   -1

Definition at line 292 of file basic-block.h.

#define REG_SET_EQUAL_P ( A,
B   )     bitmap_equal_p (A, B)

Definition at line 46 of file basic-block.h.

#define REG_SET_TO_HARD_REG_SET ( TO,
FROM   ) 

Value:

do {                  \
  CLEAR_HARD_REG_SET (TO);            \
  reg_set_to_hard_reg_set (&TO, FROM);          \
} while (0)

Definition at line 76 of file basic-block.h.

#define REGNO_REG_SET_P ( TO,
REG   )     bitmap_bit_p (TO, REG)

Definition at line 72 of file basic-block.h.

#define set_block_for_insn ( INSN,
BB   )     (BLOCK_FOR_INSN (INSN) = BB)

Definition at line 318 of file basic-block.h.

#define SET_REGNO_REG_SET ( HEAD,
REG   )     bitmap_set_bit (HEAD, REG)

Definition at line 69 of file basic-block.h.

#define VLS_EXPECT_PREHEADERS   1

Definition at line 771 of file basic-block.h.

#define VLS_EXPECT_SIMPLE_LATCHES   2

Definition at line 772 of file basic-block.h.

#define XOR_REG_SET ( TO,
FROM   )     bitmap_operation (TO, TO, FROM, BITMAP_XOR)

Definition at line 59 of file basic-block.h.


Typedef Documentation

Definition at line 774 of file basic-block.h.

Definition at line 368 of file basic-block.h.

typedef struct edge_def * edge

typedef HOST_WIDEST_INT gcov_type

Definition at line 117 of file basic-block.h.

typedef int conflict_graph_enum_fn PARAMS((int, int, void *))

Definition at line 779 of file basic-block.h.

typedef bitmap regset

Definition at line 34 of file basic-block.h.

Definition at line 32 of file basic-block.h.


Enumeration Type Documentation

Enumerator:
CDI_DOMINATORS 
CDI_POST_DOMINATORS 
CDI_DOMINATORS 
CDI_POST_DOMINATORS 
CDI_DOMINATORS 
CDI_POST_DOMINATORS 
CDI_DOMINATORS 
CDI_POST_DOMINATORS 

Definition at line 811 of file basic-block.h.

Enumerator:
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 
UPDATE_LIFE_LOCAL 
UPDATE_LIFE_GLOBAL 
UPDATE_LIFE_GLOBAL_RM_NOTES 

Definition at line 621 of file basic-block.h.


Function Documentation

GTY ( ()   )  [read, write]

Definition at line 94 of file hashtab.h.

void iterate_fix_dominators PARAMS ( (dominance_info, basic_block *, int)   ) 

int get_dominated_by PARAMS ( (dominance_info, basic_block, basic_block **)   ) 

basic_block get_immediate_dominator PARAMS ( (dominance_info, basic_block  ) 

basic_block nearest_common_dominator PARAMS ( (dominance_info, basic_block, basic_block  ) 

void free_dominance_info PARAMS ( (dominance_info  ) 

dominance_info calculate_dominance_info PARAMS ( (enum cdi_direction  ) 

rtx hoist_insn_to_edge PARAMS ( (rtx, edge, rtx, rtx  ) 

rtx hoist_insn_after PARAMS ( (rtx, rtx, rtx, rtx  ) 

bool can_hoist_insn_p PARAMS ( (rtx, rtx, regset  ) 

conflict_graph conflict_graph_compute PARAMS ( (regset, partition  ) 

void conflict_graph_print PARAMS ( (conflict_graph, FILE *)   ) 

void conflict_graph_enum PARAMS ( (conflict_graph, int, conflict_graph_enum_fn, void *)   ) 

int conflict_graph_add PARAMS ( (conflict_graph, int, int)   ) 

void conflict_graph_delete PARAMS ( (conflict_graph  ) 

void verify_loop_structure PARAMS ( (struct loops *, int)   ) 

void add_bb_to_loop PARAMS ( (basic_block, struct loop *)   ) 

int dfs_enumerate_from PARAMS ( (basic_block, int, bool(*)(basic_block, void *), basic_block *, int, void *)   ) 

basic_block* get_loop_body PARAMS ( (const struct loop *)   ) 

bool flow_bb_inside_loop_p PARAMS ( (const struct loop *, const basic_block  ) 

bool flow_loop_nested_p PARAMS ( (const struct loop *, const struct loop *)   ) 

bool flow_loop_outside_edge_p PARAMS ( (const struct loop *, edge  ) 

void alloc_aux_for_edge PARAMS ( (edge, int)   ) 

void alloc_aux_for_block PARAMS ( (basic_block, int)   ) 

void flow_edge_list_print PARAMS ( (const char *, const edge *, int, FILE *)   ) 

void flow_nodes_print PARAMS ( (const char *, const sbitmap, FILE *)   ) 

int delete_noop_moves PARAMS ( (rtx  ) 

void debug_regset PARAMS ( (regset  ) 

void dump_regset PARAMS ( (regset, FILE *)   ) 

void dump_bb PARAMS ( (basic_block, FILE *)   ) 

void compute_available PARAMS ( (sbitmap *, sbitmap *, sbitmap *, sbitmap *)   ) 

struct edge_list* pre_edge_lcm PARAMS ( (FILE *, int, sbitmap *, sbitmap *, sbitmap *, sbitmap *, sbitmap **, sbitmap **)   )  [read]

void free_propagate_block_info PARAMS ( (struct propagate_block_info *)   ) 

rtx propagate_one_insn PARAMS ( (struct propagate_block_info *, rtx  ) 

int propagate_block PARAMS ( (basic_block, regset, regset, regset, int)   ) 

int count_or_remove_death_notes PARAMS ( (sbitmap, int)   ) 

int update_life_info_in_dirty_blocks PARAMS ( (enum update_life_extent, int)   ) 

int update_life_info PARAMS ( (sbitmap, enum update_life_extent, int)   ) 

void life_analysis PARAMS ( (rtx, FILE *, int)   ) 

int find_edge_index PARAMS ( (struct edge_list *, basic_block, basic_block  ) 

void print_edge_list PARAMS ( (FILE *, struct edge_list *)   ) 

void free_edge_list PARAMS ( (struct edge_list *)   ) 

void flow_loop_tree_node_remove PARAMS ( (struct loop *)   ) 

void flow_loop_tree_node_add PARAMS ( (struct loop *, struct loop *)   ) 

int flow_loop_scan PARAMS ( (struct loops *, struct loop *, int)   ) 

void flow_loop_dump PARAMS ( (const struct loop *, FILE *, void(*)(const struct loop *, FILE *, int), int)   ) 

void flow_loops_dump PARAMS ( (const struct loops *, FILE *, void(*)(const struct loop *, FILE *, int), int)   ) 

void flow_loops_free PARAMS ( (struct loops *)   ) 

int flow_loops_find PARAMS ( (struct loops *, int flags  ) 

void dump_edge_info PARAMS ( (FILE *, edge, int)   ) 

int flow_depth_first_order_compute PARAMS ( (int *, int *)   ) 

void flow_reverse_top_sort_order_compute PARAMS ( (int *)   ) 

void tidy_fallthru_edge PARAMS ( (edge, basic_block, basic_block  ) 

void merge_blocks_nomove PARAMS ( (basic_block, basic_block  ) 

basic_block create_basic_block PARAMS ( (rtx, rtx, basic_block  ) 

basic_block create_basic_block_structure PARAMS ( (rtx, rtx, rtx, basic_block  ) 

void redirect_edge_succ PARAMS ( (edge, basic_block  ) 

edge unchecked_make_edge PARAMS ( (basic_block, basic_block, int)   ) 

edge cached_make_edge PARAMS ( (sbitmap *, basic_block, basic_block, int)   ) 

int flow_call_edges_add PARAMS ( (sbitmap  ) 

void insert_insn_on_edge PARAMS ( (rtx, edge  ) 

basic_block split_edge PARAMS ( (edge  ) 

edge split_block PARAMS ( (basic_block, rtx  ) 

void free_basic_block_vars PARAMS ( (int)   ) 

void update_bb_for_insn PARAMS ( (basic_block  ) 

void compute_bb_for_insn PARAMS ( (void  )  [read]

Definition at line 77 of file cplus-dem.c.

void reg_set_to_hard_reg_set PARAMS ( (HARD_REG_SET *, bitmap  ) 


Variable Documentation

Definition at line 93 of file cfg.c.

Definition at line 98 of file cfg.c.

Definition at line 71 of file cfg.c.

Definition at line 80 of file cfg.c.

Definition at line 76 of file cfg.c.

int n_edges

Definition at line 84 of file cfg.c.

Definition at line 207 of file flow.c.


Generated on Wed Apr 8 15:11:40 2009 for Open64 by  doxygen 1.5.6