39 #ifdef GRAPH_DEBUG_VERBOSE
55 #ifdef GRAPH_DEBUG_VERBOSE
65 #ifdef GRAPH_DEBUG_CHECK
76 for(i = 0; i < basicblockcount; i++) {
115 if ( ((*i) = ge) == NULL)
178 (*i)->value = new_block;
179 i_pred->
value = new_block;
227 if ((len = bptr->
icount)) {
286 l = iptr->
sx.
s23.s2.tablelow;
287 i = iptr->
sx.
s23.s3.tablehigh;
303 i = iptr->
sx.
s23.s2.lookupcount;
332 #ifdef GRAPH_DEBUG_VERBOSE
354 #ifdef GRAPH_DEBUG_VERBOSE
359 for (; ex != NULL; ex = ex->down) {
361 #ifdef GRAPH_DEBUG_VERBOSE
363 printf(
"[%i-%i]->%i ",ex->start->nr, ex->end->nr,
373 for (bptr = ex->start; (bptr != NULL) && (bptr != ex->end); bptr = bptr->
next)
380 #ifdef GRAPH_DEBUG_VERBOSE
441 while (not_finished) {
442 while (stack_top != 0) {
444 i = stack[stack_top];
453 stack[stack_top] = s;
458 not_finished =
false;
463 if ((visited[i] != 0) && (visited[i] < num_pred)) {
464 stack[stack_top] =
i;
466 visited[
i] = num_pred;
501 int i, j, k, n, num_new_blocks;
504 s4 *in, *
out, *new_in_stack, *new_out_stack;
550 bptr->
nr = bptr->
nr+1;
593 predecessor[
i] = NULL;
600 #ifdef GRAPH_DEBUG_CHECK
637 new_in_stack[n] = out[n];
638 new_out_stack[n] = out[n];
751 i = iptr->
sx.
s23.s2.lookupcount;
772 l = iptr->
sx.
s23.s2.tablelow;
773 i = iptr->
sx.
s23.s3.tablehigh;
870 if (dst_goto != NULL)
884 #if defined(GRAPH_DEBUG_VERBOSE)
886 printf(
"graph_phi_moves: BB %3i Move %3i <- %3i\n", bptr->
nr,
890 #if defined(SSA_DEBUG_VERBOSE)
892 printf(
" ... not processed \n");
906 if (dst_goto != NULL) {
912 #ifdef GRAPH_DEBUG_VERBOSE
int graph_get_next(graphiterator *i)
struct graph_element ** predecessor
bool graph_has_multiple_predecessors(graphdata *gd, int b_index)
exception_entry * exceptiontable
struct graph_element * next
void graph_add_cfg(jitdata *jd, graphdata *gd, basicblock *, basicblock *)
void graph_add_edge(graphdata *gd, int from, int to)
int graph_get_first_predecessor(graphdata *gd, int b_index, graphiterator *i)
int graph_get_first_(graph_element *ge, graphiterator *i)
struct lifetime * lifetime
#define _GRAPH_CHECK_BOUNDS(i, l, h)
struct graph_element ** successor
void graph_DFS(lsradata *ls, graphdata *gd)
Instruction::InstID tmp[]
alloc::list< PassInfo::IDTy >::type & stack
void transform_CFG(jitdata *, graphdata *)
int graph_get_num_successor(graphdata *gd, int b_index)
void transform_BB(jitdata *jd, graphdata *gd)
basicblock ** basicblocks
void graph_make_cfg(jitdata *jd, graphdata *gd)
union instruction::@12 sx
void graph_add_exceptions(jitdata *jd, graphdata *gd)
int graph_get_num_predecessor(graphdata *gd, int b_index)
void graph_split_edge(graphdata *gd, int from, graphiterator *i, int new_block)
void graph_phi_moves(jitdata *jd, basicblock *bptr, basicblock *dst_goto)
struct instruction::@12::@13 s23
void graph_init_basicblock(jitdata *jd, basicblock *bptr, int b_index)
bitvector bv_new(int size)
bool graph_has_multiple_successors(graphdata *gd, int b_index)
void graph_print(lsradata *ls, graphdata *gd)
graphdata * graph_init(int basicblockcount)
int graph_get_first_successor(graphdata *gd, int b_index, graphiterator *i)