CACAO
Data Structures | Macros | Typedefs | Functions
dominators.cpp File Reference

Go to the source code of this file.

Data Structures

struct  basicblock_info
 
struct  dominator_tree_info
 
struct  dominance_frontier_item
 
struct  dominance_frontier_list
 
struct  dominance_frontier_info
 

Macros

#define DOM_DEBUG_VERBOSE
 
#define _DOM_CHECK_BOUNDS(i, l, h)
 
#define _DOM_ASSERT(a)
 

Typedefs

typedef struct basicblock_info basicblock_info
 
typedef struct dominator_tree_info dominator_tree_info
 
typedef struct
dominance_frontier_item 
dominance_frontier_item
 
typedef struct
dominance_frontier_list 
dominance_frontier_list
 
typedef struct
dominance_frontier_info 
dominance_frontier_info
 

Functions

void dom_Dominators_init (dominatordata *dd, int basicblockcount)
 
int dom_AncestorWithLowestSemi (dominatordata *dd, int v)
 
void dom_Link (dominatordata *dd, int p, int n)
 
void dom_DFS (graphdata *gd, dominatordata *dd, int p, int n, int *N)
 
dominatordatacompute_Dominators (graphdata *gd, int basicblockcount)
 
void computeDF (graphdata *gd, dominatordata *dd, int basicblockcount, int n)
 
static dominator_tree_infodominator_tree_init (jitdata *jd)
 
static basicblock_infodominator_tree_get_basicblock (dominator_tree_info *di, basicblock *bb)
 
static void dominator_tree_depth_first_search (dominator_tree_info *di, basicblock_info *parent, basicblock_info *node)
 
void dominator_tree_link (dominator_tree_info *di, basicblock_info *parent, basicblock_info *node)
 
basicblock_infodominator_tree_ancestor_with_lowest_semi (dominator_tree_info *di, basicblock_info *node)
 
void dominator_tree_build_intern (jitdata *jd)
 
void dominator_tree_link_children (jitdata *jd)
 
bool dominator_tree_build (jitdata *jd)
 
void dominance_frontier_list_add (dominance_frontier_list *list, basicblock *bb)
 
dominance_frontier_infodominance_frontier_init (jitdata *jd)
 
bool dominance_frontier_dominates (basicblock *d, basicblock *x)
 
void dominance_frontier_for_block (dominance_frontier_info *dfi, basicblock *b)
 
void dominance_frontier_store (dominance_frontier_info *dfi)
 
bool dominance_frontier_build (jitdata *jd)
 
void dominator_tree_validate (jitdata *jd, dominatordata *_dd)
 

Macro Definition Documentation

#define _DOM_ASSERT (   a)

Definition at line 52 of file dominators.cpp.

#define _DOM_CHECK_BOUNDS (   i,
  l,
 
)

Definition at line 51 of file dominators.cpp.

#define DOM_DEBUG_VERBOSE

Definition at line 44 of file dominators.cpp.

Typedef Documentation

Definition at line 280 of file dominators.cpp.

Definition at line 520 of file dominators.cpp.

Definition at line 492 of file dominators.cpp.

Definition at line 499 of file dominators.cpp.

Definition at line 295 of file dominators.cpp.

Function Documentation

dominatordata* compute_Dominators ( graphdata gd,
int  basicblockcount 
)

Definition at line 71 of file dominators.cpp.

void computeDF ( graphdata gd,
dominatordata dd,
int  basicblockcount,
int  n 
)

Definition at line 153 of file dominators.cpp.

int dom_AncestorWithLowestSemi ( dominatordata dd,
int  v 
)

Definition at line 245 of file dominators.cpp.

void dom_DFS ( graphdata gd,
dominatordata dd,
int  p,
int  n,
int *  N 
)

Definition at line 219 of file dominators.cpp.

void dom_Dominators_init ( dominatordata dd,
int  basicblockcount 
)

Definition at line 187 of file dominators.cpp.

void dom_Link ( dominatordata dd,
int  p,
int  n 
)

Definition at line 271 of file dominators.cpp.

bool dominance_frontier_build ( jitdata jd)

Definition at line 593 of file dominators.cpp.

bool dominance_frontier_dominates ( basicblock d,
basicblock x 
)

Definition at line 538 of file dominators.cpp.

void dominance_frontier_for_block ( dominance_frontier_info dfi,
basicblock b 
)

Definition at line 551 of file dominators.cpp.

dominance_frontier_info* dominance_frontier_init ( jitdata jd)

Definition at line 527 of file dominators.cpp.

void dominance_frontier_list_add ( dominance_frontier_list list,
basicblock bb 
)

Definition at line 506 of file dominators.cpp.

void dominance_frontier_store ( dominance_frontier_info dfi)

Definition at line 574 of file dominators.cpp.

basicblock_info* dominator_tree_ancestor_with_lowest_semi ( dominator_tree_info di,
basicblock_info node 
)

Definition at line 364 of file dominators.cpp.

bool dominator_tree_build ( jitdata jd)

Definition at line 481 of file dominators.cpp.

void dominator_tree_build_intern ( jitdata jd)

Definition at line 382 of file dominators.cpp.

static void dominator_tree_depth_first_search ( dominator_tree_info di,
basicblock_info parent,
basicblock_info node 
)
static

Definition at line 338 of file dominators.cpp.

static basicblock_info* dominator_tree_get_basicblock ( dominator_tree_info di,
basicblock bb 
)
inlinestatic

Definition at line 334 of file dominators.cpp.

static dominator_tree_info* dominator_tree_init ( jitdata jd)
static

Definition at line 304 of file dominators.cpp.

void dominator_tree_link ( dominator_tree_info di,
basicblock_info parent,
basicblock_info node 
)

Definition at line 359 of file dominators.cpp.

void dominator_tree_link_children ( jitdata jd)

Definition at line 450 of file dominators.cpp.

void dominator_tree_validate ( jitdata jd,
dominatordata _dd 
)

Definition at line 602 of file dominators.cpp.