From a724e745a061472ae1d83dc8d548675ca4079787 Mon Sep 17 00:00:00 2001 From: Beyhan Date: Fri, 28 Jan 2005 16:26:32 +0000 Subject: [PATCH] implemented loop unrolling optimization [r4989] --- ir/ana/irscc.c | 2 +- ir/ir/irgopt.c | 2 +- ir/ir/irgopt_t.h | 2 + ir/opt/loop_unrolling.c | 584 ++++++++- ir/opt/strength_red.c | 28 +- ir/opt/strength_red.h | 19 +- testprograms/Makefile.in | 1 + testprograms/loop_unroll_example.c | 470 +++++++ .../LOOP_UNROLL_EXAMPLE_m1-loop-unrolling.vcg | 1031 +++++++++++++++ .../LOOP_UNROLL_EXAMPLE_m1-looptree.vcg | 73 ++ .../LOOP_UNROLL_EXAMPLE_m1-pure.vcg | 864 ++++++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m1.vcg | 707 ++++++++++ .../LOOP_UNROLL_EXAMPLE_m2-loop-unrolling.vcg | 575 ++++++++ .../LOOP_UNROLL_EXAMPLE_m2-looptree.vcg | 69 + .../LOOP_UNROLL_EXAMPLE_m2-pure.vcg | 521 ++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m2.vcg | 412 ++++++ .../LOOP_UNROLL_EXAMPLE_m3-loop-unrolling.vcg | 739 +++++++++++ .../LOOP_UNROLL_EXAMPLE_m3-looptree.vcg | 69 + .../LOOP_UNROLL_EXAMPLE_m3-pure.vcg | 609 +++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m3.vcg | 490 +++++++ .../LOOP_UNROLL_EXAMPLE_m4-loop-unrolling.vcg | 1145 ++++++++++++++++ .../LOOP_UNROLL_EXAMPLE_m4-looptree.vcg | 69 + .../LOOP_UNROLL_EXAMPLE_m4-pure.vcg | 602 +++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m4.vcg | 484 +++++++ .../LOOP_UNROLL_EXAMPLE_m5-loop-unrolling.vcg | 681 ++++++++++ .../LOOP_UNROLL_EXAMPLE_m5-looptree.vcg | 69 + .../LOOP_UNROLL_EXAMPLE_m5-pure.vcg | 577 ++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m5.vcg | 462 +++++++ .../LOOP_UNROLL_EXAMPLE_m6-loop-unrolling.vcg | 1164 +++++++++++++++++ .../LOOP_UNROLL_EXAMPLE_m6-looptree.vcg | 69 + .../LOOP_UNROLL_EXAMPLE_m6-pure.vcg | 605 +++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m6.vcg | 487 +++++++ .../LOOP_UNROLL_EXAMPLE_m7-loop-unrolling.vcg | 710 ++++++++++ .../LOOP_UNROLL_EXAMPLE_m7-looptree.vcg | 69 + .../LOOP_UNROLL_EXAMPLE_m7-pure.vcg | 593 +++++++++ .../ref-results/LOOP_UNROLL_EXAMPLE_m7.vcg | 476 +++++++ testprograms/ref-results/run-result.txt | 38 + testprograms/strength_red_example.c | 1 - 38 files changed, 15535 insertions(+), 33 deletions(-) create mode 100644 testprograms/loop_unroll_example.c create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-loop-unrolling.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-looptree.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-pure.vcg create mode 100644 testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7.vcg diff --git a/ir/ana/irscc.c b/ir/ana/irscc.c index 98382753a..b33af42d2 100644 --- a/ir/ana/irscc.c +++ b/ir/ana/irscc.c @@ -1454,7 +1454,7 @@ int is_loop_variant(ir_loop *l, ir_loop *b) { * start off with a block loop to find all proper uses. * * Returns true, if the node n is not changed in the loop block - * belongs to or in inner loops of this block. */ + * belongs to or in inner loops of this blocks loop. */ int is_loop_invariant(ir_node *n, ir_node *block) { ir_loop *l = get_irn_loop(block); ir_node *b = (is_Block(n)) ? n : get_nodes_block(n); diff --git a/ir/ir/irgopt.c b/ir/ir/irgopt.c index 315da6b76..6f18036ef 100644 --- a/ir/ir/irgopt.c +++ b/ir/ir/irgopt.c @@ -266,7 +266,7 @@ firm_copy_node (ir_node *n, void *env) { * Copies new predecessors of old node to new node remembered in link. * Spare the Bad predecessors of Phi and Block nodes. */ -static void +void copy_preds (ir_node *n, void *env) { ir_node *nn, *block; int i, j, irn_arity; diff --git a/ir/ir/irgopt_t.h b/ir/ir/irgopt_t.h index e2446f978..82e286c09 100644 --- a/ir/ir/irgopt_t.h +++ b/ir/ir/irgopt_t.h @@ -5,6 +5,8 @@ #ifndef _IRGOPT_T_H #define _IRGOPT_T_H +//void copy_node (ir_node *n, void *env); +void copy_preds(ir_node *n, void *env); void firm_copy_node (ir_node *n, void *env); #endif diff --git a/ir/opt/loop_unrolling.c b/ir/opt/loop_unrolling.c index 459b1c24c..e08c896d8 100644 --- a/ir/opt/loop_unrolling.c +++ b/ir/opt/loop_unrolling.c @@ -17,24 +17,600 @@ # include "loop_unrolling.h" # include "irgwalk.h" -# include "irnode_t.h" +# include "ircons.h" +# include "irgmod.h" # include "irloop_t.h" +# include "irgopt_t.h" +# include "irnode_t.h" +# include "irouts.h" +# include "hashptr.h" +# include "pset.h" +# include "strength_red.h" -static void do_loop_unroll(ir_node *n, void *env){ +#define MAX_UNROLL 4 + +/*We will know if the head of the loop to be copy. + * Default don't copy.*/ +static int copy_loop_head = 0; + +typedef struct { + ir_node *irn ; /* Node of the loop to be unrolling*/ + ir_node *copy[MAX_UNROLL] ; /* The copy of the node */ +} copies_t; + +/** + * compare two elements of the copies_t set + */ +static int set_cmp(const void *elt, const void *key, size_t size) +{ + const copies_t *c1 = elt; + const copies_t *c2 = key; + + return c1->irn != c2->irn; +} + +static INLINE int * new_backedge_arr(struct obstack *obst, int size) +{ + int *res = NEW_ARR_D (int, obst, size); + memset(res, 0, sizeof(int) * size); + return res; +} + +static INLINE void new_backedge_info(ir_node *n) { + switch(get_irn_opcode(n)) { + case iro_Block: + n->attr.block.cg_backedge = NULL; + n->attr.block.backedge = new_backedge_arr(current_ir_graph->obst, get_irn_arity(n)); + break; + case iro_Phi: + n->attr.phi_backedge = new_backedge_arr(current_ir_graph->obst, get_irn_arity(n)); + break; + case iro_Filter: + n->attr.filter.backedge = new_backedge_arr(current_ir_graph->obst, get_irn_arity(n)); + break; + default: ; + } +} + +/** + * Remember the new node in the old node by using a field all nodes have. + */ + +static INLINE void +set_new_node (ir_node *old, ir_node *new) +{ + old->link = new; +} + +/** + * Copies the node to the new obstack. The Ins of the new node point to + * the predecessors on the old obstack. For block/phi nodes not all + * predecessors might be copied. n->link points to the new node. + * For Phi and Block nodes the function allocates in-arrays with an arity + * only for useful predecessors. The arity is determined by counting + * the non-bad predecessors of the block. + * + * @param n The node to be copied + * @param env if non-NULL, the node number attribute will be copied to the new node + */ + +static void +copy_node (ir_node *n, void *env) +{ + ir_node *nn, *block; + int new_arity; + opcode op = get_irn_opcode(n); + int copy_node_nr = env != NULL; + + /* The end node looses it's flexible in array. This doesn't matter, + as dead node elimination builds End by hand, inlineing doesn't use + the End node. */ + /* assert(n->op == op_End || ((_ARR_DESCR(n->in))->cookie != ARR_F_MAGIC)); */ + + if (op == iro_Bad) + /* node copied already */ + return; + + new_arity = get_irn_arity(n); + + nn = new_ir_node(get_irn_dbg_info(n), + current_ir_graph, + block, + get_irn_op(n), + get_irn_mode(n), + new_arity, + get_irn_in(n)); + + + /* Copy the attributes. These might point to additional data. If this + was allocated on the old obstack the pointers now are dangling. This + frees e.g. the memory of the graph_arr allocated in new_immBlock. */ + copy_node_attr(n, nn); + new_backedge_info(nn); + set_new_node(n, nn); + +#if DEBUG_libfirm + if (copy_node_nr) { + /* for easier debugging, we want to copy the node numbers too */ + nn->node_nr = n->node_nr; + } +#endif + +} + +static int is_Phi_in_loop_head(ir_node *phi, ir_node *loop_head) { + assert(is_Block(loop_head)); + return is_Phi(phi) && (get_nodes_block(phi) == loop_head); +} + +/** + * Copies predecessors of node to copies of node. + * If the predecessor is a loop invariant, then the copy get it + * as predecessor, else the copy of the predecessor. + * + * @param *l_n A set, where the node of the loop are saved. + * @param *value A element of the set. + * @param *info Contains information about the induction variable. + * @param *unroll_factor A integer power of 2. + * @param *env Free environment pointer. + */ +static void +set_preds (set *l_n, copies_t *value, induct_var_info *info, int unroll_factor, void *env) +{ + int i, irn_arity; + copies_t *value_pred; + + ir_node *loop_head = get_loop_node(info->l_itervar_phi, 0); + + irn_arity = get_irn_arity(value->irn); + + for (i = 0; i < irn_arity; i++) { + ir_node *pred = get_irn_n(value->irn, i); + + copies_t key; + + key.irn = pred; + value_pred = set_find(l_n, &key, sizeof(key), HASH_PTR(pred)); + + if (value->irn != loop_head && !is_Phi_in_loop_head(value->irn, loop_head)) { + if (value_pred == NULL) { + /* Is loop invariant. */ + for(int p = 0; p < unroll_factor -1; p++) + set_irn_n (value->copy[p], i, pred); + + } else + for(int p = 0; p < unroll_factor -1; p++) + set_irn_n (value->copy[p], i, value_pred->copy[p]); + } + } +} + +/* Set the backedge of phi in the loop head.The backedge of phis in the loop head + * must now point to the value defined + * in the last copie of the loop body. + * + * @param *l_n A set, where the node of the loop are saved. + * @param *value A phi in the loop head. + * @param *info Contains information about the induction variable. + * @param *unroll_factor A integer power of 2. + */ +static void +set_phi_backedge(set *l_n, copies_t *value, induct_var_info *info, int unroll_factor) +{ + copies_t key, *value_pred; + key.irn = get_irn_n(value->irn, info->op_pred_pos); + value_pred = set_find(l_n, &key, sizeof(key), HASH_PTR(key.irn)); + + set_Phi_pred(value->irn, info->op_pred_pos, value_pred->copy[unroll_factor - 2]); +} + +/** Test for a loop head. + * + * Returns true if the node has predecessors in the loop _and_ out of + * the loop. Then it is a loop head: The loop can be entered through + * this node. + * + * @param *n The node to be tested. + * @param *info Contains the loop information. + */ +static int +is_loop_head(ir_node *n, induct_var_info *info) +{ + int i, arity; + int some_outof_loop = 0, some_in_loop = 0; + + assert(get_irn_op(n) == op_Block); + arity = get_Block_n_cfgpreds(n); + + for (i = 0; i < arity; i++) { + ir_node *pred = get_Block_cfgpred(n, i); + assert(pred); + if (is_loop_invariant(pred, get_loop_node(info->l_itervar_phi, 0))) { + some_outof_loop = 1; + } else + some_in_loop = 1; + } + + return some_outof_loop && some_in_loop; +} + + +/** Test wether the passed loop is a natural loop. + * + * Returns true if the loop has only one loop header and only a single + * back edge. + * + * @param *info Contains the loop information. + */ +static int +is_natural_loop ( induct_var_info *info) +{ + ir_node *l_node; + int l_n_node = 0; + l_n_node = get_loop_n_nodes (info->l_itervar_phi); + + for (int i = 1; i < (l_n_node); i ++) { + l_node = get_loop_node (info->l_itervar_phi, i); + if (is_loop_head(l_node, info)) return 0; + + if (has_backedges(l_node) && i != l_n_node-1) return 0; + } + + return 1; +} + +/** Serch for all nodes of a loop. + * + * @param *node The induction variable of the loop. + * @param *loop_head The head of the loop. + * @param *l_n A set, where the node of the loop are saved. + */ +static void +find_loop_nodes(ir_node *node, ir_node *loop_head, set *l_n) +{ + copies_t key, *value; + + /* Add this node to the list. */ + key.irn = node; + for(int i = 0; i < 4 ;i++) + key.copy[i] = NULL; + value = set_insert(l_n, &key, sizeof(key), HASH_PTR(key.irn)); + + /* Add all outs of this node to the list, if they are within the loop. */ + for (int i = get_irn_n_outs(node) - 1; i >= 0; i--) { + ir_node *pred = get_irn_out(node, i); + key.irn = pred; + if (!is_loop_invariant(pred, loop_head) && + set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)) == NULL ) { + find_loop_nodes(pred, loop_head, l_n); + } + } + + /* Add all ins if they are within the loop. */ + for(int i = get_irn_arity(node) -1; i >=0; i--) { + ir_node *pred = get_irn_n(node, i); + key.irn = pred; + if (!is_loop_invariant(pred, loop_head) && + set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)) == NULL ){ + find_loop_nodes(pred, loop_head, l_n); + } + } +} + +/* Make a new loop head if copy_loop_head = 1. + * + * @param *l_n A set, where the node of the loop are saved. + * @param *info Contains the loop information. + * @param *value A element of the set. + * @param *unroll_factor A integer power of 2. + * + */ +static void +new_loop_head (set *l_n, induct_var_info *info, copies_t *value, int unroll_factor) +{ + copies_t block, *value_backedge_jmp, *backedge_jmp_block; + + ir_node *backedge_jmp = get_Block_cfgpred(value->irn, info->op_pred_pos); + block.irn = backedge_jmp; + + value_backedge_jmp = set_find( l_n, &block, sizeof(block), HASH_PTR(block.irn)); + if(copy_loop_head){ + ir_node *new_loop_head = new_Block(1, &backedge_jmp); + value->copy[0] = new_loop_head; + + for(int i = 1; icopy[i-1]); + value->copy[i] = new_loop_head1; + } + }else{ + + block.irn = get_nodes_block(backedge_jmp); + backedge_jmp_block = set_find( l_n, &block, sizeof(block), HASH_PTR(block.irn)); + + set_irn_n(backedge_jmp_block->copy[0], 0, value_backedge_jmp->irn) ; + + for(int i = 1; icopy[i], 0, value_backedge_jmp->copy[i - 1]); + } + +} + +/* Set all copies of the induction variable. + * + * @param *phi A phi node in the loop head block. + * @param *phi_pred The predecessor of the phi along the backedge. + * @param *unroll_factor A integer power of 2. + * + */ +static void +set_Phi_copies(copies_t *phi, copies_t *phi_pred, int unroll_factor) +{ + phi->copy[0] = phi_pred->irn; + for(int p = 1; p < unroll_factor -1; p++) + phi->copy[p] = phi_pred->copy[p -1]; +} + +/* Decide if the loop head to be copy. A head with important nodes + * mus be copy. + * + * @param *l_n A set, where the node of the loop are saved. + * @param *info Contains information about the induction variable. + */ +static void +loop_head_nodes(set *l_n, induct_var_info *info) +{ + copies_t *value; + ir_node *loop_head = get_loop_node(info->l_itervar_phi, 0); + + for (value = set_first(l_n); value != NULL; value = set_next(l_n)) + if(value->irn->op != op_Block && + get_nodes_block(value->irn) == loop_head) + switch(get_irn_opcode(value->irn)) { + case iro_Cond: + break; + case iro_Phi: + break; + case iro_Proj: + break; + case iro_Const: + break; + case iro_Cmp: + break; + default: + copy_loop_head = 1; + } +} + +/** Copy all loop nodes. + * + * @param *l_n Contains all nodes of the loop. + * @param *info Contains the loop information. + * @param *unroll_factor A integer power of 2. + */ +static void +copy_loop_body(set *l_n, induct_var_info *info, int unroll_factor) +{ + copies_t *value, *info_op, *phi, *loop_h, key, *value1; + + ir_node *loop_head = get_loop_node(info->l_itervar_phi, 0); + + + for (value = set_first(l_n); value != NULL; value = set_next(l_n)) { + if(value->irn == loop_head) + loop_h = value; + else if (is_Phi_in_loop_head(value->irn, loop_head)) + phi = value; + else if(copy_loop_head){ + for (int i = 0; iirn, NULL); + value->copy[i] = get_irn_link(value->irn); + } + } else { + if((value->irn->op == op_Block && + value->irn != loop_head) || + (value->irn->op != op_Block && + get_nodes_block(value->irn) != loop_head)) + for (int i = 0; iirn, NULL); + value->copy[i] = get_irn_link(value->irn); + } + } + } + /* Treat the loop head block */ + new_loop_head (l_n, info, loop_h, unroll_factor); + + /* Similarily treat the Phis in the loop head block. */ + key.irn = info->op; + info_op = set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)); + assert(info_op->irn == get_Phi_pred(info->itervar_phi, info->op_pred_pos)); + for (int i = 0; i < get_irn_n_outs(loop_head); ++i) { + ir_node *phi = get_irn_out(loop_head, i); + + if (is_Phi(phi)) { + key.irn = get_Phi_pred(phi, info->op_pred_pos); // info->op; + copies_t *phi_pred = set_find(l_n, &key, sizeof(key), HASH_PTR(key.irn)); + key.irn = phi; + copies_t *phi_op = set_find(l_n, &key, sizeof(key), HASH_PTR(key.irn)); + set_Phi_copies(phi_op, phi_pred, unroll_factor); + } + } + + + for (value = set_first(l_n); value != NULL; value = set_next(l_n)) { + + if(copy_loop_head) + set_preds(l_n, value, info, unroll_factor, NULL); + else if((value->irn->op != op_Block) && get_nodes_block(value->irn) != loop_head) + set_preds(l_n, value, info, unroll_factor, NULL); + + if (is_Phi_in_loop_head(value->irn, loop_head)) + set_phi_backedge(l_n, value, info, unroll_factor); + + if ((value->irn->op != op_Block) && !is_Phi_in_loop_head(value->irn, loop_head)) { + ir_node *nodes_block = get_nodes_block(value->irn); + + if(!copy_loop_head && nodes_block == loop_head) + continue; + + key.irn = nodes_block; + value1 = set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)); + + for(int p = 0; p < unroll_factor - 1; p++){ + set_nodes_block(value->copy[p], value1->copy[p]); + //add_End_keepalive(get_irg_end(current_ir_graph), value->copy[p]); + } + } + } +} + +static void +set_loop_outs(set *l_n, induct_var_info *info, int unroll_factor) +{ + copies_t *value, key; + ir_node *loop_head = get_loop_node(info->l_itervar_phi, 0); + + value = set_first(l_n); + for( ; value != NULL; value = set_next(l_n)) + if(value->irn != info->op && !is_Phi_in_loop_head(value->irn, loop_head) && + get_irn_opcode(value->irn) != iro_Proj) + for(int i = 0; i < get_irn_n_outs(value->irn); i++){ + key.irn = get_irn_out(value->irn, i); + if(set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)) == NULL) + for(int p = 0; p < get_irn_arity(key.irn); p++) + if(value->irn == get_irn_n(key.irn, p)) + set_irn_n (key.irn, p, value->copy[unroll_factor-2]); + } } +/** Unroll the loop boby with a factor that must be power of two. + * + * @param *n A ir node. + * @param *env Free environment pointer. + */ +static void do_loop_unroll(ir_node *n, void *env){ + + induct_var_info info; + info.itervar_phi = n; + int l_sons = 0, unroll_factor = 0; + + /* The ir node must be a induction varible. */ + + if (get_irn_op (n) == op_Phi) { + if (is_induction_variable (&info) == NULL) return; + } else return; + + /* Brute force limiting of loop body size. */ + if (get_loop_n_nodes(info.l_itervar_phi) > 2 ) return; + + /* Only unroll loops that compare against a constant for exiting. */ + if (info.cmp == NULL) return; + + /* We only want to unroll innermost loops. */ + l_sons = get_loop_n_sons (info.l_itervar_phi); + if ( l_sons != 0) + return; + + ir_node* cmp_out = get_irn_out(info.cmp, 0); + + if(!is_Proj(cmp_out)) return; + if(get_irn_op(info.increment) != op_Const) return; + + int cmp_typ = get_Proj_proj(cmp_out); + int init = get_tarval_long(get_Const_tarval + (get_Phi_pred(info.itervar_phi, info.init_pred_pos))); + int iter_end = get_tarval_long(get_Const_tarval(info.cmp_const)); + int iter_increment = get_tarval_long(get_Const_tarval(info.increment)); + int diff, iter_number; + + if(iter_end < init){ + int p = iter_end; + iter_end = init; + init = p; + } + iter_increment = iter_increment < 0 ? -iter_increment : iter_increment; + diff = iter_end - init; + if (diff == 0 || iter_increment == 0) return; + iter_number = diff/iter_increment; + if((cmp_typ == 3 || cmp_typ == 5) && (iter_end % iter_increment == 0)) + iter_number ++; + if(iter_number % 4 == 0) + unroll_factor = 4; + else if(iter_number % 3 == 0) + unroll_factor = 3; + else if(iter_number % 2 == 0) + unroll_factor = 2; + else return; + + + printf("\ninit %d,\n iter_end %d, \n diff %d, cmp_typ\n %d, \n unroll_factor %d", init, iter_end, diff, cmp_typ, unroll_factor); + + // int unroll_factor = 4; /* Must be power of 2. */ + assert(unroll_factor <= MAX_UNROLL); + + ir_node *loop_head; + + loop_head = (is_natural_loop(&info)) ? get_loop_node(info.l_itervar_phi, 0) : NULL; + + assert(loop_head != NULL && is_Block(loop_head)); + + /* We assume, the loop head has exactly one backedge. The position of + the backedge is in the following variable: */ + int backedge_pos ; + backedge_pos = (is_backedge(loop_head, 0)) ? 0:1; + + /* A set with the nodes to copy. */ + set *loop_nodes; + loop_nodes = new_set(set_cmp, 8); + + ir_node *backedge_jmp = get_Block_cfgpred(loop_head, backedge_pos); + + find_loop_nodes(info.itervar_phi, get_loop_node(info.l_itervar_phi, 0), loop_nodes); + loop_head_nodes(loop_nodes, &info); + copy_loop_body(loop_nodes, &info, unroll_factor); + + copies_t *value; + for (value = set_first(loop_nodes); value != NULL; value = set_next(loop_nodes)) { + if(value->irn == backedge_jmp) + set_Block_cfgpred(loop_head, backedge_pos, value->copy[unroll_factor-2]); + } + + set_loop_outs(loop_nodes, &info, unroll_factor); + + /* + if (needs_preloop(unroll_factor)) { + return; for now ... + make_preloop(unroll_factor); + } +*/ + + + // adapt_result_usage(); + +} /* Performs loop unrolling for the passed graph. */ -void optimize_loop_unrolling(ir_graph *irg) { +void optimize_loop_unrolling(ir_graph *irg /* unroll factor, max body size */) { + ir_graph *rem = current_ir_graph; + current_ir_graph = irg; + + if ( !get_opt_loop_unrolling()) return; - if (!get_optimize() || !get_opt_loop_unrolling()) return; + /* -- Precompute some information -- */ + /* Call algorithm that computes the backedges */ + construct_cf_backedges(irg); + /* Call algorithm that computes the dominator trees. */ + compute_doms(irg); + /* Call algorithm that computes the out edges */ + compute_outs(irg); + collect_phiprojs(irg); /* -- Search expressions that can be optimized -- */ irg_walk_graph(irg, NULL, do_loop_unroll, NULL); + current_ir_graph = rem; } diff --git a/ir/opt/strength_red.c b/ir/opt/strength_red.c index fbe47c731..e27927b1f 100644 --- a/ir/opt/strength_red.c +++ b/ir/opt/strength_red.c @@ -45,29 +45,6 @@ reduce_itervar(induct_var_info *iv) # include "firmstat.h" -/* The information needed for an induction variable */ -typedef struct _induct_var_info { - ir_op *operation_code; /**< the opcode of the induction variable, either op_Add or op_Sub */ - ir_node *increment; /**< the increment/decrement expression of the induction vriable */ - ir_node *init; /**< the init expression */ - ir_node *op; /**< the modify expression of the induction variable, ie the Add/Sub */ - ir_node *itervar_phi; /**< the Phi operation of the induction variable */ - ir_node *c, *new_phi, *new_increment, *new_init; - ir_node *new_op, *new_add, *reducible_node; - ir_node *old_ind, *symconst, *new_cmp; - ir_node *cmp_const; /**< the (loop invariant) expression that compared with the induction variable */ - ir_node *cmp_init_block; - ir_node *cmp; /**< if set, the cmp at the end of the loop using the induction variable */ - ir_loop *l_itervar_phi; /**< the loop of the induction variable */ - int strong_reduced; - int init_pred_pos; /**< the position of the init expression in the inductions Phi */ - int op_pred_pos; /**< the position of the induction operation in the inductions Phi */ - int out_loop_res; - int phi_pred; /**< number of users of the induction variable's phi */ - int reducible; /**< set if reducible */ -} induct_var_info; - - /** Counter for verbose information about optimization. */ static int n_reduced_expressions; static int n_made_new_phis; @@ -90,9 +67,10 @@ static int n_made_new_phis; * op or loop invariant. * * @param n A phi node. - * @param info After call contains the induction variable information + * @param info After call contains the induction variable information. */ -static induct_var_info *is_induction_variable (induct_var_info *info) { + +induct_var_info *is_induction_variable (induct_var_info *info) { int i; int op_pred, Store_in_op, Store_in_phi, cmp_in_phi; diff --git a/ir/opt/strength_red.h b/ir/opt/strength_red.h index 0c493b2e3..481b7e2dd 100644 --- a/ir/opt/strength_red.h +++ b/ir/opt/strength_red.h @@ -21,11 +21,28 @@ # ifndef _STRENGTH_RED_H_ # define _STRENGTH_RED_H_ -# include "irgraph.h" +#include "irnode.h" +#include "irgraph.h" +#include "irloop.h" /** Performs strength reduction for the passed graph. */ void reduce_strength(ir_graph *irg); +/* The information needed for an induction variable */ +# ifndef _STRENGTH_RED_TYP_ +# define _STRENGTH_RED_TYP_ +typedef struct _induct_var_info { + ir_op *operation_code; + ir_node *increment, *init, *op, *itervar_phi, *c, *new_phi, *new_increment, *new_init; + ir_node *new_op, *new_add, *reducible_node; + ir_node *old_ind, *symconst, *new_cmp, *cmp_const, *cmp_init_block, *cmp; + int be_pos, strong_reduced; + int init_pred_pos, op_pred_pos, out_loop_res, phi_pred, reducible; + ir_loop *l_itervar_phi; +}induct_var_info; +#endif +/** If an ir_node is induction variable return info else return NULL. */ +induct_var_info *is_induction_variable ( induct_var_info *info); #endif /* _STRENGTH_RED_H_ */ diff --git a/testprograms/Makefile.in b/testprograms/Makefile.in index da1238274..bf402a26c 100644 --- a/testprograms/Makefile.in +++ b/testprograms/Makefile.in @@ -43,6 +43,7 @@ SOURCES := Makefile.in \ oo_program_example.c \ recursions.c \ strength_red_example.c \ + loop_unroll_example.c \ three_cfpred_example.c \ while_example.c diff --git a/testprograms/loop_unroll_example.c b/testprograms/loop_unroll_example.c new file mode 100644 index 000000000..a66dea6ef --- /dev/null +++ b/testprograms/loop_unroll_example.c @@ -0,0 +1,470 @@ + +/* + * Project: libFIRM + * File name: testprograms/loop_unroll_exapmle.c + * Purpose: Shows how loopunrolling works + * Author: Beyhan Veliev + * Modified by: + * Created: + * CVS-ID: $Id$ + * + * Copyright: (c) 2004 Universität Karlsruhe + * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + */ + +# include +# include +# include +# include "firm.h" + +# include "irvrfy.h" +# include "irdump.h" + +#include "loop_unrolling.h" + + +#define new_Const_int(n) new_Const(mode_Is, new_tarval_from_long(n, mode_Is)) + + +#define CLASSNAME "LOOP_UNROLL_EXAMPLE" +#define METHODNAME1 "LOOP_UNROLL_EXAMPLE_m1" +#define METHODNAME2 "LOOP_UNROLL_EXAMPLE_m2" +#define METHODNAME3 "LOOP_UNROLL_EXAMPLE_m3" +#define METHODNAME4 "LOOP_UNROLL_EXAMPLE_m4" +#define METHODNAME5 "LOOP_UNROLL_EXAMPLE_m5" +#define METHODNAME6 "LOOP_UNROLL_EXAMPLE_m6" +#define METHODNAME7 "LOOP_UNROLL_EXAMPLE_m7" +#define METHODNAME8 "LOOP_UNROLL_EXAMPLE_m8" +#define METHODNAME9 "LOOP_UNROLL_EXAMPLE_m9" +#define METHODTPNAME "LOOP_UNROLL_EXAMPLE_meth_tp" +#define NRARGS 1 +#define NRES 1 +#define L_BOUND 0 +#define U_BOUND 10 +#define N_DIMS 1 + /** The type int. **/ +#define PRIM_NAME "int" + + + +static int i_pos = 0; +static int arr_pos = 1; +static type *typ, *typ2; + +static ir_node *r1, *f, *r, *c2; + +typedef enum { + loop_forward, + loop_backward, +} loop_dir_t; + +/** + * Constructs a new (method-)function of the form + * + * typ fct_name(typ arg) { + * for (i = start_value; i < end_value;) { ... } + * } + * + * After return, the loop body is the current block. + * + * @param owner owner-type of this (method-)function + * @param mtp the method type of this function + * @param fct_name the name of the function + * @param loop_dir the loop direction + */ +static void function_begin(type *owner, type *mtp, char *fct_name, loop_dir_t loop_dir) { + symconst_symbol sym; + ir_node *x, *t, *cmp; + + int start_value, end_value; + pnc_number cmp_dir; + + if (loop_dir == loop_forward) { + start_value = 0; + end_value = 11; + cmp_dir = Ge; + } + else { + start_value = 10; + end_value = 0; + cmp_dir = Lt; + } + + /* The entity for the procedure */ + entity *ent = new_entity (owner, new_id_from_str(fct_name), mtp); + + /* make type infromation for the array */ + type *array_type = new_type_array(new_id_from_str("array"), N_DIMS, typ); + + /* set the bounds for the array */ + set_array_bounds_int(array_type, 0, L_BOUND, U_BOUND); + + /* The array is an entity of the owner type */ + entity *array_ent = new_entity(owner, new_id_from_str("a"), array_type); + + /** The code of the procedure **/ + + /* Generates start and end blocks and nodes, and a first, initial block */ +#define NRLOCS 2 + new_ir_graph(ent, NRLOCS); + + /* The value position used for: */ + i_pos = 0; + if (fct_name == METHODNAME7) + c2 = new_Const_int(5); + + /* Generate the constant and assign it to b. The assignment is resolved to a + dataflow edge. */ + set_value(i_pos, new_Const_int(start_value)); + + sym.entity_p = array_ent; + set_value(arr_pos, new_SymConst(sym, symconst_addr_ent)); + x = new_Jmp(); + + /* We know all predecessors of the block and all set_values and set_stores are + preformed. We can mature the block. */ + mature_immBlock(get_irg_current_block(current_ir_graph)); + + /* Generate a conditional branch */ + r1 = new_immBlock(); + add_immBlock_pred(get_irg_current_block(current_ir_graph), x); + + cmp = new_Cmp(new_Const_int(end_value), get_value(i_pos, mode_Is)); + x = new_Cond(new_Proj(cmp, mode_b, cmp_dir)); + + f = new_Proj(x, mode_X, 0); + t = new_Proj(x, mode_X, 1); + + /* generate and fill the loop body block */ + r = new_immBlock(); + add_immBlock_pred(r, t); +} + +int x; + +/** + * finishes a builded function. + * + * @param b the return value + */ +static void function_end(ir_node *b) { + ir_node *x = new_Jmp(); + mature_immBlock (r); + add_immBlock_pred(r1, x); + + + new_immBlock(); + add_immBlock_pred(get_cur_block(), f); + mature_immBlock (get_cur_block()); + /* The Return statement */ + { + ir_node *in[1], *store ; + in[0] = b; + store = get_store(); + + x = new_Return(store, 1, in); + } + add_immBlock_pred(get_irg_end_block(current_ir_graph), x); + + mature_immBlock(r1); + /* finalize the end block generated in new_ir_graph() */ + mature_immBlock(get_irg_end_block(current_ir_graph)); +} + +int +main(void) +{ + ir_graph *irg; + type *owner; + entity *ent, *array_ent, *array_ent2; + type *proc_tp, *array_type, *array_type2; /* type information for the method main */ + ir_node *x,*x1 , *r, *t, *f, *f1, *t1, *cmp, *r1, *r2; + int i_pos; + + printf("\nCreating an IR graph: IF_EXAMPLE...\n"); + + init_firm (NULL); + + arch_dep_set_opts(arch_dep_none); + + do_node_verification(NODE_VERIFICATION_REPORT); + + typ = new_type_primitive(new_id_from_chars(PRIM_NAME, strlen(PRIM_NAME)), mode_Is); + + typ2 = new_type_primitive(new_id_from_chars(PRIM_NAME, strlen(PRIM_NAME)), mode_Is); + + /** The global array variable a **/ + + + /** Type information for the procedure **/ + owner = get_glob_type(); + /* Type information for the procedure */ + proc_tp = new_type_method(new_id_from_chars(METHODTPNAME, strlen(METHODTPNAME)), NRARGS, NRES); + set_method_param_type(proc_tp, 0, typ); + set_method_res_type(proc_tp, 0, typ); + + + /* --------------------------------------------------------------------- */ + + /* The entity for the procedure */ + ent = new_entity (owner, + new_id_from_str (METHODNAME1), + proc_tp); + /* The parameter and result types of the procedure. */ + + /* make type infromation for the array */ + array_type = new_type_array(new_id_from_chars("array", 5),N_DIMS, typ); + array_type2 = new_type_array(new_id_from_chars("array2", 6),N_DIMS, typ2); + /* set the bounds for the array */ + set_array_bounds_int(array_type, 0, L_BOUND, U_BOUND); + set_array_bounds_int(array_type2, 0, L_BOUND, U_BOUND); + + /* The array is an entity of the global typ */ + array_ent = new_entity( owner, new_id_from_str("a"), array_type); + array_ent2 = new_entity( owner, new_id_from_str("a2"), array_type2); + + /** The code of the procedure **/ + + + /* Generates start and end blocks and nodes, and a first, initial block */ +#undef NRLOCS +#define NRLOCS 1 + irg = new_ir_graph(ent, NRLOCS); + + /* The value position used for: */ + i_pos = 0; + + /* Generate the constant and assign it to b. The assignment is resovled to a + dataflow edge. */ + set_value (i_pos, new_Const_int(0)); + x = new_Jmp (); + + /* We know all predecessors of the block and all set_values and set_stores are + preformed. We can mature the block. */ + mature_immBlock (get_irg_current_block(irg)); + + /* Generate a conditional branch */ + r1 = new_immBlock(); + add_immBlock_pred(get_irg_current_block(irg), x); + cmp = new_Cmp(new_Const_int(10), get_value(i_pos, mode_Is)); + x = new_Cond(new_Proj(cmp, mode_b, Gt)); + f = new_Proj(x, mode_X, 0); + t = new_Proj(x, mode_X, 1); + + /* generate and fill the then block */ + r = new_immBlock (); + add_immBlock_pred (r, t); + + ir_node *b, *c, *d, *res; + symconst_symbol sym, sym2; + c = new_Const_int(1); + b = new_Const_int(4); + ir_node *b2 = new_Const_int(12); + sym.entity_p = array_ent ; + sym2.entity_p = array_ent2 ; + d = new_SymConst(sym, symconst_addr_ent); + ir_node *d2 = new_SymConst(sym2, symconst_addr_ent); + res = new_Add(d, new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + //ir_node *res2 = new_Add(d2, get_value(i_pos, mode_Is), mode_P); + ir_node *res2 = new_Add(d2, new_Mul(get_value(i_pos, mode_Is), b2, mode_Is), mode_P); + //res2 = new_Add(res2, new_Const_int(12), mode_P); + set_store (new_Proj(new_Store(get_store(), res, new_Const_int(19)), mode_M, 0)); + set_store (new_Proj(new_Store(get_store(), res2, new_Const_int(16)), mode_M, 0)); + d = new_SymConst(sym, symconst_addr_ent); + res = new_Add(d, new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + set_store(new_Proj(new_Store(get_store(), res, new_Const_int(15)), mode_M, 0)); + + set_value(i_pos, new_Add(get_value(i_pos, mode_Is), c, mode_Is)); + + x = new_Jmp(); + mature_immBlock(r); + + add_immBlock_pred(r1, x); + mature_immBlock(r1); + + r2 = new_immBlock(); + ir_node *b1 = new_Const_int(45); + add_immBlock_pred(get_irg_current_block(irg), f); + cmp = new_Cmp(new_Const_int(0), b1); + x = new_Cond (new_Proj(cmp, mode_b, Lt)); + f1 = new_Proj (x, mode_X, 0); + t1 = new_Proj (x, mode_X, 1); + + ir_node *block = new_immBlock(); + add_immBlock_pred(block, t1); + b1 = new_Sub (b1, get_value(i_pos, mode_Is), mode_Is); + res = new_Add(d, new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + set_store(new_Proj(new_Store(get_store(), res, new_Const_int(19)), mode_M, 0)); + set_value(i_pos, new_Sub(get_value(i_pos, mode_Is), c, mode_Is)); + + x1 = new_Jmp(); + + mature_immBlock(block); + + add_immBlock_pred(r2, x1); + mature_immBlock(r2); + + block = new_immBlock(); + add_immBlock_pred(block, f1); + mature_immBlock(block); + /* The Return statement */ + { + ir_node *in[1], *store ; + in[0] = get_value(i_pos, mode_Is); + store = get_store(); + + x = new_Return(store, 1, in); + } + add_immBlock_pred(get_irg_end_block(irg), x); + + /* finalize the end block generated in new_ir_graph() */ + mature_immBlock(get_irg_end_block(irg)); + + + /* -------------------------------------------------------------------------------- */ + + function_begin(owner, proc_tp, METHODNAME2, loop_forward); + ir_node *q; + q = new_Const_int(15); + c = new_Const_int(5); + b = new_Const_int(4); + + res = new_Add(get_value(arr_pos, mode_P), new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + set_store(new_Proj(new_Store (get_store(), res, q), mode_M, 0)); + + set_value(i_pos, new_Add(get_value(i_pos, mode_Is), c, mode_Is)); + + function_end(b); + + /* -------------------------------------------------------------------------- */ + + function_begin(owner, proc_tp, METHODNAME3, loop_backward); + + c = new_Const_int(1); + b = new_Const_int(4); + ir_node *b3 = new_Const_int(8); + + res = new_Add(get_value(arr_pos, mode_P), new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + res = new_Add(b, res, mode_P); + res = new_Add(b3, res, mode_P); + ir_node *res3 = new_Add(b3, res, mode_P); + res = new_Add(res3, res, mode_P); + set_store(new_Proj(new_Store(get_store(), res, get_value(i_pos, mode_Is)), mode_M, 0)); + + + set_value(i_pos, new_Sub(get_value(i_pos, mode_Is), c, mode_Is)); + + function_end(b); + + /* -------------------------------------------------------------------------- */ + + function_begin(owner, proc_tp, METHODNAME4, loop_forward); + + c = new_Const_int(1); + b = new_Const_int(4); + ir_node *b4 = new_Const_int(8); + + set_value(i_pos, new_Add(get_value(i_pos, mode_Is), c, mode_Is)); + ir_node *mul4 = new_Mul(get_value(i_pos, mode_Is), b4, mode_Is); + res = new_Add(mul4, get_value(arr_pos, mode_P), mode_P); + set_store (new_Proj (new_Store (get_store (), res,get_value(i_pos, mode_Is)), + mode_M, 0)); + res = new_Add(get_value(arr_pos, mode_P), new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + set_store(new_Proj(new_Store(get_store(), res, get_value(i_pos, mode_Is)), mode_M, 0)); + + function_end(b); + + /* -------------------------------------------------------------------------- */ + + function_begin(owner, proc_tp, METHODNAME5, loop_backward); + + c = new_Const_int(1); + b = new_Const_int(4); + + set_value(i_pos, new_Sub(get_value(i_pos, mode_Is), c, mode_Is)); + + ir_node * res5 = new_Add (c, b, mode_Is); + res = new_Add(get_value(arr_pos, mode_P), new_Mul(get_value(i_pos, mode_Is), b, mode_Is), mode_P); + res = new_Add(res, b, mode_P); + res = new_Add(res, res5, mode_P); + set_store(new_Proj(new_Store(get_store(), res, new_Const_int(19)), mode_M, 0)); + + function_end(b); + + /* -------------------------------------------------------------------------- */ + + function_begin(owner, proc_tp, METHODNAME6, loop_forward); + + c = new_Const_int(1); + ir_node *c1 = new_Const_int(5); + b = new_Const_int(4); + + set_value(i_pos, new_Sub(get_value(i_pos, mode_Is), c, mode_Is)); + + res = new_Add( get_value(arr_pos, mode_P), new_Mul(get_value(i_pos, mode_Is), + b, mode_Is), mode_P); + res = new_Sub(c1, res, mode_P); + res = new_Add( b, res, mode_P); + res = new_Add(b, res, mode_P); + set_store(new_Proj(new_Store(get_store(), res, new_Const_int(19)), mode_M, 0)); + + function_end(b); + + /* -------------------------------------------------------------------------- */ + + function_begin(owner, proc_tp, METHODNAME7, loop_backward); + + c = new_Const_int(1); + b = new_Const_int(4); + ir_node *b7 = new_Const_int(19); + + // a[i] = a[i+4] + res = get_value(i_pos, mode_Is); + res = new_Add(res, b, mode_Is); + res = new_Add(res, b7, mode_Is); + res = new_Mul(res, b, mode_Is); + res = new_Add(get_value(arr_pos, mode_P), res, mode_P); + ir_node *res7 = new_Add( get_value(i_pos, mode_Is), b7, mode_Is); + set_store(new_Proj(new_Store(get_store(), res, res7), mode_M, 0)); + set_value(i_pos, new_Sub(get_value(i_pos, mode_Is), c, mode_Is)); + function_end(b); + + /* -------------------------------------------------------------------------- */ + + int i, n_irgs = get_irp_n_irgs(); + + printf("Done building the graph. Dumping and optimizing it.\n"); + dump_consts_local(1); + turn_off_edge_labels(); + for (i = 0; i < n_irgs; ++i) { + current_ir_graph = get_irp_irg(i); + irg_vrfy(current_ir_graph); + finalize_cons (current_ir_graph); + + /* output the vcg file */ + dump_ir_block_graph (current_ir_graph, 0); + construct_backedges(current_ir_graph); + dump_ir_graph (current_ir_graph, 0); + dump_all_types(0); + set_opt_strength_red_verbose(2); + set_firm_verbosity(2); + set_optimize(0); + set_opt_loop_unrolling(1); + optimize_loop_unrolling(current_ir_graph); + // optimize_reassociation(current_ir_graph); + //reduce_strength(current_ir_graph); + + + // remove_critical_cf_edges(current_ir_graph); + //set_opt_global_cse(1); + //place_code(current_ir_graph); + //set_opt_global_cse(0); + dump_loop_tree(current_ir_graph, ""); + dump_ir_block_graph (current_ir_graph, "-loop-unrolling"); + // dump_ir_graph (current_ir_graph, "-pure-loop-unrolling"); + } + //printf("use xvcg to view this graph:\n"); + //printf("/ben/goetz/bin/xvcg GRAPHNAME\n\n"); + + return (0); +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-loop-unrolling.vcg new file mode 100644 index 000000000..4659c778b --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-loop-unrolling.vcg @@ -0,0 +1,1031 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m1" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g45" label: "LOOP_UNROLL_EXAMPLE_m1" status:clustered color:white +graph: { title: "n93" label: "Block 93" status:clustered color:yellow +edge: {sourcename: "n93" targetname: "n55" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n93" targetname: "n114" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n120" label: "PhiM 120" info1: "Phi 120 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 93 + 0: Phi 91 + 1: Proj 112 + Private Attributes: + backedges: + in loop 526 with depth 1 +" +color: green} +edge: {sourcename: "n120" targetname: "n91" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n120" targetname: "n112" label: "1" class:17 priority:10 color:blue} +node: {title: "n119" label: "PhiIs 119" info1: "Phi 119 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 93 + 0: Phi 92 + 1: Sub 113 + Private Attributes: + backedges: + in loop 525 with depth 1 +" +color: green} +edge: {sourcename: "n119" targetname: "n92" label: "0" class:16 priority:10} +edge: {sourcename: "n119" targetname: "n113" label: "1" class:16 priority:10} +node: {title: "n100" label: "Jmp 100" info1: "Jmp 100 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 93 + Private Attributes: + in loop 524 with depth 1 +" +} +} + +graph: { title: "n49" label: "Block 49" status:clustered color:yellow +edge: {sourcename: "n49" targetname: "n48" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n49" targetname: "n537" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n91" label: "PhiM 91" info1: "Phi 91 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: Proj 43 + 1: Proj 535 + Private Attributes: + backedges: + in loop 523 with depth 1 +" +color: green} +edge: {sourcename: "n91" targetname: "n43" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n91" targetname: "n535" label: "1" class:17 priority:10 color:blue} +node: {title: "n55" label: "ProjX 0 55" info1: "Proj 55 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cond 54 + Private Attributes: + in loop 520 with depth 0 +" +color: yellow} +edge: {sourcename: "n55" targetname: "n54" label: "0" class:13 priority:60 color:red} +node: {title: "n56" label: "ProjX 1 56" info1: "Proj 56 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cond 54 + Private Attributes: + in loop 522 with depth 2 +" +color: yellow} +edge: {sourcename: "n56" targetname: "n54" label: "0" class:13 priority:60 color:red} +node: {title: "n54" label: "Cond 54" info1: "Cond 54 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Proj 53 + Private Attributes: + in loop 522 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n54" targetname: "n53" label: "0" class:1 priority:50} +node: {title: "n53" label: "Projb Gt 53" info1: "Proj 53 + mode: b + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cmp 52 + Private Attributes: + in loop 522 with depth 2 +" +color: yellow} +edge: {sourcename: "n53" targetname: "n52" label: "0" class:1 priority:50} +node: {title: "n52" label: "Cmp 52" info1: "Cmp 52 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: 0xA 51 + 1: Phi 92 + Private Attributes: + in loop 522 with depth 2 +" +} +node: {title: "n52n51" label: "0xAIs 51" info1: "0xA 51 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n52" targetname: "n52n51" label: "0" class:16 priority:10} +edge: {sourcename: "n52" targetname: "n92" label: "1" class:1 priority:50} +node: {title: "n92" label: "PhiIs 92" info1: "Phi 92 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: 0x0 47 + 1: Add 536 + Private Attributes: + backedges: + in loop 521 with depth 1 +" +color: green} +node: {title: "n92n47" label: "0x0Is 47" info1: "0x0 47 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n92" targetname: "n92n47" label: "0" class:16 priority:10} +edge: {sourcename: "n92" targetname: "n536" label: "1" class:16 priority:10} +} + +graph: { title: "n46" label: "Block 46" status:clustered color:yellow +edge: {sourcename: "n46" targetname: "n40" label: "0" class:13 priority:60 color:red} +node: {title: "n48" label: "Jmp 48" info1: "Jmp 48 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 46 + Private Attributes: + in loop 520 with depth 0 +" +} +} + +graph: { title: "n538" label: "Block 538" status:clustered color:yellow +edge: {sourcename: "n538" targetname: "n85" label: "0" class:13 priority:60 color:red} +node: {title: "n535" label: "ProjM 0 535" info1: "Proj 535 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 538 + 0: Store 534 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n535" targetname: "n534" label: "0" class:17 priority:10 color:blue} +node: {title: "n534" label: "Store 534" info1: "Store 534 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 538 + 0: Proj 533 + 1: Add 540 + 2: 0xF 80 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n534n80" label: "0xFIs 80" info1: "0xF 80 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n534" targetname: "n533" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n534" targetname: "n540" label: "1" class:1 priority:50} +edge: {sourcename: "n534" targetname: "n534n80" label: "2" class:16 priority:10} +node: {title: "n533" label: "ProjM 0 533" info1: "Proj 533 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 538 + 0: Store 532 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n533" targetname: "n532" label: "0" class:17 priority:10 color:blue} +node: {title: "n532" label: "Store 532" info1: "Store 532 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 538 + 0: Proj 531 + 1: Add 542 + 2: 0x10 73 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n532n73" label: "0x10Is 73" info1: "0x10 73 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n532" targetname: "n531" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n532" targetname: "n542" label: "1" class:1 priority:50} +edge: {sourcename: "n532" targetname: "n532n73" label: "2" class:16 priority:10} +node: {title: "n531" label: "ProjM 0 531" info1: "Proj 531 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 538 + 0: Store 530 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n531" targetname: "n530" label: "0" class:17 priority:10 color:blue} +node: {title: "n530" label: "Store 530" info1: "Store 530 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 538 + 0: Proj 83 + 1: Add 540 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n530n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n530" targetname: "n83" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n530" targetname: "n540" label: "1" class:1 priority:50} +edge: {sourcename: "n530" targetname: "n530n68" label: "2" class:16 priority:10} +node: {title: "n542" label: "AddP 542" info1: "Add 542 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 538 + 0: SymC &a2 62 + 1: Mul 541 + Private Attributes: +" +} +node: {title: "n542n62" label: "SymC &a2 62" info1: "SymC &a2 62 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a2 (32) + + type of value: type_unknown +" +} +edge: {sourcename: "n542" targetname: "n542n62" label: "0" class:16 priority:10} +edge: {sourcename: "n542" targetname: "n541" label: "1" class:1 priority:50} +node: {title: "n541" label: "MulIs 541" info1: "Mul 541 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 538 + 0: 0xC 60 + 1: Add 84 + Private Attributes: +" +} +node: {title: "n541n60" label: "0xCIs 60" info1: "0xC 60 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n541" targetname: "n541n60" label: "0" class:16 priority:10} +edge: {sourcename: "n541" targetname: "n84" label: "1" class:16 priority:10} +node: {title: "n540" label: "AddP 540" info1: "Add 540 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 538 + 0: SymC &a 61 + 1: Mul 539 + Private Attributes: +" +} +node: {title: "n540n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n540" targetname: "n540n61" label: "0" class:16 priority:10} +edge: {sourcename: "n540" targetname: "n539" label: "1" class:1 priority:50} +node: {title: "n539" label: "MulIs 539" info1: "Mul 539 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 538 + 0: 0x4 59 + 1: Add 84 + Private Attributes: +" +} +node: {title: "n539n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n539" targetname: "n539n59" label: "0" class:16 priority:10} +edge: {sourcename: "n539" targetname: "n84" label: "1" class:16 priority:10} +node: {title: "n537" label: "Jmp 537" info1: "Jmp 537 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 538 + Private Attributes: +" +} +node: {title: "n536" label: "AddIs 536" info1: "Add 536 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 538 + 0: 0x1 58 + 1: Add 84 + Private Attributes: +" +} +node: {title: "n536n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n536" targetname: "n536n58" label: "0" class:16 priority:10} +edge: {sourcename: "n536" targetname: "n84" label: "1" class:16 priority:10} +} + +graph: { title: "n57" label: "Block 57" status:clustered color:yellow +edge: {sourcename: "n57" targetname: "n56" label: "0" class:13 priority:60 color:red} +node: {title: "n83" label: "ProjM 0 83" info1: "Proj 83 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 81 + Private Attributes: + in loop 523 with depth 1 +" +color: yellow} +edge: {sourcename: "n83" targetname: "n81" label: "0" class:17 priority:10 color:blue} +node: {title: "n81" label: "Store 81" info1: "Store 81 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Proj 76 + 1: Add 65 + 2: 0xF 80 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 523 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n81n80" label: "0xFIs 80" info1: "0xF 80 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n81" targetname: "n76" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n81" targetname: "n65" label: "1" class:1 priority:50} +edge: {sourcename: "n81" targetname: "n81n80" label: "2" class:16 priority:10} +node: {title: "n76" label: "ProjM 0 76" info1: "Proj 76 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 74 + Private Attributes: + in loop 523 with depth 1 +" +color: yellow} +edge: {sourcename: "n76" targetname: "n74" label: "0" class:17 priority:10 color:blue} +node: {title: "n74" label: "Store 74" info1: "Store 74 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Proj 72 + 1: Add 67 + 2: 0x10 73 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 523 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n74n73" label: "0x10Is 73" info1: "0x10 73 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n74" targetname: "n72" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n74" targetname: "n67" label: "1" class:1 priority:50} +edge: {sourcename: "n74" targetname: "n74n73" label: "2" class:16 priority:10} +node: {title: "n72" label: "ProjM 0 72" info1: "Proj 72 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 70 + Private Attributes: + in loop 523 with depth 1 +" +color: yellow} +edge: {sourcename: "n72" targetname: "n70" label: "0" class:17 priority:10 color:blue} +node: {title: "n70" label: "Store 70" info1: "Store 70 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Phi 91 + 1: Add 65 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 523 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n70n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n70" targetname: "n91" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n70" targetname: "n65" label: "1" class:1 priority:50} +edge: {sourcename: "n70" targetname: "n70n68" label: "2" class:16 priority:10} +node: {title: "n67" label: "AddP 67" info1: "Add 67 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: SymC &a2 62 + 1: Mul 66 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n67n62" label: "SymC &a2 62" info1: "SymC &a2 62 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a2 (32) + + type of value: type_unknown +" +} +edge: {sourcename: "n67" targetname: "n67n62" label: "0" class:16 priority:10} +edge: {sourcename: "n67" targetname: "n66" label: "1" class:1 priority:50} +node: {title: "n66" label: "MulIs 66" info1: "Mul 66 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0xC 60 + 1: Phi 92 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n66n60" label: "0xCIs 60" info1: "0xC 60 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n66" targetname: "n66n60" label: "0" class:16 priority:10} +edge: {sourcename: "n66" targetname: "n92" label: "1" class:16 priority:10} +node: {title: "n65" label: "AddP 65" info1: "Add 65 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: SymC &a 61 + 1: Mul 64 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n65n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n65" targetname: "n65n61" label: "0" class:16 priority:10} +edge: {sourcename: "n65" targetname: "n64" label: "1" class:1 priority:50} +node: {title: "n64" label: "MulIs 64" info1: "Mul 64 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0x4 59 + 1: Phi 92 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n64n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n64" targetname: "n64n59" label: "0" class:16 priority:10} +edge: {sourcename: "n64" targetname: "n92" label: "1" class:16 priority:10} +node: {title: "n85" label: "Jmp 85" info1: "Jmp 85 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 57 + Private Attributes: + in loop 522 with depth 2 +" +} +node: {title: "n84" label: "AddIs 84" info1: "Add 84 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0x1 58 + 1: Phi 92 + Private Attributes: + in loop 521 with depth 1 +" +} +node: {title: "n84n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n84" targetname: "n84n58" label: "0" class:16 priority:10} +edge: {sourcename: "n84" targetname: "n92" label: "1" class:16 priority:10} +} + +graph: { title: "n103" label: "Block 103" status:clustered color:yellow +edge: {sourcename: "n103" targetname: "n100" label: "0" class:13 priority:60 color:red} +node: {title: "n112" label: "ProjM 0 112" info1: "Proj 112 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 103 + 0: Store 110 + Private Attributes: + in loop 526 with depth 1 +" +color: yellow} +edge: {sourcename: "n112" targetname: "n110" label: "0" class:17 priority:10 color:blue} +node: {title: "n110" label: "Store 110" info1: "Store 110 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 103 + 0: Phi 120 + 1: Add 107 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 526 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n110n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n110" targetname: "n120" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n110" targetname: "n107" label: "1" class:1 priority:50} +edge: {sourcename: "n110" targetname: "n110n68" label: "2" class:16 priority:10} +node: {title: "n107" label: "AddP 107" info1: "Add 107 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: SymC &a 61 + 1: Mul 106 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n107n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n107" targetname: "n107n61" label: "0" class:16 priority:10} +edge: {sourcename: "n107" targetname: "n106" label: "1" class:1 priority:50} +node: {title: "n106" label: "MulIs 106" info1: "Mul 106 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: 0x4 59 + 1: Phi 119 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n106n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n106" targetname: "n106n59" label: "0" class:16 priority:10} +edge: {sourcename: "n106" targetname: "n119" label: "1" class:16 priority:10} +node: {title: "n113" label: "SubIs 113" info1: "Sub 113 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: Phi 119 + 1: 0x1 58 + Private Attributes: + in loop 525 with depth 1 +" +} +node: {title: "n113n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n113" targetname: "n119" label: "0" class:16 priority:10} +edge: {sourcename: "n113" targetname: "n113n58" label: "1" class:16 priority:10} +node: {title: "n114" label: "Jmp 114" info1: "Jmp 114 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 103 + Private Attributes: + in loop 524 with depth 1 +" +} +} + +graph: { title: "n34" label: "Block 34" status:clustered color:yellow +edge: {sourcename: "n34" targetname: "n34n38" label: "0" class:13 priority:60 color:red} +node: {title: "n35" label: "End 35" info1: "End 35 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 34 + 0: Phi 91 + 1: Block 93 + 2: Phi 120 + Private Attributes: + in loop 520 with depth 0 +" +color: blue} +} +node: {title: "n34n38" label: "Bad 38" info1: "Bad 38 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 520 with depth 0 +" +} + +graph: { title: "n36" label: "Block 36" status:clustered color:yellow +edge: {sourcename: "n36" targetname: "n40" label: "0" class:13 priority:60 color:red} +node: {title: "n43" label: "ProjM 1 43" info1: "Proj 43 + mode: M + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 36 + 0: Start 37 + Private Attributes: + in loop 520 with depth 0 +" +color: yellow} +edge: {sourcename: "n43" targetname: "n37" label: "0" class:17 priority:10 color:blue} +node: {title: "n40" label: "ProjX 0 40" info1: "Proj 40 + mode: X + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 36 + 0: Start 37 + Private Attributes: + in loop 520 with depth 0 +" +color: yellow} +edge: {sourcename: "n40" targetname: "n37" label: "0" class:13 priority:60 color:red} +node: {title: "n37" label: "Start 37" info1: "Start 37 + mode: T + visited: 37 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-looptree.vcg new file mode 100644 index 000000000..f42bc30ee --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-looptree.vcg @@ -0,0 +1,73 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m1" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l527" label: "loop 0, 2 sons, 3 nodes" info1: " loop nr: 527 + The loop was analyzed 0 times."} +node: { title: "l527-0-nodes" color: lightyellow label: "Block 36 +Block 34 +Block 46" } +edge: {sourcename: "l527" targetname: "l527-0-nodes" label:"0...2"} +edge: {sourcename: "l527" targetname: "l528" color: darkgreen label: "3"} +node: {title: "l528" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 528 + The loop was analyzed 0 times."} +node: { title: "l528-0-nodes" color: lightyellow label: "Block 49 loop head! +Block 57" } +edge: {sourcename: "l528" targetname: "l528-0-nodes" label:"0...1"} +edge: {sourcename: "l527" targetname: "l529" color: darkgreen label: "4"} +node: {title: "l529" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 529 + The loop was analyzed 0 times."} +node: { title: "l529-0-nodes" color: lightyellow label: "Block 93 loop head! +Block 103" } +edge: {sourcename: "l529" targetname: "l529-0-nodes" label:"0...1"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-pure.vcg new file mode 100644 index 000000000..96f93d8e9 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1-pure.vcg @@ -0,0 +1,864 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m1" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n37" label: "Start 37" info1: "Start 37 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n37" targetname: "n36" class:2 priority:50 linestyle:dotted} +node: {title: "n40" label: "ProjX 0 40" info1: "Proj 40 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 36 + 0: Start 37 + Private Attributes: + in loop 520 with depth 0 +" +color: yellow} +edge: {sourcename: "n40" targetname: "n37" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n40" targetname: "n36" class:2 priority:50 linestyle:dotted} +node: {title: "n36" label: "Block 36" info1: "Block 36 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + 0: Proj 40 + Private Attributes: + backedges: + in loop 520 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n36" targetname: "n40" label: "0" class:13 priority:60 color:red} +node: {title: "n34" label: "Block 34" info1: "Block 34 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + 0: Bad 38 + Private Attributes: + backedges: + in loop 520 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +node: {title: "n34n38" label: "Bad 38" info1: "Bad 38 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 520 with depth 0 +" +} +edge: {sourcename: "n34" targetname: "n34n38" label: "0" class:13 priority:60 color:red} +node: {title: "n100" label: "Jmp 100" info1: "Jmp 100 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 93 + Private Attributes: + in loop 524 with depth 1 +" +} +edge: { sourcename: "n100" targetname: "n93" class:2 priority:50 linestyle:dotted} +node: {title: "n103" label: "Block 103" info1: "Block 103 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + 0: Jmp 100 + Private Attributes: + backedges: + in loop 524 with depth 1 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n103" targetname: "n100" label: "0" class:13 priority:60 color:red} +node: {title: "n114" label: "Jmp 114" info1: "Jmp 114 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 103 + Private Attributes: + in loop 524 with depth 1 +" +} +edge: { sourcename: "n114" targetname: "n103" class:2 priority:50 linestyle:dotted} +node: {title: "n84" label: "AddIs 84" info1: "Add 84 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0x1 58 + 1: Phi 92 + Private Attributes: + in loop 521 with depth 1 +" +} +node: {title: "n84n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n84" targetname: "n84n58" label: "0" class:16 priority:10} +edge: {sourcename: "n84" targetname: "n92" label: "1" class:16 priority:10} +edge: { sourcename: "n84" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n92" label: "PhiIs 92" info1: "Phi 92 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: 0x0 47 + 1: be Add 84 + Private Attributes: + backedges: 1 + in loop 521 with depth 1 +" +color: green} +node: {title: "n92n47" label: "0x0Is 47" info1: "0x0 47 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n92" targetname: "n92n47" label: "0" class:16 priority:10} +backedge: {sourcename: "n92" targetname: "n84" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n92" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n52" label: "Cmp 52" info1: "Cmp 52 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: 0xA 51 + 1: Phi 92 + Private Attributes: + in loop 522 with depth 2 +" +} +node: {title: "n52n51" label: "0xAIs 51" info1: "0xA 51 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n52" targetname: "n52n51" label: "0" class:16 priority:10} +edge: {sourcename: "n52" targetname: "n92" label: "1" class:1 priority:50} +edge: { sourcename: "n52" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n53" label: "Projb Gt 53" info1: "Proj 53 + mode: b + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cmp 52 + Private Attributes: + in loop 522 with depth 2 +" +color: yellow} +edge: {sourcename: "n53" targetname: "n52" label: "0" class:1 priority:50} +edge: { sourcename: "n53" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n54" label: "Cond 54" info1: "Cond 54 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Proj 53 + Private Attributes: + in loop 522 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n54" targetname: "n53" label: "0" class:1 priority:50} +edge: { sourcename: "n54" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n56" label: "ProjX 1 56" info1: "Proj 56 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cond 54 + Private Attributes: + in loop 522 with depth 2 +" +color: yellow} +edge: {sourcename: "n56" targetname: "n54" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n56" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n57" label: "Block 57" info1: "Block 57 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + 0: Proj 56 + Private Attributes: + backedges: + in loop 522 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n57" targetname: "n56" label: "0" class:13 priority:60 color:red} +node: {title: "n85" label: "Jmp 85" info1: "Jmp 85 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 57 + Private Attributes: + in loop 522 with depth 2 +" +} +edge: { sourcename: "n85" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n46" label: "Block 46" info1: "Block 46 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + 0: Proj 40 + Private Attributes: + backedges: + in loop 520 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n46" targetname: "n40" label: "0" class:13 priority:60 color:red} +node: {title: "n48" label: "Jmp 48" info1: "Jmp 48 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 46 + Private Attributes: + in loop 520 with depth 0 +" +} +edge: { sourcename: "n48" targetname: "n46" class:2 priority:50 linestyle:dotted} +node: {title: "n49" label: "Block 49" info1: "Block 49 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + 0: Jmp 48 + 1: be Jmp 85 + Private Attributes: + backedges: 1 + in loop 522 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n49" targetname: "n48" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n49" targetname: "n85" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n55" label: "ProjX 0 55" info1: "Proj 55 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cond 54 + Private Attributes: + in loop 520 with depth 0 +" +color: yellow} +edge: {sourcename: "n55" targetname: "n54" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n55" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n93" label: "Block 93" info1: "Block 93 + mode: BB + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + 0: Proj 55 + 1: be Jmp 114 + Private Attributes: + backedges: 1 + in loop 524 with depth 1 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n93" targetname: "n55" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n93" targetname: "n114" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n113" label: "SubIs 113" info1: "Sub 113 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: Phi 119 + 1: 0x1 58 + Private Attributes: + in loop 525 with depth 1 +" +} +node: {title: "n113n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n113" targetname: "n119" label: "0" class:16 priority:10} +edge: {sourcename: "n113" targetname: "n113n58" label: "1" class:16 priority:10} +edge: { sourcename: "n113" targetname: "n103" class:2 priority:50 linestyle:dotted} +node: {title: "n119" label: "PhiIs 119" info1: "Phi 119 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 93 + 0: Phi 92 + 1: be Sub 113 + Private Attributes: + backedges: 1 + in loop 525 with depth 1 +" +color: green} +edge: {sourcename: "n119" targetname: "n92" label: "0" class:16 priority:10} +backedge: {sourcename: "n119" targetname: "n113" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n119" targetname: "n93" class:2 priority:50 linestyle:dotted} +node: {title: "n106" label: "MulIs 106" info1: "Mul 106 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: 0x4 59 + 1: Phi 119 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n106n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n106" targetname: "n106n59" label: "0" class:16 priority:10} +edge: {sourcename: "n106" targetname: "n119" label: "1" class:16 priority:10} +edge: { sourcename: "n106" targetname: "n103" class:2 priority:50 linestyle:dotted} +node: {title: "n107" label: "AddP 107" info1: "Add 107 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: SymC &a 61 + 1: Mul 106 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n107n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n107" targetname: "n107n61" label: "0" class:16 priority:10} +edge: {sourcename: "n107" targetname: "n106" label: "1" class:1 priority:50} +edge: { sourcename: "n107" targetname: "n103" class:2 priority:50 linestyle:dotted} +node: {title: "n110" label: "Store 110" info1: "Store 110 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 103 + 0: Phi 120 + 1: Add 107 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 526 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n110n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n110" targetname: "n120" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n110" targetname: "n107" label: "1" class:1 priority:50} +edge: {sourcename: "n110" targetname: "n110n68" label: "2" class:16 priority:10} +edge: { sourcename: "n110" targetname: "n103" class:2 priority:50 linestyle:dotted} +node: {title: "n112" label: "ProjM 0 112" info1: "Proj 112 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 103 + 0: Store 110 + Private Attributes: + in loop 526 with depth 1 +" +color: yellow} +edge: {sourcename: "n112" targetname: "n110" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n112" targetname: "n103" class:2 priority:50 linestyle:dotted} +node: {title: "n64" label: "MulIs 64" info1: "Mul 64 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0x4 59 + 1: Phi 92 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n64n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n64" targetname: "n64n59" label: "0" class:16 priority:10} +edge: {sourcename: "n64" targetname: "n92" label: "1" class:16 priority:10} +edge: { sourcename: "n64" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n65" label: "AddP 65" info1: "Add 65 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: SymC &a 61 + 1: Mul 64 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n65n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n65" targetname: "n65n61" label: "0" class:16 priority:10} +edge: {sourcename: "n65" targetname: "n64" label: "1" class:1 priority:50} +edge: { sourcename: "n65" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n66" label: "MulIs 66" info1: "Mul 66 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0xC 60 + 1: Phi 92 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n66n60" label: "0xCIs 60" info1: "0xC 60 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n66" targetname: "n66n60" label: "0" class:16 priority:10} +edge: {sourcename: "n66" targetname: "n92" label: "1" class:16 priority:10} +edge: { sourcename: "n66" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n67" label: "AddP 67" info1: "Add 67 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: SymC &a2 62 + 1: Mul 66 + Private Attributes: + in loop 520 with depth 0 +" +} +node: {title: "n67n62" label: "SymC &a2 62" info1: "SymC &a2 62 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + kind: addr_ent + entity: entity GlobalType.a2 (32) + + type of value: type_unknown +" +} +edge: {sourcename: "n67" targetname: "n67n62" label: "0" class:16 priority:10} +edge: {sourcename: "n67" targetname: "n66" label: "1" class:1 priority:50} +edge: { sourcename: "n67" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n70" label: "Store 70" info1: "Store 70 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Phi 91 + 1: Add 65 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 523 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n70n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n70" targetname: "n91" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n70" targetname: "n65" label: "1" class:1 priority:50} +edge: {sourcename: "n70" targetname: "n70n68" label: "2" class:16 priority:10} +edge: { sourcename: "n70" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n72" label: "ProjM 0 72" info1: "Proj 72 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 70 + Private Attributes: + in loop 523 with depth 1 +" +color: yellow} +edge: {sourcename: "n72" targetname: "n70" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n72" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n74" label: "Store 74" info1: "Store 74 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Proj 72 + 1: Add 67 + 2: 0x10 73 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 523 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n74n73" label: "0x10Is 73" info1: "0x10 73 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n74" targetname: "n72" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n74" targetname: "n67" label: "1" class:1 priority:50} +edge: {sourcename: "n74" targetname: "n74n73" label: "2" class:16 priority:10} +edge: { sourcename: "n74" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n76" label: "ProjM 0 76" info1: "Proj 76 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 74 + Private Attributes: + in loop 523 with depth 1 +" +color: yellow} +edge: {sourcename: "n76" targetname: "n74" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n76" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n81" label: "Store 81" info1: "Store 81 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Proj 76 + 1: Add 65 + 2: 0xF 80 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 523 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n81n80" label: "0xFIs 80" info1: "0xF 80 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + in loop 520 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n81" targetname: "n76" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n81" targetname: "n65" label: "1" class:1 priority:50} +edge: {sourcename: "n81" targetname: "n81n80" label: "2" class:16 priority:10} +edge: { sourcename: "n81" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n83" label: "ProjM 0 83" info1: "Proj 83 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 81 + Private Attributes: + in loop 523 with depth 1 +" +color: yellow} +edge: {sourcename: "n83" targetname: "n81" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n83" targetname: "n57" class:2 priority:50 linestyle:dotted} +node: {title: "n43" label: "ProjM 1 43" info1: "Proj 43 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 36 + 0: Start 37 + Private Attributes: + in loop 520 with depth 0 +" +color: yellow} +edge: {sourcename: "n43" targetname: "n37" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n43" targetname: "n36" class:2 priority:50 linestyle:dotted} +node: {title: "n91" label: "PhiM 91" info1: "Phi 91 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: Proj 43 + 1: be Proj 83 + Private Attributes: + backedges: 1 + in loop 523 with depth 1 +" +color: green} +edge: {sourcename: "n91" targetname: "n43" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n91" targetname: "n83" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n91" targetname: "n49" class:2 priority:50 linestyle:dotted} +node: {title: "n120" label: "PhiM 120" info1: "Phi 120 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 93 + 0: Phi 91 + 1: be Proj 112 + Private Attributes: + backedges: 1 + in loop 526 with depth 1 +" +color: green} +edge: {sourcename: "n120" targetname: "n91" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n120" targetname: "n112" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n120" targetname: "n93" class:2 priority:50 linestyle:dotted} +node: {title: "n35" label: "End 35" info1: "End 35 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 34 + 0: Phi 91 + 1: Block 93 + 2: Phi 120 + Private Attributes: + in loop 520 with depth 0 +" +color: blue} +edge: { sourcename: "n35" targetname: "n34" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1.vcg new file mode 100644 index 000000000..d3944d9ce --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m1.vcg @@ -0,0 +1,707 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m1" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g45" label: "LOOP_UNROLL_EXAMPLE_m1" status:clustered color:white +graph: { title: "n93" label: "Block 93" status:clustered color:yellow +edge: {sourcename: "n93" targetname: "n55" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n93" targetname: "n114" label: "1" class:13 priority:60 color:red} +node: {title: "n120" label: "PhiM 120" info1: "Phi 120 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 93 + 0: Phi 91 + 1: Proj 112 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n120" targetname: "n91" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n120" targetname: "n112" label: "1" class:17 priority:10 color:blue} +node: {title: "n119" label: "PhiIs 119" info1: "Phi 119 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 93 + 0: Phi 92 + 1: Sub 113 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n119" targetname: "n92" label: "0" class:16 priority:10} +edge: {sourcename: "n119" targetname: "n113" label: "1" class:16 priority:10} +node: {title: "n100" label: "Jmp 100" info1: "Jmp 100 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 93 + Private Attributes: +" +} +} + +graph: { title: "n49" label: "Block 49" status:clustered color:yellow +edge: {sourcename: "n49" targetname: "n48" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n49" targetname: "n85" label: "1" class:13 priority:60 color:red} +node: {title: "n91" label: "PhiM 91" info1: "Phi 91 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: Proj 43 + 1: Proj 83 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n91" targetname: "n43" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n91" targetname: "n83" label: "1" class:17 priority:10 color:blue} +node: {title: "n55" label: "ProjX 0 55" info1: "Proj 55 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cond 54 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n55" targetname: "n54" label: "0" class:13 priority:60 color:red} +node: {title: "n56" label: "ProjX 1 56" info1: "Proj 56 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cond 54 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n56" targetname: "n54" label: "0" class:13 priority:60 color:red} +node: {title: "n54" label: "Cond 54" info1: "Cond 54 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Proj 53 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n54" targetname: "n53" label: "0" class:1 priority:50} +node: {title: "n53" label: "Projb Gt 53" info1: "Proj 53 + mode: b + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 49 + 0: Cmp 52 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n53" targetname: "n52" label: "0" class:1 priority:50} +node: {title: "n52" label: "Cmp 52" info1: "Cmp 52 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: 0xA 51 + 1: Phi 92 + Private Attributes: +" +} +node: {title: "n52n51" label: "0xAIs 51" info1: "0xA 51 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n52" targetname: "n52n51" label: "0" class:16 priority:10} +edge: {sourcename: "n52" targetname: "n92" label: "1" class:1 priority:50} +node: {title: "n92" label: "PhiIs 92" info1: "Phi 92 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 49 + 0: 0x0 47 + 1: Add 84 + Private Attributes: + backedges: +" +color: green} +node: {title: "n92n47" label: "0x0Is 47" info1: "0x0 47 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n92" targetname: "n92n47" label: "0" class:16 priority:10} +edge: {sourcename: "n92" targetname: "n84" label: "1" class:16 priority:10} +} + +graph: { title: "n46" label: "Block 46" status:clustered color:yellow +edge: {sourcename: "n46" targetname: "n40" label: "0" class:13 priority:60 color:red} +node: {title: "n48" label: "Jmp 48" info1: "Jmp 48 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 46 + Private Attributes: +" +} +} + +graph: { title: "n57" label: "Block 57" status:clustered color:yellow +edge: {sourcename: "n57" targetname: "n56" label: "0" class:13 priority:60 color:red} +node: {title: "n83" label: "ProjM 0 83" info1: "Proj 83 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 81 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n83" targetname: "n81" label: "0" class:17 priority:10 color:blue} +node: {title: "n81" label: "Store 81" info1: "Store 81 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Proj 76 + 1: Add 65 + 2: 0xF 80 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n81n80" label: "0xFIs 80" info1: "0xF 80 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n81" targetname: "n76" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n81" targetname: "n65" label: "1" class:1 priority:50} +edge: {sourcename: "n81" targetname: "n81n80" label: "2" class:16 priority:10} +node: {title: "n76" label: "ProjM 0 76" info1: "Proj 76 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 74 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n76" targetname: "n74" label: "0" class:17 priority:10 color:blue} +node: {title: "n74" label: "Store 74" info1: "Store 74 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Proj 72 + 1: Add 67 + 2: 0x10 73 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n74n73" label: "0x10Is 73" info1: "0x10 73 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n74" targetname: "n72" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n74" targetname: "n67" label: "1" class:1 priority:50} +edge: {sourcename: "n74" targetname: "n74n73" label: "2" class:16 priority:10} +node: {title: "n72" label: "ProjM 0 72" info1: "Proj 72 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 57 + 0: Store 70 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n72" targetname: "n70" label: "0" class:17 priority:10 color:blue} +node: {title: "n70" label: "Store 70" info1: "Store 70 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 57 + 0: Phi 91 + 1: Add 65 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n70n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n70" targetname: "n91" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n70" targetname: "n65" label: "1" class:1 priority:50} +edge: {sourcename: "n70" targetname: "n70n68" label: "2" class:16 priority:10} +node: {title: "n67" label: "AddP 67" info1: "Add 67 + mode: P + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: SymC &a2 62 + 1: Mul 66 + Private Attributes: +" +} +node: {title: "n67n62" label: "SymC &a2 62" info1: "SymC &a2 62 + mode: P + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a2 (32) + + type of value: type_unknown +" +} +edge: {sourcename: "n67" targetname: "n67n62" label: "0" class:16 priority:10} +edge: {sourcename: "n67" targetname: "n66" label: "1" class:1 priority:50} +node: {title: "n66" label: "MulIs 66" info1: "Mul 66 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0xC 60 + 1: Phi 92 + Private Attributes: +" +} +node: {title: "n66n60" label: "0xCIs 60" info1: "0xC 60 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n66" targetname: "n66n60" label: "0" class:16 priority:10} +edge: {sourcename: "n66" targetname: "n92" label: "1" class:16 priority:10} +node: {title: "n65" label: "AddP 65" info1: "Add 65 + mode: P + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: SymC &a 61 + 1: Mul 64 + Private Attributes: +" +} +node: {title: "n65n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n65" targetname: "n65n61" label: "0" class:16 priority:10} +edge: {sourcename: "n65" targetname: "n64" label: "1" class:1 priority:50} +node: {title: "n64" label: "MulIs 64" info1: "Mul 64 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0x4 59 + 1: Phi 92 + Private Attributes: +" +} +node: {title: "n64n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n64" targetname: "n64n59" label: "0" class:16 priority:10} +edge: {sourcename: "n64" targetname: "n92" label: "1" class:16 priority:10} +node: {title: "n85" label: "Jmp 85" info1: "Jmp 85 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 57 + Private Attributes: +" +} +node: {title: "n84" label: "AddIs 84" info1: "Add 84 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 57 + 0: 0x1 58 + 1: Phi 92 + Private Attributes: +" +} +node: {title: "n84n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n84" targetname: "n84n58" label: "0" class:16 priority:10} +edge: {sourcename: "n84" targetname: "n92" label: "1" class:16 priority:10} +} + +graph: { title: "n103" label: "Block 103" status:clustered color:yellow +edge: {sourcename: "n103" targetname: "n100" label: "0" class:13 priority:60 color:red} +node: {title: "n112" label: "ProjM 0 112" info1: "Proj 112 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 103 + 0: Store 110 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n112" targetname: "n110" label: "0" class:17 priority:10 color:blue} +node: {title: "n110" label: "Store 110" info1: "Store 110 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 103 + 0: Phi 120 + 1: Add 107 + 2: 0x13 68 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n110n68" label: "0x13Is 68" info1: "0x13 68 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n110" targetname: "n120" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n110" targetname: "n107" label: "1" class:1 priority:50} +edge: {sourcename: "n110" targetname: "n110n68" label: "2" class:16 priority:10} +node: {title: "n107" label: "AddP 107" info1: "Add 107 + mode: P + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: SymC &a 61 + 1: Mul 106 + Private Attributes: +" +} +node: {title: "n107n61" label: "SymC &a 61" info1: "SymC &a 61 + mode: P + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (31) + + type of value: type_unknown +" +} +edge: {sourcename: "n107" targetname: "n107n61" label: "0" class:16 priority:10} +edge: {sourcename: "n107" targetname: "n106" label: "1" class:1 priority:50} +node: {title: "n106" label: "MulIs 106" info1: "Mul 106 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: 0x4 59 + 1: Phi 119 + Private Attributes: +" +} +node: {title: "n106n59" label: "0x4Is 59" info1: "0x4 59 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n106" targetname: "n106n59" label: "0" class:16 priority:10} +edge: {sourcename: "n106" targetname: "n119" label: "1" class:16 priority:10} +node: {title: "n113" label: "SubIs 113" info1: "Sub 113 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 2 + pred nodes: + -1: Block 103 + 0: Phi 119 + 1: 0x1 58 + Private Attributes: +" +} +node: {title: "n113n58" label: "0x1Is 58" info1: "0x1 58 + mode: Is + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n113" targetname: "n119" label: "0" class:16 priority:10} +edge: {sourcename: "n113" targetname: "n113n58" label: "1" class:16 priority:10} +node: {title: "n114" label: "Jmp 114" info1: "Jmp 114 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 103 + Private Attributes: +" +} +} + +graph: { title: "n34" label: "Block 34" status:clustered color:yellow +edge: {sourcename: "n34" targetname: "n34n38" label: "0" class:13 priority:60 color:red} +node: {title: "n35" label: "End 35" info1: "End 35 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 3 + pred nodes: + -1: Block 34 + 0: Phi 91 + 1: Block 93 + 2: Phi 120 + Private Attributes: +" +color: blue} +} +node: {title: "n34n38" label: "Bad 38" info1: "Bad 38 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + pinned state: op_pin_state_pinned +" +} + +graph: { title: "n36" label: "Block 36" status:clustered color:yellow +edge: {sourcename: "n36" targetname: "n40" label: "0" class:13 priority:60 color:red} +node: {title: "n43" label: "ProjM 1 43" info1: "Proj 43 + mode: M + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 36 + 0: Start 37 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n43" targetname: "n37" label: "0" class:17 priority:10 color:blue} +node: {title: "n40" label: "ProjX 0 40" info1: "Proj 40 + mode: X + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 1 + pred nodes: + -1: Block 36 + 0: Start 37 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n40" targetname: "n37" label: "0" class:13 priority:60 color:red} +node: {title: "n37" label: "Start 37" info1: "Start 37 + mode: T + visited: 24 + irg: LOOP_UNROLL_EXAMPLE_m1 + arity: 0 + pred nodes: + -1: Block 36 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-loop-unrolling.vcg new file mode 100644 index 000000000..634967432 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-loop-unrolling.vcg @@ -0,0 +1,575 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m2" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g148" label: "LOOP_UNROLL_EXAMPLE_m2" status:clustered color:white +graph: { title: "n137" label: "Block 137" status:clustered color:yellow +edge: {sourcename: "n137" targetname: "n183" label: "0" class:13 priority:60 color:red} +node: {title: "n138" label: "End 138" info1: "End 138 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 137 + 0: Phi 187 + Private Attributes: + in loop 543 with depth 0 +" +color: blue} +} + +graph: { title: "n180" label: "Block 180" status:clustered color:yellow +edge: {sourcename: "n180" targetname: "n159" label: "0" class:13 priority:60 color:red} +node: {title: "n183" label: "Return 183" info1: "Return 183 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 180 + 0: Phi 187 + 1: 0x4 164 + Private Attributes: + in loop 543 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n183n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n183" targetname: "n187" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n183" targetname: "n183n164" label: "1" class:16 priority:10} +} + +graph: { title: "n153" label: "Block 153" status:clustered color:yellow +edge: {sourcename: "n153" targetname: "n152" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n153" targetname: "n552" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n187" label: "PhiM 187" info1: "Phi 187 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: Proj 146 + 1: Proj 550 + Private Attributes: + backedges: + in loop 546 with depth 1 +" +color: green} +edge: {sourcename: "n187" targetname: "n146" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n187" targetname: "n550" label: "1" class:17 priority:10 color:blue} +node: {title: "n159" label: "ProjX 0 159" info1: "Proj 159 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cond 158 + Private Attributes: + in loop 543 with depth 0 +" +color: yellow} +edge: {sourcename: "n159" targetname: "n158" label: "0" class:13 priority:60 color:red} +node: {title: "n160" label: "ProjX 1 160" info1: "Proj 160 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cond 158 + Private Attributes: + in loop 545 with depth 2 +" +color: yellow} +edge: {sourcename: "n160" targetname: "n158" label: "0" class:13 priority:60 color:red} +node: {title: "n158" label: "Cond 158" info1: "Cond 158 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Proj 157 + Private Attributes: + in loop 545 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n158" targetname: "n157" label: "0" class:1 priority:50} +node: {title: "n157" label: "Projb Ge 157" info1: "Proj 157 + mode: b + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cmp 156 + Private Attributes: + in loop 545 with depth 2 +" +color: yellow} +edge: {sourcename: "n157" targetname: "n156" label: "0" class:1 priority:50} +node: {title: "n156" label: "Cmp 156" info1: "Cmp 156 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: 0xB 155 + 1: Phi 188 + Private Attributes: + in loop 545 with depth 2 +" +} +node: {title: "n156n155" label: "0xBIs 155" info1: "0xB 155 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n156" targetname: "n156n155" label: "0" class:16 priority:10} +edge: {sourcename: "n156" targetname: "n188" label: "1" class:1 priority:50} +node: {title: "n188" label: "PhiIs 188" info1: "Phi 188 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: 0x0 150 + 1: Add 551 + Private Attributes: + backedges: + in loop 544 with depth 1 +" +color: green} +node: {title: "n188n150" label: "0x0Is 150" info1: "0x0 150 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n188" targetname: "n188n150" label: "0" class:16 priority:10} +edge: {sourcename: "n188" targetname: "n551" label: "1" class:16 priority:10} +} + +graph: { title: "n149" label: "Block 149" status:clustered color:yellow +edge: {sourcename: "n149" targetname: "n143" label: "0" class:13 priority:60 color:red} +node: {title: "n152" label: "Jmp 152" info1: "Jmp 152 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 149 + Private Attributes: + in loop 543 with depth 0 +" +} +} + +graph: { title: "n553" label: "Block 553" status:clustered color:yellow +edge: {sourcename: "n553" targetname: "n174" label: "0" class:13 priority:60 color:red} +node: {title: "n550" label: "ProjM 0 550" info1: "Proj 550 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 553 + 0: Store 549 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n550" targetname: "n549" label: "0" class:17 priority:10 color:blue} +node: {title: "n549" label: "Store 549" info1: "Store 549 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 3 + pred nodes: + -1: Block 553 + 0: Proj 172 + 1: Add 555 + 2: 0xF 162 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n549n162" label: "0xFIs 162" info1: "0xF 162 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n549" targetname: "n172" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n549" targetname: "n555" label: "1" class:1 priority:50} +edge: {sourcename: "n549" targetname: "n549n162" label: "2" class:16 priority:10} +node: {title: "n555" label: "AddP 555" info1: "Add 555 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 553 + 0: Mul 554 + 1: SymC &a 151 + Private Attributes: +" +} +node: {title: "n555n151" label: "SymC &a 151" info1: "SymC &a 151 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (135) + + type of value: type_unknown +" +} +edge: {sourcename: "n555" targetname: "n554" label: "0" class:1 priority:50} +edge: {sourcename: "n555" targetname: "n555n151" label: "1" class:16 priority:10} +node: {title: "n554" label: "MulIs 554" info1: "Mul 554 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 553 + 0: 0x4 164 + 1: Add 173 + Private Attributes: +" +} +node: {title: "n554n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n554" targetname: "n554n164" label: "0" class:16 priority:10} +edge: {sourcename: "n554" targetname: "n173" label: "1" class:16 priority:10} +node: {title: "n552" label: "Jmp 552" info1: "Jmp 552 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 553 + Private Attributes: +" +} +node: {title: "n551" label: "AddIs 551" info1: "Add 551 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 553 + 0: 0x5 163 + 1: Add 173 + Private Attributes: +" +} +node: {title: "n551n163" label: "0x5Is 163" info1: "0x5 163 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n551" targetname: "n551n163" label: "0" class:16 priority:10} +edge: {sourcename: "n551" targetname: "n173" label: "1" class:16 priority:10} +} + +graph: { title: "n161" label: "Block 161" status:clustered color:yellow +edge: {sourcename: "n161" targetname: "n160" label: "0" class:13 priority:60 color:red} +node: {title: "n172" label: "ProjM 0 172" info1: "Proj 172 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 161 + 0: Store 170 + Private Attributes: + in loop 546 with depth 1 +" +color: yellow} +edge: {sourcename: "n172" targetname: "n170" label: "0" class:17 priority:10 color:blue} +node: {title: "n170" label: "Store 170" info1: "Store 170 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 3 + pred nodes: + -1: Block 161 + 0: Phi 187 + 1: Add 168 + 2: 0xF 162 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 546 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n170n162" label: "0xFIs 162" info1: "0xF 162 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n170" targetname: "n187" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n170" targetname: "n168" label: "1" class:1 priority:50} +edge: {sourcename: "n170" targetname: "n170n162" label: "2" class:16 priority:10} +node: {title: "n168" label: "AddP 168" info1: "Add 168 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: Mul 166 + 1: SymC &a 151 + Private Attributes: + in loop 543 with depth 0 +" +} +node: {title: "n168n151" label: "SymC &a 151" info1: "SymC &a 151 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (135) + + type of value: type_unknown +" +} +edge: {sourcename: "n168" targetname: "n166" label: "0" class:1 priority:50} +edge: {sourcename: "n168" targetname: "n168n151" label: "1" class:16 priority:10} +node: {title: "n166" label: "MulIs 166" info1: "Mul 166 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: 0x4 164 + 1: Phi 188 + Private Attributes: + in loop 543 with depth 0 +" +} +node: {title: "n166n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n166" targetname: "n166n164" label: "0" class:16 priority:10} +edge: {sourcename: "n166" targetname: "n188" label: "1" class:16 priority:10} +node: {title: "n174" label: "Jmp 174" info1: "Jmp 174 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 161 + Private Attributes: + in loop 545 with depth 2 +" +} +node: {title: "n173" label: "AddIs 173" info1: "Add 173 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: 0x5 163 + 1: Phi 188 + Private Attributes: + in loop 544 with depth 1 +" +} +node: {title: "n173n163" label: "0x5Is 163" info1: "0x5 163 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n173" targetname: "n173n163" label: "0" class:16 priority:10} +edge: {sourcename: "n173" targetname: "n188" label: "1" class:16 priority:10} +} + +graph: { title: "n139" label: "Block 139" status:clustered color:yellow +edge: {sourcename: "n139" targetname: "n143" label: "0" class:13 priority:60 color:red} +node: {title: "n146" label: "ProjM 1 146" info1: "Proj 146 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 139 + 0: Start 140 + Private Attributes: + in loop 543 with depth 0 +" +color: yellow} +edge: {sourcename: "n146" targetname: "n140" label: "0" class:17 priority:10 color:blue} +node: {title: "n143" label: "ProjX 0 143" info1: "Proj 143 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 139 + 0: Start 140 + Private Attributes: + in loop 543 with depth 0 +" +color: yellow} +edge: {sourcename: "n143" targetname: "n140" label: "0" class:13 priority:60 color:red} +node: {title: "n140" label: "Start 140" info1: "Start 140 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-looptree.vcg new file mode 100644 index 000000000..92120edf5 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-looptree.vcg @@ -0,0 +1,69 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m2" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l547" label: "loop 0, 1 sons, 4 nodes" info1: " loop nr: 547 + The loop was analyzed 0 times."} +node: { title: "l547-0-nodes" color: lightyellow label: "Block 139 +Block 149" } +edge: {sourcename: "l547" targetname: "l547-0-nodes" label:"0...1"} +edge: {sourcename: "l547" targetname: "l548" color: darkgreen label: "2"} +node: {title: "l548" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 548 + The loop was analyzed 0 times."} +node: { title: "l548-0-nodes" color: lightyellow label: "Block 153 loop head! +Block 161" } +edge: {sourcename: "l548" targetname: "l548-0-nodes" label:"0...1"} +node: { title: "l547-3-nodes" color: lightyellow label: "Block 180 +Block 137" } +edge: {sourcename: "l547" targetname: "l547-3-nodes" label:"3...4"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-pure.vcg new file mode 100644 index 000000000..2ecf234fd --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2-pure.vcg @@ -0,0 +1,521 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m2" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n140" label: "Start 140" info1: "Start 140 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n140" targetname: "n139" class:2 priority:50 linestyle:dotted} +node: {title: "n143" label: "ProjX 0 143" info1: "Proj 143 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 139 + 0: Start 140 + Private Attributes: + in loop 543 with depth 0 +" +color: yellow} +edge: {sourcename: "n143" targetname: "n140" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n143" targetname: "n139" class:2 priority:50 linestyle:dotted} +node: {title: "n139" label: "Block 139" info1: "Block 139 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + 0: Proj 143 + Private Attributes: + backedges: + in loop 543 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n139" targetname: "n143" label: "0" class:13 priority:60 color:red} +node: {title: "n173" label: "AddIs 173" info1: "Add 173 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: 0x5 163 + 1: Phi 188 + Private Attributes: + in loop 544 with depth 1 +" +} +node: {title: "n173n163" label: "0x5Is 163" info1: "0x5 163 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n173" targetname: "n173n163" label: "0" class:16 priority:10} +edge: {sourcename: "n173" targetname: "n188" label: "1" class:16 priority:10} +edge: { sourcename: "n173" targetname: "n161" class:2 priority:50 linestyle:dotted} +node: {title: "n188" label: "PhiIs 188" info1: "Phi 188 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: 0x0 150 + 1: be Add 173 + Private Attributes: + backedges: 1 + in loop 544 with depth 1 +" +color: green} +node: {title: "n188n150" label: "0x0Is 150" info1: "0x0 150 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n188" targetname: "n188n150" label: "0" class:16 priority:10} +backedge: {sourcename: "n188" targetname: "n173" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n188" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n156" label: "Cmp 156" info1: "Cmp 156 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: 0xB 155 + 1: Phi 188 + Private Attributes: + in loop 545 with depth 2 +" +} +node: {title: "n156n155" label: "0xBIs 155" info1: "0xB 155 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n156" targetname: "n156n155" label: "0" class:16 priority:10} +edge: {sourcename: "n156" targetname: "n188" label: "1" class:1 priority:50} +edge: { sourcename: "n156" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n157" label: "Projb Ge 157" info1: "Proj 157 + mode: b + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cmp 156 + Private Attributes: + in loop 545 with depth 2 +" +color: yellow} +edge: {sourcename: "n157" targetname: "n156" label: "0" class:1 priority:50} +edge: { sourcename: "n157" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n158" label: "Cond 158" info1: "Cond 158 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Proj 157 + Private Attributes: + in loop 545 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n158" targetname: "n157" label: "0" class:1 priority:50} +edge: { sourcename: "n158" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n160" label: "ProjX 1 160" info1: "Proj 160 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cond 158 + Private Attributes: + in loop 545 with depth 2 +" +color: yellow} +edge: {sourcename: "n160" targetname: "n158" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n160" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n161" label: "Block 161" info1: "Block 161 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + 0: Proj 160 + Private Attributes: + backedges: + in loop 545 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n161" targetname: "n160" label: "0" class:13 priority:60 color:red} +node: {title: "n174" label: "Jmp 174" info1: "Jmp 174 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 161 + Private Attributes: + in loop 545 with depth 2 +" +} +edge: { sourcename: "n174" targetname: "n161" class:2 priority:50 linestyle:dotted} +node: {title: "n149" label: "Block 149" info1: "Block 149 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + 0: Proj 143 + Private Attributes: + backedges: + in loop 543 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n149" targetname: "n143" label: "0" class:13 priority:60 color:red} +node: {title: "n152" label: "Jmp 152" info1: "Jmp 152 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 149 + Private Attributes: + in loop 543 with depth 0 +" +} +edge: { sourcename: "n152" targetname: "n149" class:2 priority:50 linestyle:dotted} +node: {title: "n153" label: "Block 153" info1: "Block 153 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + 0: Jmp 152 + 1: be Jmp 174 + Private Attributes: + backedges: 1 + in loop 545 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n153" targetname: "n152" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n153" targetname: "n174" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n159" label: "ProjX 0 159" info1: "Proj 159 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cond 158 + Private Attributes: + in loop 543 with depth 0 +" +color: yellow} +edge: {sourcename: "n159" targetname: "n158" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n159" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n180" label: "Block 180" info1: "Block 180 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + 0: Proj 159 + Private Attributes: + backedges: + in loop 543 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n180" targetname: "n159" label: "0" class:13 priority:60 color:red} +node: {title: "n166" label: "MulIs 166" info1: "Mul 166 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: 0x4 164 + 1: Phi 188 + Private Attributes: + in loop 543 with depth 0 +" +} +node: {title: "n166n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n166" targetname: "n166n164" label: "0" class:16 priority:10} +edge: {sourcename: "n166" targetname: "n188" label: "1" class:16 priority:10} +edge: { sourcename: "n166" targetname: "n161" class:2 priority:50 linestyle:dotted} +node: {title: "n168" label: "AddP 168" info1: "Add 168 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: Mul 166 + 1: SymC &a 151 + Private Attributes: + in loop 543 with depth 0 +" +} +node: {title: "n168n151" label: "SymC &a 151" info1: "SymC &a 151 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (135) + + type of value: type_unknown +" +} +edge: {sourcename: "n168" targetname: "n166" label: "0" class:1 priority:50} +edge: {sourcename: "n168" targetname: "n168n151" label: "1" class:16 priority:10} +edge: { sourcename: "n168" targetname: "n161" class:2 priority:50 linestyle:dotted} +node: {title: "n170" label: "Store 170" info1: "Store 170 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 3 + pred nodes: + -1: Block 161 + 0: Phi 187 + 1: Add 168 + 2: 0xF 162 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 546 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n170n162" label: "0xFIs 162" info1: "0xF 162 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n170" targetname: "n187" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n170" targetname: "n168" label: "1" class:1 priority:50} +edge: {sourcename: "n170" targetname: "n170n162" label: "2" class:16 priority:10} +edge: { sourcename: "n170" targetname: "n161" class:2 priority:50 linestyle:dotted} +node: {title: "n172" label: "ProjM 0 172" info1: "Proj 172 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 161 + 0: Store 170 + Private Attributes: + in loop 546 with depth 1 +" +color: yellow} +edge: {sourcename: "n172" targetname: "n170" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n172" targetname: "n161" class:2 priority:50 linestyle:dotted} +node: {title: "n146" label: "ProjM 1 146" info1: "Proj 146 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 139 + 0: Start 140 + Private Attributes: + in loop 543 with depth 0 +" +color: yellow} +edge: {sourcename: "n146" targetname: "n140" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n146" targetname: "n139" class:2 priority:50 linestyle:dotted} +node: {title: "n187" label: "PhiM 187" info1: "Phi 187 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: Proj 146 + 1: be Proj 172 + Private Attributes: + backedges: 1 + in loop 546 with depth 1 +" +color: green} +edge: {sourcename: "n187" targetname: "n146" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n187" targetname: "n172" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n187" targetname: "n153" class:2 priority:50 linestyle:dotted} +node: {title: "n183" label: "Return 183" info1: "Return 183 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 180 + 0: Phi 187 + 1: 0x4 164 + Private Attributes: + in loop 543 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n183n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + in loop 543 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n183" targetname: "n187" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n183" targetname: "n183n164" label: "1" class:16 priority:10} +edge: { sourcename: "n183" targetname: "n180" class:2 priority:50 linestyle:dotted} +node: {title: "n137" label: "Block 137" info1: "Block 137 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + 0: Return 183 + Private Attributes: + backedges: + in loop 543 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n137" targetname: "n183" label: "0" class:13 priority:60 color:red} +node: {title: "n138" label: "End 138" info1: "End 138 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 137 + 0: Phi 187 + Private Attributes: + in loop 543 with depth 0 +" +color: blue} +edge: { sourcename: "n138" targetname: "n137" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2.vcg new file mode 100644 index 000000000..05e8434a0 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m2.vcg @@ -0,0 +1,412 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m2" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g148" label: "LOOP_UNROLL_EXAMPLE_m2" status:clustered color:white +graph: { title: "n137" label: "Block 137" status:clustered color:yellow +edge: {sourcename: "n137" targetname: "n183" label: "0" class:13 priority:60 color:red} +node: {title: "n138" label: "End 138" info1: "End 138 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 137 + 0: Phi 187 + Private Attributes: +" +color: blue} +} + +graph: { title: "n180" label: "Block 180" status:clustered color:yellow +edge: {sourcename: "n180" targetname: "n159" label: "0" class:13 priority:60 color:red} +node: {title: "n183" label: "Return 183" info1: "Return 183 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 180 + 0: Phi 187 + 1: 0x4 164 + Private Attributes: + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n183n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n183" targetname: "n187" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n183" targetname: "n183n164" label: "1" class:16 priority:10} +} + +graph: { title: "n153" label: "Block 153" status:clustered color:yellow +edge: {sourcename: "n153" targetname: "n152" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n153" targetname: "n174" label: "1" class:13 priority:60 color:red} +node: {title: "n187" label: "PhiM 187" info1: "Phi 187 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: Proj 146 + 1: Proj 172 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n187" targetname: "n146" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n187" targetname: "n172" label: "1" class:17 priority:10 color:blue} +node: {title: "n159" label: "ProjX 0 159" info1: "Proj 159 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cond 158 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n159" targetname: "n158" label: "0" class:13 priority:60 color:red} +node: {title: "n160" label: "ProjX 1 160" info1: "Proj 160 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cond 158 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n160" targetname: "n158" label: "0" class:13 priority:60 color:red} +node: {title: "n158" label: "Cond 158" info1: "Cond 158 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Proj 157 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n158" targetname: "n157" label: "0" class:1 priority:50} +node: {title: "n157" label: "Projb Ge 157" info1: "Proj 157 + mode: b + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 153 + 0: Cmp 156 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n157" targetname: "n156" label: "0" class:1 priority:50} +node: {title: "n156" label: "Cmp 156" info1: "Cmp 156 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: 0xB 155 + 1: Phi 188 + Private Attributes: +" +} +node: {title: "n156n155" label: "0xBIs 155" info1: "0xB 155 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n156" targetname: "n156n155" label: "0" class:16 priority:10} +edge: {sourcename: "n156" targetname: "n188" label: "1" class:1 priority:50} +node: {title: "n188" label: "PhiIs 188" info1: "Phi 188 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 153 + 0: 0x0 150 + 1: Add 173 + Private Attributes: + backedges: +" +color: green} +node: {title: "n188n150" label: "0x0Is 150" info1: "0x0 150 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n188" targetname: "n188n150" label: "0" class:16 priority:10} +edge: {sourcename: "n188" targetname: "n173" label: "1" class:16 priority:10} +} + +graph: { title: "n149" label: "Block 149" status:clustered color:yellow +edge: {sourcename: "n149" targetname: "n143" label: "0" class:13 priority:60 color:red} +node: {title: "n152" label: "Jmp 152" info1: "Jmp 152 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 149 + Private Attributes: +" +} +} + +graph: { title: "n161" label: "Block 161" status:clustered color:yellow +edge: {sourcename: "n161" targetname: "n160" label: "0" class:13 priority:60 color:red} +node: {title: "n172" label: "ProjM 0 172" info1: "Proj 172 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 161 + 0: Store 170 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n172" targetname: "n170" label: "0" class:17 priority:10 color:blue} +node: {title: "n170" label: "Store 170" info1: "Store 170 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 3 + pred nodes: + -1: Block 161 + 0: Phi 187 + 1: Add 168 + 2: 0xF 162 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n170n162" label: "0xFIs 162" info1: "0xF 162 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n170" targetname: "n187" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n170" targetname: "n168" label: "1" class:1 priority:50} +edge: {sourcename: "n170" targetname: "n170n162" label: "2" class:16 priority:10} +node: {title: "n168" label: "AddP 168" info1: "Add 168 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: Mul 166 + 1: SymC &a 151 + Private Attributes: +" +} +node: {title: "n168n151" label: "SymC &a 151" info1: "SymC &a 151 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (135) + + type of value: type_unknown +" +} +edge: {sourcename: "n168" targetname: "n166" label: "0" class:1 priority:50} +edge: {sourcename: "n168" targetname: "n168n151" label: "1" class:16 priority:10} +node: {title: "n166" label: "MulIs 166" info1: "Mul 166 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: 0x4 164 + 1: Phi 188 + Private Attributes: +" +} +node: {title: "n166n164" label: "0x4Is 164" info1: "0x4 164 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n166" targetname: "n166n164" label: "0" class:16 priority:10} +edge: {sourcename: "n166" targetname: "n188" label: "1" class:16 priority:10} +node: {title: "n174" label: "Jmp 174" info1: "Jmp 174 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 161 + Private Attributes: +" +} +node: {title: "n173" label: "AddIs 173" info1: "Add 173 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 2 + pred nodes: + -1: Block 161 + 0: 0x5 163 + 1: Phi 188 + Private Attributes: +" +} +node: {title: "n173n163" label: "0x5Is 163" info1: "0x5 163 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n173" targetname: "n173n163" label: "0" class:16 priority:10} +edge: {sourcename: "n173" targetname: "n188" label: "1" class:16 priority:10} +} + +graph: { title: "n139" label: "Block 139" status:clustered color:yellow +edge: {sourcename: "n139" targetname: "n143" label: "0" class:13 priority:60 color:red} +node: {title: "n146" label: "ProjM 1 146" info1: "Proj 146 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 139 + 0: Start 140 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n146" targetname: "n140" label: "0" class:17 priority:10 color:blue} +node: {title: "n143" label: "ProjX 0 143" info1: "Proj 143 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 1 + pred nodes: + -1: Block 139 + 0: Start 140 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n143" targetname: "n140" label: "0" class:13 priority:60 color:red} +node: {title: "n140" label: "Start 140" info1: "Start 140 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m2 + arity: 0 + pred nodes: + -1: Block 139 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-loop-unrolling.vcg new file mode 100644 index 000000000..b0d8952ac --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-loop-unrolling.vcg @@ -0,0 +1,739 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m3" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g210" label: "LOOP_UNROLL_EXAMPLE_m3" status:clustered color:white +graph: { title: "n199" label: "Block 199" status:clustered color:yellow +edge: {sourcename: "n199" targetname: "n249" label: "0" class:13 priority:60 color:red} +node: {title: "n200" label: "End 200" info1: "End 200 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 199 + 0: Phi 253 + Private Attributes: + in loop 556 with depth 0 +" +color: blue} +} + +graph: { title: "n246" label: "Block 246" status:clustered color:yellow +edge: {sourcename: "n246" targetname: "n221" label: "0" class:13 priority:60 color:red} +node: {title: "n249" label: "Return 249" info1: "Return 249 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 246 + 0: Phi 253 + 1: 0x4 225 + Private Attributes: + in loop 556 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n249n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n249" targetname: "n253" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n249" targetname: "n249n225" label: "1" class:16 priority:10} +} + +graph: { title: "n215" label: "Block 215" status:clustered color:yellow +edge: {sourcename: "n215" targetname: "n214" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n215" targetname: "n570" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n253" label: "PhiM 253" info1: "Phi 253 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: Proj 208 + 1: Proj 568 + Private Attributes: + backedges: + in loop 559 with depth 1 +" +color: green} +edge: {sourcename: "n253" targetname: "n208" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n253" targetname: "n568" label: "1" class:17 priority:10 color:blue} +node: {title: "n221" label: "ProjX 0 221" info1: "Proj 221 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cond 220 + Private Attributes: + in loop 556 with depth 0 +" +color: yellow} +edge: {sourcename: "n221" targetname: "n220" label: "0" class:13 priority:60 color:red} +node: {title: "n222" label: "ProjX 1 222" info1: "Proj 222 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cond 220 + Private Attributes: + in loop 558 with depth 2 +" +color: yellow} +edge: {sourcename: "n222" targetname: "n220" label: "0" class:13 priority:60 color:red} +node: {title: "n220" label: "Cond 220" info1: "Cond 220 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Proj 219 + Private Attributes: + in loop 558 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n220" targetname: "n219" label: "0" class:1 priority:50} +node: {title: "n219" label: "Projb Lt 219" info1: "Proj 219 + mode: b + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cmp 218 + Private Attributes: + in loop 558 with depth 2 +" +color: yellow} +edge: {sourcename: "n219" targetname: "n218" label: "0" class:1 priority:50} +node: {title: "n218" label: "Cmp 218" info1: "Cmp 218 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: 0x0 217 + 1: Phi 254 + Private Attributes: + in loop 558 with depth 2 +" +} +node: {title: "n218n217" label: "0x0Is 217" info1: "0x0 217 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n218" targetname: "n218n217" label: "0" class:16 priority:10} +edge: {sourcename: "n218" targetname: "n254" label: "1" class:1 priority:50} +node: {title: "n254" label: "PhiIs 254" info1: "Phi 254 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: 0xA 212 + 1: Sub 569 + Private Attributes: + backedges: + in loop 557 with depth 1 +" +color: green} +node: {title: "n254n212" label: "0xAIs 212" info1: "0xA 212 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n254" targetname: "n254n212" label: "0" class:16 priority:10} +edge: {sourcename: "n254" targetname: "n569" label: "1" class:16 priority:10} +} + +graph: { title: "n211" label: "Block 211" status:clustered color:yellow +edge: {sourcename: "n211" targetname: "n205" label: "0" class:13 priority:60 color:red} +node: {title: "n214" label: "Jmp 214" info1: "Jmp 214 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 211 + Private Attributes: + in loop 556 with depth 0 +" +} +} + +graph: { title: "n571" label: "Block 571" status:clustered color:yellow +edge: {sourcename: "n571" targetname: "n240" label: "0" class:13 priority:60 color:red} +node: {title: "n568" label: "ProjM 0 568" info1: "Proj 568 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 571 + 0: Store 567 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n568" targetname: "n567" label: "0" class:17 priority:10 color:blue} +node: {title: "n567" label: "Store 567" info1: "Store 567 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 3 + pred nodes: + -1: Block 571 + 0: Proj 238 + 1: Add 566 + 2: Sub 239 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n567" targetname: "n238" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n567" targetname: "n566" label: "1" class:1 priority:50} +edge: {sourcename: "n567" targetname: "n239" label: "2" class:16 priority:10} +node: {title: "n566" label: "AddP 566" info1: "Add 566 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: Add 564 + 1: Add 565 + Private Attributes: +" +} +edge: {sourcename: "n566" targetname: "n564" label: "0" class:1 priority:50} +edge: {sourcename: "n566" targetname: "n565" label: "1" class:1 priority:50} +node: {title: "n565" label: "AddP 565" info1: "Add 565 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: 0x8 226 + 1: Add 564 + Private Attributes: +" +} +node: {title: "n565n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n565" targetname: "n565n226" label: "0" class:16 priority:10} +edge: {sourcename: "n565" targetname: "n564" label: "1" class:1 priority:50} +node: {title: "n564" label: "AddP 564" info1: "Add 564 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: 0x8 226 + 1: Add 563 + Private Attributes: +" +} +node: {title: "n564n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n564" targetname: "n564n226" label: "0" class:16 priority:10} +edge: {sourcename: "n564" targetname: "n563" label: "1" class:1 priority:50} +node: {title: "n563" label: "AddP 563" info1: "Add 563 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: 0x4 225 + 1: Add 562 + Private Attributes: +" +} +node: {title: "n563n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n563" targetname: "n563n225" label: "0" class:16 priority:10} +edge: {sourcename: "n563" targetname: "n562" label: "1" class:1 priority:50} +node: {title: "n562" label: "AddP 562" info1: "Add 562 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: Mul 572 + 1: SymC &a 213 + Private Attributes: +" +} +node: {title: "n562n213" label: "SymC &a 213" info1: "SymC &a 213 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (197) + + type of value: type_unknown +" +} +edge: {sourcename: "n562" targetname: "n572" label: "0" class:1 priority:50} +edge: {sourcename: "n562" targetname: "n562n213" label: "1" class:16 priority:10} +node: {title: "n572" label: "MulIs 572" info1: "Mul 572 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: 0x4 225 + 1: Sub 239 + Private Attributes: +" +} +node: {title: "n572n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n572" targetname: "n572n225" label: "0" class:16 priority:10} +edge: {sourcename: "n572" targetname: "n239" label: "1" class:16 priority:10} +node: {title: "n570" label: "Jmp 570" info1: "Jmp 570 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 571 + Private Attributes: +" +} +node: {title: "n569" label: "SubIs 569" info1: "Sub 569 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 571 + 0: Sub 239 + 1: 0x1 224 + Private Attributes: +" +} +node: {title: "n569n224" label: "0x1Is 224" info1: "0x1 224 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n569" targetname: "n239" label: "0" class:16 priority:10} +edge: {sourcename: "n569" targetname: "n569n224" label: "1" class:16 priority:10} +} + +graph: { title: "n223" label: "Block 223" status:clustered color:yellow +edge: {sourcename: "n223" targetname: "n222" label: "0" class:13 priority:60 color:red} +node: {title: "n238" label: "ProjM 0 238" info1: "Proj 238 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 223 + 0: Store 236 + Private Attributes: + in loop 559 with depth 1 +" +color: yellow} +edge: {sourcename: "n238" targetname: "n236" label: "0" class:17 priority:10 color:blue} +node: {title: "n236" label: "Store 236" info1: "Store 236 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 3 + pred nodes: + -1: Block 223 + 0: Phi 253 + 1: Add 234 + 2: Phi 254 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 559 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n236" targetname: "n253" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n236" targetname: "n234" label: "1" class:1 priority:50} +edge: {sourcename: "n236" targetname: "n254" label: "2" class:16 priority:10} +node: {title: "n234" label: "AddP 234" info1: "Add 234 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Add 232 + 1: Add 233 + Private Attributes: + in loop 556 with depth 0 +" +} +edge: {sourcename: "n234" targetname: "n232" label: "0" class:1 priority:50} +edge: {sourcename: "n234" targetname: "n233" label: "1" class:1 priority:50} +node: {title: "n233" label: "AddP 233" info1: "Add 233 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x8 226 + 1: Add 232 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n233n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n233" targetname: "n233n226" label: "0" class:16 priority:10} +edge: {sourcename: "n233" targetname: "n232" label: "1" class:1 priority:50} +node: {title: "n232" label: "AddP 232" info1: "Add 232 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x8 226 + 1: Add 231 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n232n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n232" targetname: "n232n226" label: "0" class:16 priority:10} +edge: {sourcename: "n232" targetname: "n231" label: "1" class:1 priority:50} +node: {title: "n231" label: "AddP 231" info1: "Add 231 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x4 225 + 1: Add 230 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n231n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n231" targetname: "n231n225" label: "0" class:16 priority:10} +edge: {sourcename: "n231" targetname: "n230" label: "1" class:1 priority:50} +node: {title: "n230" label: "AddP 230" info1: "Add 230 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Mul 228 + 1: SymC &a 213 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n230n213" label: "SymC &a 213" info1: "SymC &a 213 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (197) + + type of value: type_unknown +" +} +edge: {sourcename: "n230" targetname: "n228" label: "0" class:1 priority:50} +edge: {sourcename: "n230" targetname: "n230n213" label: "1" class:16 priority:10} +node: {title: "n228" label: "MulIs 228" info1: "Mul 228 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x4 225 + 1: Phi 254 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n228n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n228" targetname: "n228n225" label: "0" class:16 priority:10} +edge: {sourcename: "n228" targetname: "n254" label: "1" class:16 priority:10} +node: {title: "n240" label: "Jmp 240" info1: "Jmp 240 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 223 + Private Attributes: + in loop 558 with depth 2 +" +} +node: {title: "n239" label: "SubIs 239" info1: "Sub 239 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Phi 254 + 1: 0x1 224 + Private Attributes: + in loop 557 with depth 1 +" +} +node: {title: "n239n224" label: "0x1Is 224" info1: "0x1 224 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n239" targetname: "n254" label: "0" class:16 priority:10} +edge: {sourcename: "n239" targetname: "n239n224" label: "1" class:16 priority:10} +} + +graph: { title: "n201" label: "Block 201" status:clustered color:yellow +edge: {sourcename: "n201" targetname: "n205" label: "0" class:13 priority:60 color:red} +node: {title: "n208" label: "ProjM 1 208" info1: "Proj 208 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 201 + 0: Start 202 + Private Attributes: + in loop 556 with depth 0 +" +color: yellow} +edge: {sourcename: "n208" targetname: "n202" label: "0" class:17 priority:10 color:blue} +node: {title: "n205" label: "ProjX 0 205" info1: "Proj 205 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 201 + 0: Start 202 + Private Attributes: + in loop 556 with depth 0 +" +color: yellow} +edge: {sourcename: "n205" targetname: "n202" label: "0" class:13 priority:60 color:red} +node: {title: "n202" label: "Start 202" info1: "Start 202 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-looptree.vcg new file mode 100644 index 000000000..3b342a42c --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-looptree.vcg @@ -0,0 +1,69 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m3" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l560" label: "loop 0, 1 sons, 4 nodes" info1: " loop nr: 560 + The loop was analyzed 0 times."} +node: { title: "l560-0-nodes" color: lightyellow label: "Block 201 +Block 211" } +edge: {sourcename: "l560" targetname: "l560-0-nodes" label:"0...1"} +edge: {sourcename: "l560" targetname: "l561" color: darkgreen label: "2"} +node: {title: "l561" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 561 + The loop was analyzed 0 times."} +node: { title: "l561-0-nodes" color: lightyellow label: "Block 215 loop head! +Block 223" } +edge: {sourcename: "l561" targetname: "l561-0-nodes" label:"0...1"} +node: { title: "l560-3-nodes" color: lightyellow label: "Block 246 +Block 199" } +edge: {sourcename: "l560" targetname: "l560-3-nodes" label:"3...4"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-pure.vcg new file mode 100644 index 000000000..d291cd426 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3-pure.vcg @@ -0,0 +1,609 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m3" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n202" label: "Start 202" info1: "Start 202 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n202" targetname: "n201" class:2 priority:50 linestyle:dotted} +node: {title: "n205" label: "ProjX 0 205" info1: "Proj 205 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 201 + 0: Start 202 + Private Attributes: + in loop 556 with depth 0 +" +color: yellow} +edge: {sourcename: "n205" targetname: "n202" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n205" targetname: "n201" class:2 priority:50 linestyle:dotted} +node: {title: "n201" label: "Block 201" info1: "Block 201 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + 0: Proj 205 + Private Attributes: + backedges: + in loop 556 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n201" targetname: "n205" label: "0" class:13 priority:60 color:red} +node: {title: "n239" label: "SubIs 239" info1: "Sub 239 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Phi 254 + 1: 0x1 224 + Private Attributes: + in loop 557 with depth 1 +" +} +node: {title: "n239n224" label: "0x1Is 224" info1: "0x1 224 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n239" targetname: "n254" label: "0" class:16 priority:10} +edge: {sourcename: "n239" targetname: "n239n224" label: "1" class:16 priority:10} +edge: { sourcename: "n239" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n254" label: "PhiIs 254" info1: "Phi 254 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: 0xA 212 + 1: be Sub 239 + Private Attributes: + backedges: 1 + in loop 557 with depth 1 +" +color: green} +node: {title: "n254n212" label: "0xAIs 212" info1: "0xA 212 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n254" targetname: "n254n212" label: "0" class:16 priority:10} +backedge: {sourcename: "n254" targetname: "n239" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n254" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n218" label: "Cmp 218" info1: "Cmp 218 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: 0x0 217 + 1: Phi 254 + Private Attributes: + in loop 558 with depth 2 +" +} +node: {title: "n218n217" label: "0x0Is 217" info1: "0x0 217 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n218" targetname: "n218n217" label: "0" class:16 priority:10} +edge: {sourcename: "n218" targetname: "n254" label: "1" class:1 priority:50} +edge: { sourcename: "n218" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n219" label: "Projb Lt 219" info1: "Proj 219 + mode: b + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cmp 218 + Private Attributes: + in loop 558 with depth 2 +" +color: yellow} +edge: {sourcename: "n219" targetname: "n218" label: "0" class:1 priority:50} +edge: { sourcename: "n219" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n220" label: "Cond 220" info1: "Cond 220 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Proj 219 + Private Attributes: + in loop 558 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n220" targetname: "n219" label: "0" class:1 priority:50} +edge: { sourcename: "n220" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n222" label: "ProjX 1 222" info1: "Proj 222 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cond 220 + Private Attributes: + in loop 558 with depth 2 +" +color: yellow} +edge: {sourcename: "n222" targetname: "n220" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n222" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n223" label: "Block 223" info1: "Block 223 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + 0: Proj 222 + Private Attributes: + backedges: + in loop 558 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n223" targetname: "n222" label: "0" class:13 priority:60 color:red} +node: {title: "n240" label: "Jmp 240" info1: "Jmp 240 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 223 + Private Attributes: + in loop 558 with depth 2 +" +} +edge: { sourcename: "n240" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n211" label: "Block 211" info1: "Block 211 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + 0: Proj 205 + Private Attributes: + backedges: + in loop 556 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n211" targetname: "n205" label: "0" class:13 priority:60 color:red} +node: {title: "n214" label: "Jmp 214" info1: "Jmp 214 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 211 + Private Attributes: + in loop 556 with depth 0 +" +} +edge: { sourcename: "n214" targetname: "n211" class:2 priority:50 linestyle:dotted} +node: {title: "n215" label: "Block 215" info1: "Block 215 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + 0: Jmp 214 + 1: be Jmp 240 + Private Attributes: + backedges: 1 + in loop 558 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n215" targetname: "n214" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n215" targetname: "n240" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n221" label: "ProjX 0 221" info1: "Proj 221 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cond 220 + Private Attributes: + in loop 556 with depth 0 +" +color: yellow} +edge: {sourcename: "n221" targetname: "n220" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n221" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n246" label: "Block 246" info1: "Block 246 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + 0: Proj 221 + Private Attributes: + backedges: + in loop 556 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n246" targetname: "n221" label: "0" class:13 priority:60 color:red} +node: {title: "n228" label: "MulIs 228" info1: "Mul 228 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x4 225 + 1: Phi 254 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n228n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n228" targetname: "n228n225" label: "0" class:16 priority:10} +edge: {sourcename: "n228" targetname: "n254" label: "1" class:16 priority:10} +edge: { sourcename: "n228" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n230" label: "AddP 230" info1: "Add 230 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Mul 228 + 1: SymC &a 213 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n230n213" label: "SymC &a 213" info1: "SymC &a 213 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (197) + + type of value: type_unknown +" +} +edge: {sourcename: "n230" targetname: "n228" label: "0" class:1 priority:50} +edge: {sourcename: "n230" targetname: "n230n213" label: "1" class:16 priority:10} +edge: { sourcename: "n230" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n231" label: "AddP 231" info1: "Add 231 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x4 225 + 1: Add 230 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n231n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n231" targetname: "n231n225" label: "0" class:16 priority:10} +edge: {sourcename: "n231" targetname: "n230" label: "1" class:1 priority:50} +edge: { sourcename: "n231" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n232" label: "AddP 232" info1: "Add 232 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x8 226 + 1: Add 231 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n232n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n232" targetname: "n232n226" label: "0" class:16 priority:10} +edge: {sourcename: "n232" targetname: "n231" label: "1" class:1 priority:50} +edge: { sourcename: "n232" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n233" label: "AddP 233" info1: "Add 233 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x8 226 + 1: Add 232 + Private Attributes: + in loop 556 with depth 0 +" +} +node: {title: "n233n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n233" targetname: "n233n226" label: "0" class:16 priority:10} +edge: {sourcename: "n233" targetname: "n232" label: "1" class:1 priority:50} +edge: { sourcename: "n233" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n234" label: "AddP 234" info1: "Add 234 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Add 232 + 1: Add 233 + Private Attributes: + in loop 556 with depth 0 +" +} +edge: {sourcename: "n234" targetname: "n232" label: "0" class:1 priority:50} +edge: {sourcename: "n234" targetname: "n233" label: "1" class:1 priority:50} +edge: { sourcename: "n234" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n236" label: "Store 236" info1: "Store 236 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 3 + pred nodes: + -1: Block 223 + 0: Phi 253 + 1: Add 234 + 2: Phi 254 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 559 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n236" targetname: "n253" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n236" targetname: "n234" label: "1" class:1 priority:50} +edge: {sourcename: "n236" targetname: "n254" label: "2" class:16 priority:10} +edge: { sourcename: "n236" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n238" label: "ProjM 0 238" info1: "Proj 238 + mode: M + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 223 + 0: Store 236 + Private Attributes: + in loop 559 with depth 1 +" +color: yellow} +edge: {sourcename: "n238" targetname: "n236" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n238" targetname: "n223" class:2 priority:50 linestyle:dotted} +node: {title: "n208" label: "ProjM 1 208" info1: "Proj 208 + mode: M + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 201 + 0: Start 202 + Private Attributes: + in loop 556 with depth 0 +" +color: yellow} +edge: {sourcename: "n208" targetname: "n202" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n208" targetname: "n201" class:2 priority:50 linestyle:dotted} +node: {title: "n253" label: "PhiM 253" info1: "Phi 253 + mode: M + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: Proj 208 + 1: be Proj 238 + Private Attributes: + backedges: 1 + in loop 559 with depth 1 +" +color: green} +edge: {sourcename: "n253" targetname: "n208" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n253" targetname: "n238" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n253" targetname: "n215" class:2 priority:50 linestyle:dotted} +node: {title: "n249" label: "Return 249" info1: "Return 249 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 246 + 0: Phi 253 + 1: 0x4 225 + Private Attributes: + in loop 556 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n249n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + in loop 556 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n249" targetname: "n253" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n249" targetname: "n249n225" label: "1" class:16 priority:10} +edge: { sourcename: "n249" targetname: "n246" class:2 priority:50 linestyle:dotted} +node: {title: "n199" label: "Block 199" info1: "Block 199 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + 0: Return 249 + Private Attributes: + backedges: + in loop 556 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n199" targetname: "n249" label: "0" class:13 priority:60 color:red} +node: {title: "n200" label: "End 200" info1: "End 200 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 199 + 0: Phi 253 + Private Attributes: + in loop 556 with depth 0 +" +color: blue} +edge: { sourcename: "n200" targetname: "n199" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3.vcg new file mode 100644 index 000000000..ed0175e93 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m3.vcg @@ -0,0 +1,490 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m3" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g210" label: "LOOP_UNROLL_EXAMPLE_m3" status:clustered color:white +graph: { title: "n199" label: "Block 199" status:clustered color:yellow +edge: {sourcename: "n199" targetname: "n249" label: "0" class:13 priority:60 color:red} +node: {title: "n200" label: "End 200" info1: "End 200 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 199 + 0: Phi 253 + Private Attributes: +" +color: blue} +} + +graph: { title: "n246" label: "Block 246" status:clustered color:yellow +edge: {sourcename: "n246" targetname: "n221" label: "0" class:13 priority:60 color:red} +node: {title: "n249" label: "Return 249" info1: "Return 249 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 246 + 0: Phi 253 + 1: 0x4 225 + Private Attributes: + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n249n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n249" targetname: "n253" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n249" targetname: "n249n225" label: "1" class:16 priority:10} +} + +graph: { title: "n215" label: "Block 215" status:clustered color:yellow +edge: {sourcename: "n215" targetname: "n214" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n215" targetname: "n240" label: "1" class:13 priority:60 color:red} +node: {title: "n253" label: "PhiM 253" info1: "Phi 253 + mode: M + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: Proj 208 + 1: Proj 238 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n253" targetname: "n208" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n253" targetname: "n238" label: "1" class:17 priority:10 color:blue} +node: {title: "n221" label: "ProjX 0 221" info1: "Proj 221 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cond 220 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n221" targetname: "n220" label: "0" class:13 priority:60 color:red} +node: {title: "n222" label: "ProjX 1 222" info1: "Proj 222 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cond 220 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n222" targetname: "n220" label: "0" class:13 priority:60 color:red} +node: {title: "n220" label: "Cond 220" info1: "Cond 220 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Proj 219 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n220" targetname: "n219" label: "0" class:1 priority:50} +node: {title: "n219" label: "Projb Lt 219" info1: "Proj 219 + mode: b + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 215 + 0: Cmp 218 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n219" targetname: "n218" label: "0" class:1 priority:50} +node: {title: "n218" label: "Cmp 218" info1: "Cmp 218 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: 0x0 217 + 1: Phi 254 + Private Attributes: +" +} +node: {title: "n218n217" label: "0x0Is 217" info1: "0x0 217 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n218" targetname: "n218n217" label: "0" class:16 priority:10} +edge: {sourcename: "n218" targetname: "n254" label: "1" class:1 priority:50} +node: {title: "n254" label: "PhiIs 254" info1: "Phi 254 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 215 + 0: 0xA 212 + 1: Sub 239 + Private Attributes: + backedges: +" +color: green} +node: {title: "n254n212" label: "0xAIs 212" info1: "0xA 212 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n254" targetname: "n254n212" label: "0" class:16 priority:10} +edge: {sourcename: "n254" targetname: "n239" label: "1" class:16 priority:10} +} + +graph: { title: "n211" label: "Block 211" status:clustered color:yellow +edge: {sourcename: "n211" targetname: "n205" label: "0" class:13 priority:60 color:red} +node: {title: "n214" label: "Jmp 214" info1: "Jmp 214 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 211 + Private Attributes: +" +} +} + +graph: { title: "n223" label: "Block 223" status:clustered color:yellow +edge: {sourcename: "n223" targetname: "n222" label: "0" class:13 priority:60 color:red} +node: {title: "n238" label: "ProjM 0 238" info1: "Proj 238 + mode: M + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 223 + 0: Store 236 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n238" targetname: "n236" label: "0" class:17 priority:10 color:blue} +node: {title: "n236" label: "Store 236" info1: "Store 236 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 3 + pred nodes: + -1: Block 223 + 0: Phi 253 + 1: Add 234 + 2: Phi 254 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n236" targetname: "n253" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n236" targetname: "n234" label: "1" class:1 priority:50} +edge: {sourcename: "n236" targetname: "n254" label: "2" class:16 priority:10} +node: {title: "n234" label: "AddP 234" info1: "Add 234 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Add 232 + 1: Add 233 + Private Attributes: +" +} +edge: {sourcename: "n234" targetname: "n232" label: "0" class:1 priority:50} +edge: {sourcename: "n234" targetname: "n233" label: "1" class:1 priority:50} +node: {title: "n233" label: "AddP 233" info1: "Add 233 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x8 226 + 1: Add 232 + Private Attributes: +" +} +node: {title: "n233n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n233" targetname: "n233n226" label: "0" class:16 priority:10} +edge: {sourcename: "n233" targetname: "n232" label: "1" class:1 priority:50} +node: {title: "n232" label: "AddP 232" info1: "Add 232 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x8 226 + 1: Add 231 + Private Attributes: +" +} +node: {title: "n232n226" label: "0x8Is 226" info1: "0x8 226 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n232" targetname: "n232n226" label: "0" class:16 priority:10} +edge: {sourcename: "n232" targetname: "n231" label: "1" class:1 priority:50} +node: {title: "n231" label: "AddP 231" info1: "Add 231 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x4 225 + 1: Add 230 + Private Attributes: +" +} +node: {title: "n231n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n231" targetname: "n231n225" label: "0" class:16 priority:10} +edge: {sourcename: "n231" targetname: "n230" label: "1" class:1 priority:50} +node: {title: "n230" label: "AddP 230" info1: "Add 230 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Mul 228 + 1: SymC &a 213 + Private Attributes: +" +} +node: {title: "n230n213" label: "SymC &a 213" info1: "SymC &a 213 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (197) + + type of value: type_unknown +" +} +edge: {sourcename: "n230" targetname: "n228" label: "0" class:1 priority:50} +edge: {sourcename: "n230" targetname: "n230n213" label: "1" class:16 priority:10} +node: {title: "n228" label: "MulIs 228" info1: "Mul 228 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: 0x4 225 + 1: Phi 254 + Private Attributes: +" +} +node: {title: "n228n225" label: "0x4Is 225" info1: "0x4 225 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n228" targetname: "n228n225" label: "0" class:16 priority:10} +edge: {sourcename: "n228" targetname: "n254" label: "1" class:16 priority:10} +node: {title: "n240" label: "Jmp 240" info1: "Jmp 240 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 223 + Private Attributes: +" +} +node: {title: "n239" label: "SubIs 239" info1: "Sub 239 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 2 + pred nodes: + -1: Block 223 + 0: Phi 254 + 1: 0x1 224 + Private Attributes: +" +} +node: {title: "n239n224" label: "0x1Is 224" info1: "0x1 224 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n239" targetname: "n254" label: "0" class:16 priority:10} +edge: {sourcename: "n239" targetname: "n239n224" label: "1" class:16 priority:10} +} + +graph: { title: "n201" label: "Block 201" status:clustered color:yellow +edge: {sourcename: "n201" targetname: "n205" label: "0" class:13 priority:60 color:red} +node: {title: "n208" label: "ProjM 1 208" info1: "Proj 208 + mode: M + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 201 + 0: Start 202 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n208" targetname: "n202" label: "0" class:17 priority:10 color:blue} +node: {title: "n205" label: "ProjX 0 205" info1: "Proj 205 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 1 + pred nodes: + -1: Block 201 + 0: Start 202 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n205" targetname: "n202" label: "0" class:13 priority:60 color:red} +node: {title: "n202" label: "Start 202" info1: "Start 202 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m3 + arity: 0 + pred nodes: + -1: Block 201 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-loop-unrolling.vcg new file mode 100644 index 000000000..4a09963ec --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-loop-unrolling.vcg @@ -0,0 +1,1145 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m4" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g276" label: "LOOP_UNROLL_EXAMPLE_m4" status:clustered color:white +graph: { title: "n265" label: "Block 265" status:clustered color:yellow +edge: {sourcename: "n265" targetname: "n316" label: "0" class:13 priority:60 color:red} +node: {title: "n266" label: "End 266" info1: "End 266 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 265 + 0: Phi 320 + Private Attributes: + in loop 573 with depth 0 +" +color: blue} +} + +graph: { title: "n313" label: "Block 313" status:clustered color:yellow +edge: {sourcename: "n313" targetname: "n287" label: "0" class:13 priority:60 color:red} +node: {title: "n316" label: "Return 316" info1: "Return 316 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 313 + 0: Phi 320 + 1: 0x4 291 + Private Attributes: + in loop 573 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n316n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n316" targetname: "n320" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n316" targetname: "n316n291" label: "1" class:16 priority:10} +} + +graph: { title: "n281" label: "Block 281" status:clustered color:yellow +edge: {sourcename: "n281" targetname: "n280" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n281" targetname: "n608" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n320" label: "PhiM 320" info1: "Phi 320 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: Proj 274 + 1: Proj 605 + Private Attributes: + backedges: + in loop 576 with depth 1 +" +color: green} +edge: {sourcename: "n320" targetname: "n274" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n320" targetname: "n605" label: "1" class:17 priority:10 color:blue} +node: {title: "n287" label: "ProjX 0 287" info1: "Proj 287 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cond 286 + Private Attributes: + in loop 573 with depth 0 +" +color: yellow} +edge: {sourcename: "n287" targetname: "n286" label: "0" class:13 priority:60 color:red} +node: {title: "n288" label: "ProjX 1 288" info1: "Proj 288 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cond 286 + Private Attributes: + in loop 575 with depth 2 +" +color: yellow} +edge: {sourcename: "n288" targetname: "n286" label: "0" class:13 priority:60 color:red} +node: {title: "n286" label: "Cond 286" info1: "Cond 286 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Proj 285 + Private Attributes: + in loop 575 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n286" targetname: "n285" label: "0" class:1 priority:50} +node: {title: "n285" label: "Projb Ge 285" info1: "Proj 285 + mode: b + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cmp 284 + Private Attributes: + in loop 575 with depth 2 +" +color: yellow} +edge: {sourcename: "n285" targetname: "n284" label: "0" class:1 priority:50} +node: {title: "n284" label: "Cmp 284" info1: "Cmp 284 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: 0xB 283 + 1: Phi 321 + Private Attributes: + in loop 575 with depth 2 +" +} +node: {title: "n284n283" label: "0xBIs 283" info1: "0xB 283 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n284" targetname: "n284n283" label: "0" class:16 priority:10} +edge: {sourcename: "n284" targetname: "n321" label: "1" class:1 priority:50} +node: {title: "n321" label: "PhiIs 321" info1: "Phi 321 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: 0x0 278 + 1: Add 581 + Private Attributes: + backedges: + in loop 574 with depth 1 +" +color: green} +node: {title: "n321n278" label: "0x0Is 278" info1: "0x0 278 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n321" targetname: "n321n278" label: "0" class:16 priority:10} +edge: {sourcename: "n321" targetname: "n581" label: "1" class:16 priority:10} +} + +graph: { title: "n277" label: "Block 277" status:clustered color:yellow +edge: {sourcename: "n277" targetname: "n271" label: "0" class:13 priority:60 color:red} +node: {title: "n280" label: "Jmp 280" info1: "Jmp 280 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 277 + Private Attributes: + in loop 573 with depth 0 +" +} +} + +graph: { title: "n611" label: "Block 611" status:clustered color:yellow +edge: {sourcename: "n611" targetname: "n607" label: "0" class:13 priority:60 color:red} +node: {title: "n605" label: "ProjM 0 605" info1: "Proj 605 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 611 + 0: Store 602 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n605" targetname: "n602" label: "0" class:17 priority:10 color:blue} +node: {title: "n602" label: "Store 602" info1: "Store 602 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 611 + 0: Proj 593 + 1: Add 599 + 2: Add 581 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n602" targetname: "n593" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n602" targetname: "n599" label: "1" class:1 priority:50} +edge: {sourcename: "n602" targetname: "n581" label: "2" class:1 priority:50} +node: {title: "n593" label: "ProjM 0 593" info1: "Proj 593 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 611 + 0: Store 590 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n593" targetname: "n590" label: "0" class:17 priority:10 color:blue} +node: {title: "n590" label: "Store 590" info1: "Store 590 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 611 + 0: Proj 604 + 1: Add 587 + 2: Add 581 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n590" targetname: "n604" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n590" targetname: "n587" label: "1" class:1 priority:50} +edge: {sourcename: "n590" targetname: "n581" label: "2" class:1 priority:50} +node: {title: "n587" label: "AddP 587" info1: "Add 587 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 611 + 0: Mul 584 + 1: SymC &a 279 + Private Attributes: +" +} +node: {title: "n587n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n587" targetname: "n584" label: "0" class:1 priority:50} +edge: {sourcename: "n587" targetname: "n587n279" label: "1" class:16 priority:10} +node: {title: "n584" label: "MulIs 584" info1: "Mul 584 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 611 + 0: 0x8 292 + 1: Add 581 + Private Attributes: +" +} +node: {title: "n584n292" label: "0x8Is 292" info1: "0x8 292 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n584" targetname: "n584n292" label: "0" class:16 priority:10} +edge: {sourcename: "n584" targetname: "n581" label: "1" class:1 priority:50} +node: {title: "n599" label: "AddP 599" info1: "Add 599 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 611 + 0: SymC &a 279 + 1: Mul 596 + Private Attributes: +" +} +node: {title: "n599n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n599" targetname: "n599n279" label: "0" class:16 priority:10} +edge: {sourcename: "n599" targetname: "n596" label: "1" class:1 priority:50} +node: {title: "n596" label: "MulIs 596" info1: "Mul 596 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 611 + 0: 0x4 291 + 1: Add 581 + Private Attributes: +" +} +node: {title: "n596n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n596" targetname: "n596n291" label: "0" class:16 priority:10} +edge: {sourcename: "n596" targetname: "n581" label: "1" class:1 priority:50} +node: {title: "n608" label: "Jmp 608" info1: "Jmp 608 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 611 + Private Attributes: +" +} +node: {title: "n581" label: "AddIs 581" info1: "Add 581 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 611 + 0: 0x1 290 + 1: Add 580 + Private Attributes: +" +} +node: {title: "n581n290" label: "0x1Is 290" info1: "0x1 290 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n581" targetname: "n581n290" label: "0" class:16 priority:10} +edge: {sourcename: "n581" targetname: "n580" label: "1" class:16 priority:10} +} + +graph: { title: "n610" label: "Block 610" status:clustered color:yellow +edge: {sourcename: "n610" targetname: "n606" label: "0" class:13 priority:60 color:red} +node: {title: "n604" label: "ProjM 0 604" info1: "Proj 604 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 610 + 0: Store 601 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n604" targetname: "n601" label: "0" class:17 priority:10 color:blue} +node: {title: "n601" label: "Store 601" info1: "Store 601 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 610 + 0: Proj 592 + 1: Add 598 + 2: Add 580 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n601" targetname: "n592" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n601" targetname: "n598" label: "1" class:1 priority:50} +edge: {sourcename: "n601" targetname: "n580" label: "2" class:1 priority:50} +node: {title: "n592" label: "ProjM 0 592" info1: "Proj 592 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 610 + 0: Store 589 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n592" targetname: "n589" label: "0" class:17 priority:10 color:blue} +node: {title: "n589" label: "Store 589" info1: "Store 589 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 610 + 0: Proj 603 + 1: Add 586 + 2: Add 580 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n589" targetname: "n603" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n589" targetname: "n586" label: "1" class:1 priority:50} +edge: {sourcename: "n589" targetname: "n580" label: "2" class:1 priority:50} +node: {title: "n586" label: "AddP 586" info1: "Add 586 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 610 + 0: Mul 583 + 1: SymC &a 279 + Private Attributes: +" +} +node: {title: "n586n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n586" targetname: "n583" label: "0" class:1 priority:50} +edge: {sourcename: "n586" targetname: "n586n279" label: "1" class:16 priority:10} +node: {title: "n583" label: "MulIs 583" info1: "Mul 583 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 610 + 0: 0x8 292 + 1: Add 580 + Private Attributes: +" +} +node: {title: "n583n292" label: "0x8Is 292" info1: "0x8 292 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n583" targetname: "n583n292" label: "0" class:16 priority:10} +edge: {sourcename: "n583" targetname: "n580" label: "1" class:1 priority:50} +node: {title: "n598" label: "AddP 598" info1: "Add 598 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 610 + 0: SymC &a 279 + 1: Mul 595 + Private Attributes: +" +} +node: {title: "n598n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n598" targetname: "n598n279" label: "0" class:16 priority:10} +edge: {sourcename: "n598" targetname: "n595" label: "1" class:1 priority:50} +node: {title: "n595" label: "MulIs 595" info1: "Mul 595 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 610 + 0: 0x4 291 + 1: Add 580 + Private Attributes: +" +} +node: {title: "n595n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n595" targetname: "n595n291" label: "0" class:16 priority:10} +edge: {sourcename: "n595" targetname: "n580" label: "1" class:1 priority:50} +node: {title: "n607" label: "Jmp 607" info1: "Jmp 607 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 610 + Private Attributes: +" +} +node: {title: "n580" label: "AddIs 580" info1: "Add 580 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 610 + 0: 0x1 290 + 1: Add 579 + Private Attributes: +" +} +node: {title: "n580n290" label: "0x1Is 290" info1: "0x1 290 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n580" targetname: "n580n290" label: "0" class:16 priority:10} +edge: {sourcename: "n580" targetname: "n579" label: "1" class:16 priority:10} +} + +graph: { title: "n609" label: "Block 609" status:clustered color:yellow +edge: {sourcename: "n609" targetname: "n307" label: "0" class:13 priority:60 color:red} +node: {title: "n603" label: "ProjM 0 603" info1: "Proj 603 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 609 + 0: Store 600 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n603" targetname: "n600" label: "0" class:17 priority:10 color:blue} +node: {title: "n600" label: "Store 600" info1: "Store 600 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 609 + 0: Proj 591 + 1: Add 597 + 2: Add 579 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n600" targetname: "n591" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n600" targetname: "n597" label: "1" class:1 priority:50} +edge: {sourcename: "n600" targetname: "n579" label: "2" class:1 priority:50} +node: {title: "n591" label: "ProjM 0 591" info1: "Proj 591 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 609 + 0: Store 588 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n591" targetname: "n588" label: "0" class:17 priority:10 color:blue} +node: {title: "n588" label: "Store 588" info1: "Store 588 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 609 + 0: Proj 306 + 1: Add 585 + 2: Add 579 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n588" targetname: "n306" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n588" targetname: "n585" label: "1" class:1 priority:50} +edge: {sourcename: "n588" targetname: "n579" label: "2" class:1 priority:50} +node: {title: "n585" label: "AddP 585" info1: "Add 585 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 609 + 0: Mul 582 + 1: SymC &a 279 + Private Attributes: +" +} +node: {title: "n585n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n585" targetname: "n582" label: "0" class:1 priority:50} +edge: {sourcename: "n585" targetname: "n585n279" label: "1" class:16 priority:10} +node: {title: "n582" label: "MulIs 582" info1: "Mul 582 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 609 + 0: 0x8 292 + 1: Add 579 + Private Attributes: +" +} +node: {title: "n582n292" label: "0x8Is 292" info1: "0x8 292 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n582" targetname: "n582n292" label: "0" class:16 priority:10} +edge: {sourcename: "n582" targetname: "n579" label: "1" class:1 priority:50} +node: {title: "n597" label: "AddP 597" info1: "Add 597 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 609 + 0: SymC &a 279 + 1: Mul 594 + Private Attributes: +" +} +node: {title: "n597n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n597" targetname: "n597n279" label: "0" class:16 priority:10} +edge: {sourcename: "n597" targetname: "n594" label: "1" class:1 priority:50} +node: {title: "n594" label: "MulIs 594" info1: "Mul 594 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 609 + 0: 0x4 291 + 1: Add 579 + Private Attributes: +" +} +node: {title: "n594n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n594" targetname: "n594n291" label: "0" class:16 priority:10} +edge: {sourcename: "n594" targetname: "n579" label: "1" class:1 priority:50} +node: {title: "n606" label: "Jmp 606" info1: "Jmp 606 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 609 + Private Attributes: +" +} +node: {title: "n579" label: "AddIs 579" info1: "Add 579 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 609 + 0: 0x1 290 + 1: Add 294 + Private Attributes: +" +} +node: {title: "n579n290" label: "0x1Is 290" info1: "0x1 290 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n579" targetname: "n579n290" label: "0" class:16 priority:10} +edge: {sourcename: "n579" targetname: "n294" label: "1" class:16 priority:10} +} + +graph: { title: "n289" label: "Block 289" status:clustered color:yellow +edge: {sourcename: "n289" targetname: "n288" label: "0" class:13 priority:60 color:red} +node: {title: "n306" label: "ProjM 0 306" info1: "Proj 306 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 289 + 0: Store 304 + Private Attributes: + in loop 576 with depth 1 +" +color: yellow} +edge: {sourcename: "n306" targetname: "n304" label: "0" class:17 priority:10 color:blue} +node: {title: "n304" label: "Store 304" info1: "Store 304 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 289 + 0: Proj 301 + 1: Add 303 + 2: Add 294 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 576 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n304" targetname: "n301" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n304" targetname: "n303" label: "1" class:1 priority:50} +edge: {sourcename: "n304" targetname: "n294" label: "2" class:1 priority:50} +node: {title: "n301" label: "ProjM 0 301" info1: "Proj 301 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 289 + 0: Store 299 + Private Attributes: + in loop 576 with depth 1 +" +color: yellow} +edge: {sourcename: "n301" targetname: "n299" label: "0" class:17 priority:10 color:blue} +node: {title: "n299" label: "Store 299" info1: "Store 299 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 289 + 0: Phi 320 + 1: Add 297 + 2: Add 294 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 576 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n299" targetname: "n320" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n299" targetname: "n297" label: "1" class:1 priority:50} +edge: {sourcename: "n299" targetname: "n294" label: "2" class:1 priority:50} +node: {title: "n297" label: "AddP 297" info1: "Add 297 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: Mul 295 + 1: SymC &a 279 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n297n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n297" targetname: "n295" label: "0" class:1 priority:50} +edge: {sourcename: "n297" targetname: "n297n279" label: "1" class:16 priority:10} +node: {title: "n295" label: "MulIs 295" info1: "Mul 295 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x8 292 + 1: Add 294 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n295n292" label: "0x8Is 292" info1: "0x8 292 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n295" targetname: "n295n292" label: "0" class:16 priority:10} +edge: {sourcename: "n295" targetname: "n294" label: "1" class:1 priority:50} +node: {title: "n303" label: "AddP 303" info1: "Add 303 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: SymC &a 279 + 1: Mul 302 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n303n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n303" targetname: "n303n279" label: "0" class:16 priority:10} +edge: {sourcename: "n303" targetname: "n302" label: "1" class:1 priority:50} +node: {title: "n302" label: "MulIs 302" info1: "Mul 302 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x4 291 + 1: Add 294 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n302n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n302" targetname: "n302n291" label: "0" class:16 priority:10} +edge: {sourcename: "n302" targetname: "n294" label: "1" class:1 priority:50} +node: {title: "n307" label: "Jmp 307" info1: "Jmp 307 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 289 + Private Attributes: + in loop 575 with depth 2 +" +} +node: {title: "n294" label: "AddIs 294" info1: "Add 294 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x1 290 + 1: Phi 321 + Private Attributes: + in loop 574 with depth 1 +" +} +node: {title: "n294n290" label: "0x1Is 290" info1: "0x1 290 + mode: Is + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n294" targetname: "n294n290" label: "0" class:16 priority:10} +edge: {sourcename: "n294" targetname: "n321" label: "1" class:16 priority:10} +} + +graph: { title: "n267" label: "Block 267" status:clustered color:yellow +edge: {sourcename: "n267" targetname: "n271" label: "0" class:13 priority:60 color:red} +node: {title: "n274" label: "ProjM 1 274" info1: "Proj 274 + mode: M + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 267 + 0: Start 268 + Private Attributes: + in loop 573 with depth 0 +" +color: yellow} +edge: {sourcename: "n274" targetname: "n268" label: "0" class:17 priority:10 color:blue} +node: {title: "n271" label: "ProjX 0 271" info1: "Proj 271 + mode: X + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 267 + 0: Start 268 + Private Attributes: + in loop 573 with depth 0 +" +color: yellow} +edge: {sourcename: "n271" targetname: "n268" label: "0" class:13 priority:60 color:red} +node: {title: "n268" label: "Start 268" info1: "Start 268 + mode: T + visited: 32 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-looptree.vcg new file mode 100644 index 000000000..e355c8ceb --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-looptree.vcg @@ -0,0 +1,69 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m4" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l577" label: "loop 0, 1 sons, 4 nodes" info1: " loop nr: 577 + The loop was analyzed 0 times."} +node: { title: "l577-0-nodes" color: lightyellow label: "Block 267 +Block 277" } +edge: {sourcename: "l577" targetname: "l577-0-nodes" label:"0...1"} +edge: {sourcename: "l577" targetname: "l578" color: darkgreen label: "2"} +node: {title: "l578" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 578 + The loop was analyzed 0 times."} +node: { title: "l578-0-nodes" color: lightyellow label: "Block 281 loop head! +Block 289" } +edge: {sourcename: "l578" targetname: "l578-0-nodes" label:"0...1"} +node: { title: "l577-3-nodes" color: lightyellow label: "Block 313 +Block 265" } +edge: {sourcename: "l577" targetname: "l577-3-nodes" label:"3...4"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-pure.vcg new file mode 100644 index 000000000..50278577c --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4-pure.vcg @@ -0,0 +1,602 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m4" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n268" label: "Start 268" info1: "Start 268 + mode: T + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n268" targetname: "n267" class:2 priority:50 linestyle:dotted} +node: {title: "n271" label: "ProjX 0 271" info1: "Proj 271 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 267 + 0: Start 268 + Private Attributes: + in loop 573 with depth 0 +" +color: yellow} +edge: {sourcename: "n271" targetname: "n268" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n271" targetname: "n267" class:2 priority:50 linestyle:dotted} +node: {title: "n267" label: "Block 267" info1: "Block 267 + mode: BB + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + 0: Proj 271 + Private Attributes: + backedges: + in loop 573 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n267" targetname: "n271" label: "0" class:13 priority:60 color:red} +node: {title: "n294" label: "AddIs 294" info1: "Add 294 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x1 290 + 1: Phi 321 + Private Attributes: + in loop 574 with depth 1 +" +} +node: {title: "n294n290" label: "0x1Is 290" info1: "0x1 290 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n294" targetname: "n294n290" label: "0" class:16 priority:10} +edge: {sourcename: "n294" targetname: "n321" label: "1" class:16 priority:10} +edge: { sourcename: "n294" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n321" label: "PhiIs 321" info1: "Phi 321 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: 0x0 278 + 1: be Add 294 + Private Attributes: + backedges: 1 + in loop 574 with depth 1 +" +color: green} +node: {title: "n321n278" label: "0x0Is 278" info1: "0x0 278 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n321" targetname: "n321n278" label: "0" class:16 priority:10} +backedge: {sourcename: "n321" targetname: "n294" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n321" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n284" label: "Cmp 284" info1: "Cmp 284 + mode: T + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: 0xB 283 + 1: Phi 321 + Private Attributes: + in loop 575 with depth 2 +" +} +node: {title: "n284n283" label: "0xBIs 283" info1: "0xB 283 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n284" targetname: "n284n283" label: "0" class:16 priority:10} +edge: {sourcename: "n284" targetname: "n321" label: "1" class:1 priority:50} +edge: { sourcename: "n284" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n285" label: "Projb Ge 285" info1: "Proj 285 + mode: b + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cmp 284 + Private Attributes: + in loop 575 with depth 2 +" +color: yellow} +edge: {sourcename: "n285" targetname: "n284" label: "0" class:1 priority:50} +edge: { sourcename: "n285" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n286" label: "Cond 286" info1: "Cond 286 + mode: T + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Proj 285 + Private Attributes: + in loop 575 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n286" targetname: "n285" label: "0" class:1 priority:50} +edge: { sourcename: "n286" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n288" label: "ProjX 1 288" info1: "Proj 288 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cond 286 + Private Attributes: + in loop 575 with depth 2 +" +color: yellow} +edge: {sourcename: "n288" targetname: "n286" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n288" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n289" label: "Block 289" info1: "Block 289 + mode: BB + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + 0: Proj 288 + Private Attributes: + backedges: + in loop 575 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n289" targetname: "n288" label: "0" class:13 priority:60 color:red} +node: {title: "n307" label: "Jmp 307" info1: "Jmp 307 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 289 + Private Attributes: + in loop 575 with depth 2 +" +} +edge: { sourcename: "n307" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n277" label: "Block 277" info1: "Block 277 + mode: BB + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + 0: Proj 271 + Private Attributes: + backedges: + in loop 573 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n277" targetname: "n271" label: "0" class:13 priority:60 color:red} +node: {title: "n280" label: "Jmp 280" info1: "Jmp 280 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 277 + Private Attributes: + in loop 573 with depth 0 +" +} +edge: { sourcename: "n280" targetname: "n277" class:2 priority:50 linestyle:dotted} +node: {title: "n281" label: "Block 281" info1: "Block 281 + mode: BB + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + 0: Jmp 280 + 1: be Jmp 307 + Private Attributes: + backedges: 1 + in loop 575 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n281" targetname: "n280" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n281" targetname: "n307" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n287" label: "ProjX 0 287" info1: "Proj 287 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cond 286 + Private Attributes: + in loop 573 with depth 0 +" +color: yellow} +edge: {sourcename: "n287" targetname: "n286" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n287" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n313" label: "Block 313" info1: "Block 313 + mode: BB + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + 0: Proj 287 + Private Attributes: + backedges: + in loop 573 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n313" targetname: "n287" label: "0" class:13 priority:60 color:red} +node: {title: "n302" label: "MulIs 302" info1: "Mul 302 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x4 291 + 1: Add 294 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n302n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n302" targetname: "n302n291" label: "0" class:16 priority:10} +edge: {sourcename: "n302" targetname: "n294" label: "1" class:1 priority:50} +edge: { sourcename: "n302" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n303" label: "AddP 303" info1: "Add 303 + mode: P + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: SymC &a 279 + 1: Mul 302 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n303n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n303" targetname: "n303n279" label: "0" class:16 priority:10} +edge: {sourcename: "n303" targetname: "n302" label: "1" class:1 priority:50} +edge: { sourcename: "n303" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n295" label: "MulIs 295" info1: "Mul 295 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x8 292 + 1: Add 294 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n295n292" label: "0x8Is 292" info1: "0x8 292 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n295" targetname: "n295n292" label: "0" class:16 priority:10} +edge: {sourcename: "n295" targetname: "n294" label: "1" class:1 priority:50} +edge: { sourcename: "n295" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n297" label: "AddP 297" info1: "Add 297 + mode: P + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: Mul 295 + 1: SymC &a 279 + Private Attributes: + in loop 573 with depth 0 +" +} +node: {title: "n297n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n297" targetname: "n295" label: "0" class:1 priority:50} +edge: {sourcename: "n297" targetname: "n297n279" label: "1" class:16 priority:10} +edge: { sourcename: "n297" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n299" label: "Store 299" info1: "Store 299 + mode: T + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 289 + 0: Phi 320 + 1: Add 297 + 2: Add 294 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 576 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n299" targetname: "n320" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n299" targetname: "n297" label: "1" class:1 priority:50} +edge: {sourcename: "n299" targetname: "n294" label: "2" class:1 priority:50} +edge: { sourcename: "n299" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n301" label: "ProjM 0 301" info1: "Proj 301 + mode: M + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 289 + 0: Store 299 + Private Attributes: + in loop 576 with depth 1 +" +color: yellow} +edge: {sourcename: "n301" targetname: "n299" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n301" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n304" label: "Store 304" info1: "Store 304 + mode: T + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 289 + 0: Proj 301 + 1: Add 303 + 2: Add 294 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 576 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n304" targetname: "n301" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n304" targetname: "n303" label: "1" class:1 priority:50} +edge: {sourcename: "n304" targetname: "n294" label: "2" class:1 priority:50} +edge: { sourcename: "n304" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n306" label: "ProjM 0 306" info1: "Proj 306 + mode: M + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 289 + 0: Store 304 + Private Attributes: + in loop 576 with depth 1 +" +color: yellow} +edge: {sourcename: "n306" targetname: "n304" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n306" targetname: "n289" class:2 priority:50 linestyle:dotted} +node: {title: "n274" label: "ProjM 1 274" info1: "Proj 274 + mode: M + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 267 + 0: Start 268 + Private Attributes: + in loop 573 with depth 0 +" +color: yellow} +edge: {sourcename: "n274" targetname: "n268" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n274" targetname: "n267" class:2 priority:50 linestyle:dotted} +node: {title: "n320" label: "PhiM 320" info1: "Phi 320 + mode: M + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: Proj 274 + 1: be Proj 306 + Private Attributes: + backedges: 1 + in loop 576 with depth 1 +" +color: green} +edge: {sourcename: "n320" targetname: "n274" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n320" targetname: "n306" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n320" targetname: "n281" class:2 priority:50 linestyle:dotted} +node: {title: "n316" label: "Return 316" info1: "Return 316 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 313 + 0: Phi 320 + 1: 0x4 291 + Private Attributes: + in loop 573 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n316n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + in loop 573 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n316" targetname: "n320" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n316" targetname: "n316n291" label: "1" class:16 priority:10} +edge: { sourcename: "n316" targetname: "n313" class:2 priority:50 linestyle:dotted} +node: {title: "n265" label: "Block 265" info1: "Block 265 + mode: BB + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + 0: Return 316 + Private Attributes: + backedges: + in loop 573 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n265" targetname: "n316" label: "0" class:13 priority:60 color:red} +node: {title: "n266" label: "End 266" info1: "End 266 + mode: X + visited: 22 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 265 + 0: Phi 320 + Private Attributes: + in loop 573 with depth 0 +" +color: blue} +edge: { sourcename: "n266" targetname: "n265" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4.vcg new file mode 100644 index 000000000..021b41ec5 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m4.vcg @@ -0,0 +1,484 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m4" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g276" label: "LOOP_UNROLL_EXAMPLE_m4" status:clustered color:white +graph: { title: "n265" label: "Block 265" status:clustered color:yellow +edge: {sourcename: "n265" targetname: "n316" label: "0" class:13 priority:60 color:red} +node: {title: "n266" label: "End 266" info1: "End 266 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 265 + 0: Phi 320 + Private Attributes: +" +color: blue} +} + +graph: { title: "n313" label: "Block 313" status:clustered color:yellow +edge: {sourcename: "n313" targetname: "n287" label: "0" class:13 priority:60 color:red} +node: {title: "n316" label: "Return 316" info1: "Return 316 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 313 + 0: Phi 320 + 1: 0x4 291 + Private Attributes: + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n316n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n316" targetname: "n320" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n316" targetname: "n316n291" label: "1" class:16 priority:10} +} + +graph: { title: "n281" label: "Block 281" status:clustered color:yellow +edge: {sourcename: "n281" targetname: "n280" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n281" targetname: "n307" label: "1" class:13 priority:60 color:red} +node: {title: "n320" label: "PhiM 320" info1: "Phi 320 + mode: M + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: Proj 274 + 1: Proj 306 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n320" targetname: "n274" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n320" targetname: "n306" label: "1" class:17 priority:10 color:blue} +node: {title: "n287" label: "ProjX 0 287" info1: "Proj 287 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cond 286 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n287" targetname: "n286" label: "0" class:13 priority:60 color:red} +node: {title: "n288" label: "ProjX 1 288" info1: "Proj 288 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cond 286 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n288" targetname: "n286" label: "0" class:13 priority:60 color:red} +node: {title: "n286" label: "Cond 286" info1: "Cond 286 + mode: T + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Proj 285 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n286" targetname: "n285" label: "0" class:1 priority:50} +node: {title: "n285" label: "Projb Ge 285" info1: "Proj 285 + mode: b + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 281 + 0: Cmp 284 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n285" targetname: "n284" label: "0" class:1 priority:50} +node: {title: "n284" label: "Cmp 284" info1: "Cmp 284 + mode: T + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: 0xB 283 + 1: Phi 321 + Private Attributes: +" +} +node: {title: "n284n283" label: "0xBIs 283" info1: "0xB 283 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n284" targetname: "n284n283" label: "0" class:16 priority:10} +edge: {sourcename: "n284" targetname: "n321" label: "1" class:1 priority:50} +node: {title: "n321" label: "PhiIs 321" info1: "Phi 321 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 281 + 0: 0x0 278 + 1: Add 294 + Private Attributes: + backedges: +" +color: green} +node: {title: "n321n278" label: "0x0Is 278" info1: "0x0 278 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n321" targetname: "n321n278" label: "0" class:16 priority:10} +edge: {sourcename: "n321" targetname: "n294" label: "1" class:16 priority:10} +} + +graph: { title: "n277" label: "Block 277" status:clustered color:yellow +edge: {sourcename: "n277" targetname: "n271" label: "0" class:13 priority:60 color:red} +node: {title: "n280" label: "Jmp 280" info1: "Jmp 280 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 277 + Private Attributes: +" +} +} + +graph: { title: "n289" label: "Block 289" status:clustered color:yellow +edge: {sourcename: "n289" targetname: "n288" label: "0" class:13 priority:60 color:red} +node: {title: "n306" label: "ProjM 0 306" info1: "Proj 306 + mode: M + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 289 + 0: Store 304 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n306" targetname: "n304" label: "0" class:17 priority:10 color:blue} +node: {title: "n304" label: "Store 304" info1: "Store 304 + mode: T + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 289 + 0: Proj 301 + 1: Add 303 + 2: Add 294 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n304" targetname: "n301" label: "0" class:14 priority:50 color:blue} +edge: {sourcename: "n304" targetname: "n303" label: "1" class:1 priority:50} +edge: {sourcename: "n304" targetname: "n294" label: "2" class:1 priority:50} +node: {title: "n301" label: "ProjM 0 301" info1: "Proj 301 + mode: M + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 289 + 0: Store 299 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n301" targetname: "n299" label: "0" class:17 priority:10 color:blue} +node: {title: "n299" label: "Store 299" info1: "Store 299 + mode: T + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 3 + pred nodes: + -1: Block 289 + 0: Phi 320 + 1: Add 297 + 2: Add 294 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n299" targetname: "n320" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n299" targetname: "n297" label: "1" class:1 priority:50} +edge: {sourcename: "n299" targetname: "n294" label: "2" class:1 priority:50} +node: {title: "n297" label: "AddP 297" info1: "Add 297 + mode: P + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: Mul 295 + 1: SymC &a 279 + Private Attributes: +" +} +node: {title: "n297n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n297" targetname: "n295" label: "0" class:1 priority:50} +edge: {sourcename: "n297" targetname: "n297n279" label: "1" class:16 priority:10} +node: {title: "n295" label: "MulIs 295" info1: "Mul 295 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x8 292 + 1: Add 294 + Private Attributes: +" +} +node: {title: "n295n292" label: "0x8Is 292" info1: "0x8 292 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n295" targetname: "n295n292" label: "0" class:16 priority:10} +edge: {sourcename: "n295" targetname: "n294" label: "1" class:1 priority:50} +node: {title: "n303" label: "AddP 303" info1: "Add 303 + mode: P + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: SymC &a 279 + 1: Mul 302 + Private Attributes: +" +} +node: {title: "n303n279" label: "SymC &a 279" info1: "SymC &a 279 + mode: P + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (263) + + type of value: type_unknown +" +} +edge: {sourcename: "n303" targetname: "n303n279" label: "0" class:16 priority:10} +edge: {sourcename: "n303" targetname: "n302" label: "1" class:1 priority:50} +node: {title: "n302" label: "MulIs 302" info1: "Mul 302 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x4 291 + 1: Add 294 + Private Attributes: +" +} +node: {title: "n302n291" label: "0x4Is 291" info1: "0x4 291 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n302" targetname: "n302n291" label: "0" class:16 priority:10} +edge: {sourcename: "n302" targetname: "n294" label: "1" class:1 priority:50} +node: {title: "n307" label: "Jmp 307" info1: "Jmp 307 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 289 + Private Attributes: +" +} +node: {title: "n294" label: "AddIs 294" info1: "Add 294 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 2 + pred nodes: + -1: Block 289 + 0: 0x1 290 + 1: Phi 321 + Private Attributes: +" +} +node: {title: "n294n290" label: "0x1Is 290" info1: "0x1 290 + mode: Is + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n294" targetname: "n294n290" label: "0" class:16 priority:10} +edge: {sourcename: "n294" targetname: "n321" label: "1" class:16 priority:10} +} + +graph: { title: "n267" label: "Block 267" status:clustered color:yellow +edge: {sourcename: "n267" targetname: "n271" label: "0" class:13 priority:60 color:red} +node: {title: "n274" label: "ProjM 1 274" info1: "Proj 274 + mode: M + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 267 + 0: Start 268 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n274" targetname: "n268" label: "0" class:17 priority:10 color:blue} +node: {title: "n271" label: "ProjX 0 271" info1: "Proj 271 + mode: X + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 1 + pred nodes: + -1: Block 267 + 0: Start 268 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n271" targetname: "n268" label: "0" class:13 priority:60 color:red} +node: {title: "n268" label: "Start 268" info1: "Start 268 + mode: T + visited: 19 + irg: LOOP_UNROLL_EXAMPLE_m4 + arity: 0 + pred nodes: + -1: Block 267 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-loop-unrolling.vcg new file mode 100644 index 000000000..882a4aed3 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-loop-unrolling.vcg @@ -0,0 +1,681 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m5" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g343" label: "LOOP_UNROLL_EXAMPLE_m5" status:clustered color:white +graph: { title: "n332" label: "Block 332" status:clustered color:yellow +edge: {sourcename: "n332" targetname: "n382" label: "0" class:13 priority:60 color:red} +node: {title: "n333" label: "End 333" info1: "End 333 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 332 + 0: Phi 386 + Private Attributes: + in loop 612 with depth 0 +" +color: blue} +} + +graph: { title: "n379" label: "Block 379" status:clustered color:yellow +edge: {sourcename: "n379" targetname: "n354" label: "0" class:13 priority:60 color:red} +node: {title: "n382" label: "Return 382" info1: "Return 382 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 379 + 0: Phi 386 + 1: 0x4 358 + Private Attributes: + in loop 612 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n382n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n382" targetname: "n386" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n382" targetname: "n382n358" label: "1" class:16 priority:10} +} + +graph: { title: "n348" label: "Block 348" status:clustered color:yellow +edge: {sourcename: "n348" targetname: "n347" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n348" targetname: "n625" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n386" label: "PhiM 386" info1: "Phi 386 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: Proj 341 + 1: Proj 624 + Private Attributes: + backedges: + in loop 615 with depth 1 +" +color: green} +edge: {sourcename: "n386" targetname: "n341" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n386" targetname: "n624" label: "1" class:17 priority:10 color:blue} +node: {title: "n354" label: "ProjX 0 354" info1: "Proj 354 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cond 353 + Private Attributes: + in loop 612 with depth 0 +" +color: yellow} +edge: {sourcename: "n354" targetname: "n353" label: "0" class:13 priority:60 color:red} +node: {title: "n355" label: "ProjX 1 355" info1: "Proj 355 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cond 353 + Private Attributes: + in loop 614 with depth 2 +" +color: yellow} +edge: {sourcename: "n355" targetname: "n353" label: "0" class:13 priority:60 color:red} +node: {title: "n353" label: "Cond 353" info1: "Cond 353 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Proj 352 + Private Attributes: + in loop 614 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n353" targetname: "n352" label: "0" class:1 priority:50} +node: {title: "n352" label: "Projb Lt 352" info1: "Proj 352 + mode: b + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cmp 351 + Private Attributes: + in loop 614 with depth 2 +" +color: yellow} +edge: {sourcename: "n352" targetname: "n351" label: "0" class:1 priority:50} +node: {title: "n351" label: "Cmp 351" info1: "Cmp 351 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: 0x0 350 + 1: Phi 387 + Private Attributes: + in loop 614 with depth 2 +" +} +node: {title: "n351n350" label: "0x0Is 350" info1: "0x0 350 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n351" targetname: "n351n350" label: "0" class:16 priority:10} +edge: {sourcename: "n351" targetname: "n387" label: "1" class:1 priority:50} +node: {title: "n387" label: "PhiIs 387" info1: "Phi 387 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: 0xA 345 + 1: Sub 618 + Private Attributes: + backedges: + in loop 613 with depth 1 +" +color: green} +node: {title: "n387n345" label: "0xAIs 345" info1: "0xA 345 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n387" targetname: "n387n345" label: "0" class:16 priority:10} +edge: {sourcename: "n387" targetname: "n618" label: "1" class:16 priority:10} +} + +graph: { title: "n344" label: "Block 344" status:clustered color:yellow +edge: {sourcename: "n344" targetname: "n338" label: "0" class:13 priority:60 color:red} +node: {title: "n347" label: "Jmp 347" info1: "Jmp 347 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 344 + Private Attributes: + in loop 612 with depth 0 +" +} +} + +graph: { title: "n626" label: "Block 626" status:clustered color:yellow +edge: {sourcename: "n626" targetname: "n373" label: "0" class:13 priority:60 color:red} +node: {title: "n624" label: "ProjM 0 624" info1: "Proj 624 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 626 + 0: Store 623 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n624" targetname: "n623" label: "0" class:17 priority:10 color:blue} +node: {title: "n623" label: "Store 623" info1: "Store 623 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 3 + pred nodes: + -1: Block 626 + 0: Proj 372 + 1: Add 622 + 2: 0x13 368 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n623n368" label: "0x13Is 368" info1: "0x13 368 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n623" targetname: "n372" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n623" targetname: "n622" label: "1" class:1 priority:50} +edge: {sourcename: "n623" targetname: "n623n368" label: "2" class:16 priority:10} +node: {title: "n622" label: "AddP 622" info1: "Add 622 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 626 + 0: 0x5 362 + 1: Add 621 + Private Attributes: +" +} +node: {title: "n622n362" label: "0x5Is 362" info1: "0x5 362 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n622" targetname: "n622n362" label: "0" class:16 priority:10} +edge: {sourcename: "n622" targetname: "n621" label: "1" class:1 priority:50} +node: {title: "n621" label: "AddP 621" info1: "Add 621 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 626 + 0: 0x4 358 + 1: Add 620 + Private Attributes: +" +} +node: {title: "n621n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n621" targetname: "n621n358" label: "0" class:16 priority:10} +edge: {sourcename: "n621" targetname: "n620" label: "1" class:1 priority:50} +node: {title: "n620" label: "AddP 620" info1: "Add 620 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 626 + 0: Mul 619 + 1: SymC &a 346 + Private Attributes: +" +} +node: {title: "n620n346" label: "SymC &a 346" info1: "SymC &a 346 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (330) + + type of value: type_unknown +" +} +edge: {sourcename: "n620" targetname: "n619" label: "0" class:1 priority:50} +edge: {sourcename: "n620" targetname: "n620n346" label: "1" class:16 priority:10} +node: {title: "n619" label: "MulIs 619" info1: "Mul 619 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 626 + 0: 0x4 358 + 1: Sub 618 + Private Attributes: +" +} +node: {title: "n619n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n619" targetname: "n619n358" label: "0" class:16 priority:10} +edge: {sourcename: "n619" targetname: "n618" label: "1" class:1 priority:50} +node: {title: "n625" label: "Jmp 625" info1: "Jmp 625 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 626 + Private Attributes: +" +} +node: {title: "n618" label: "SubIs 618" info1: "Sub 618 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 626 + 0: Sub 360 + 1: 0x1 357 + Private Attributes: +" +} +node: {title: "n618n357" label: "0x1Is 357" info1: "0x1 357 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n618" targetname: "n360" label: "0" class:16 priority:10} +edge: {sourcename: "n618" targetname: "n618n357" label: "1" class:16 priority:10} +} + +graph: { title: "n356" label: "Block 356" status:clustered color:yellow +edge: {sourcename: "n356" targetname: "n355" label: "0" class:13 priority:60 color:red} +node: {title: "n372" label: "ProjM 0 372" info1: "Proj 372 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 356 + 0: Store 370 + Private Attributes: + in loop 615 with depth 1 +" +color: yellow} +edge: {sourcename: "n372" targetname: "n370" label: "0" class:17 priority:10 color:blue} +node: {title: "n370" label: "Store 370" info1: "Store 370 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 3 + pred nodes: + -1: Block 356 + 0: Phi 386 + 1: Add 367 + 2: 0x13 368 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 615 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n370n368" label: "0x13Is 368" info1: "0x13 368 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n370" targetname: "n386" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n370" targetname: "n367" label: "1" class:1 priority:50} +edge: {sourcename: "n370" targetname: "n370n368" label: "2" class:16 priority:10} +node: {title: "n367" label: "AddP 367" info1: "Add 367 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x5 362 + 1: Add 366 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n367n362" label: "0x5Is 362" info1: "0x5 362 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n367" targetname: "n367n362" label: "0" class:16 priority:10} +edge: {sourcename: "n367" targetname: "n366" label: "1" class:1 priority:50} +node: {title: "n366" label: "AddP 366" info1: "Add 366 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x4 358 + 1: Add 365 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n366n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n366" targetname: "n366n358" label: "0" class:16 priority:10} +edge: {sourcename: "n366" targetname: "n365" label: "1" class:1 priority:50} +node: {title: "n365" label: "AddP 365" info1: "Add 365 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: Mul 363 + 1: SymC &a 346 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n365n346" label: "SymC &a 346" info1: "SymC &a 346 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (330) + + type of value: type_unknown +" +} +edge: {sourcename: "n365" targetname: "n363" label: "0" class:1 priority:50} +edge: {sourcename: "n365" targetname: "n365n346" label: "1" class:16 priority:10} +node: {title: "n363" label: "MulIs 363" info1: "Mul 363 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x4 358 + 1: Sub 360 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n363n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n363" targetname: "n363n358" label: "0" class:16 priority:10} +edge: {sourcename: "n363" targetname: "n360" label: "1" class:1 priority:50} +node: {title: "n373" label: "Jmp 373" info1: "Jmp 373 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 356 + Private Attributes: + in loop 614 with depth 2 +" +} +node: {title: "n360" label: "SubIs 360" info1: "Sub 360 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: Phi 387 + 1: 0x1 357 + Private Attributes: + in loop 613 with depth 1 +" +} +node: {title: "n360n357" label: "0x1Is 357" info1: "0x1 357 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n360" targetname: "n387" label: "0" class:16 priority:10} +edge: {sourcename: "n360" targetname: "n360n357" label: "1" class:16 priority:10} +} + +graph: { title: "n334" label: "Block 334" status:clustered color:yellow +edge: {sourcename: "n334" targetname: "n338" label: "0" class:13 priority:60 color:red} +node: {title: "n341" label: "ProjM 1 341" info1: "Proj 341 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 334 + 0: Start 335 + Private Attributes: + in loop 612 with depth 0 +" +color: yellow} +edge: {sourcename: "n341" targetname: "n335" label: "0" class:17 priority:10 color:blue} +node: {title: "n338" label: "ProjX 0 338" info1: "Proj 338 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 334 + 0: Start 335 + Private Attributes: + in loop 612 with depth 0 +" +color: yellow} +edge: {sourcename: "n338" targetname: "n335" label: "0" class:13 priority:60 color:red} +node: {title: "n335" label: "Start 335" info1: "Start 335 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-looptree.vcg new file mode 100644 index 000000000..6374ee1cc --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-looptree.vcg @@ -0,0 +1,69 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m5" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l616" label: "loop 0, 1 sons, 4 nodes" info1: " loop nr: 616 + The loop was analyzed 0 times."} +node: { title: "l616-0-nodes" color: lightyellow label: "Block 334 +Block 344" } +edge: {sourcename: "l616" targetname: "l616-0-nodes" label:"0...1"} +edge: {sourcename: "l616" targetname: "l617" color: darkgreen label: "2"} +node: {title: "l617" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 617 + The loop was analyzed 0 times."} +node: { title: "l617-0-nodes" color: lightyellow label: "Block 348 loop head! +Block 356" } +edge: {sourcename: "l617" targetname: "l617-0-nodes" label:"0...1"} +node: { title: "l616-3-nodes" color: lightyellow label: "Block 379 +Block 332" } +edge: {sourcename: "l616" targetname: "l616-3-nodes" label:"3...4"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-pure.vcg new file mode 100644 index 000000000..915398cb1 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5-pure.vcg @@ -0,0 +1,577 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m5" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n335" label: "Start 335" info1: "Start 335 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n335" targetname: "n334" class:2 priority:50 linestyle:dotted} +node: {title: "n338" label: "ProjX 0 338" info1: "Proj 338 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 334 + 0: Start 335 + Private Attributes: + in loop 612 with depth 0 +" +color: yellow} +edge: {sourcename: "n338" targetname: "n335" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n338" targetname: "n334" class:2 priority:50 linestyle:dotted} +node: {title: "n334" label: "Block 334" info1: "Block 334 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + 0: Proj 338 + Private Attributes: + backedges: + in loop 612 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n334" targetname: "n338" label: "0" class:13 priority:60 color:red} +node: {title: "n360" label: "SubIs 360" info1: "Sub 360 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: Phi 387 + 1: 0x1 357 + Private Attributes: + in loop 613 with depth 1 +" +} +node: {title: "n360n357" label: "0x1Is 357" info1: "0x1 357 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n360" targetname: "n387" label: "0" class:16 priority:10} +edge: {sourcename: "n360" targetname: "n360n357" label: "1" class:16 priority:10} +edge: { sourcename: "n360" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n387" label: "PhiIs 387" info1: "Phi 387 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: 0xA 345 + 1: be Sub 360 + Private Attributes: + backedges: 1 + in loop 613 with depth 1 +" +color: green} +node: {title: "n387n345" label: "0xAIs 345" info1: "0xA 345 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n387" targetname: "n387n345" label: "0" class:16 priority:10} +backedge: {sourcename: "n387" targetname: "n360" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n387" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n351" label: "Cmp 351" info1: "Cmp 351 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: 0x0 350 + 1: Phi 387 + Private Attributes: + in loop 614 with depth 2 +" +} +node: {title: "n351n350" label: "0x0Is 350" info1: "0x0 350 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n351" targetname: "n351n350" label: "0" class:16 priority:10} +edge: {sourcename: "n351" targetname: "n387" label: "1" class:1 priority:50} +edge: { sourcename: "n351" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n352" label: "Projb Lt 352" info1: "Proj 352 + mode: b + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cmp 351 + Private Attributes: + in loop 614 with depth 2 +" +color: yellow} +edge: {sourcename: "n352" targetname: "n351" label: "0" class:1 priority:50} +edge: { sourcename: "n352" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n353" label: "Cond 353" info1: "Cond 353 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Proj 352 + Private Attributes: + in loop 614 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n353" targetname: "n352" label: "0" class:1 priority:50} +edge: { sourcename: "n353" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n355" label: "ProjX 1 355" info1: "Proj 355 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cond 353 + Private Attributes: + in loop 614 with depth 2 +" +color: yellow} +edge: {sourcename: "n355" targetname: "n353" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n355" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n356" label: "Block 356" info1: "Block 356 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + 0: Proj 355 + Private Attributes: + backedges: + in loop 614 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n356" targetname: "n355" label: "0" class:13 priority:60 color:red} +node: {title: "n373" label: "Jmp 373" info1: "Jmp 373 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 356 + Private Attributes: + in loop 614 with depth 2 +" +} +edge: { sourcename: "n373" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n344" label: "Block 344" info1: "Block 344 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + 0: Proj 338 + Private Attributes: + backedges: + in loop 612 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n344" targetname: "n338" label: "0" class:13 priority:60 color:red} +node: {title: "n347" label: "Jmp 347" info1: "Jmp 347 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 344 + Private Attributes: + in loop 612 with depth 0 +" +} +edge: { sourcename: "n347" targetname: "n344" class:2 priority:50 linestyle:dotted} +node: {title: "n348" label: "Block 348" info1: "Block 348 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + 0: Jmp 347 + 1: be Jmp 373 + Private Attributes: + backedges: 1 + in loop 614 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n348" targetname: "n347" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n348" targetname: "n373" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n354" label: "ProjX 0 354" info1: "Proj 354 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cond 353 + Private Attributes: + in loop 612 with depth 0 +" +color: yellow} +edge: {sourcename: "n354" targetname: "n353" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n354" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n379" label: "Block 379" info1: "Block 379 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + 0: Proj 354 + Private Attributes: + backedges: + in loop 612 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n379" targetname: "n354" label: "0" class:13 priority:60 color:red} +node: {title: "n363" label: "MulIs 363" info1: "Mul 363 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x4 358 + 1: Sub 360 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n363n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n363" targetname: "n363n358" label: "0" class:16 priority:10} +edge: {sourcename: "n363" targetname: "n360" label: "1" class:1 priority:50} +edge: { sourcename: "n363" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n365" label: "AddP 365" info1: "Add 365 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: Mul 363 + 1: SymC &a 346 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n365n346" label: "SymC &a 346" info1: "SymC &a 346 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (330) + + type of value: type_unknown +" +} +edge: {sourcename: "n365" targetname: "n363" label: "0" class:1 priority:50} +edge: {sourcename: "n365" targetname: "n365n346" label: "1" class:16 priority:10} +edge: { sourcename: "n365" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n366" label: "AddP 366" info1: "Add 366 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x4 358 + 1: Add 365 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n366n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n366" targetname: "n366n358" label: "0" class:16 priority:10} +edge: {sourcename: "n366" targetname: "n365" label: "1" class:1 priority:50} +edge: { sourcename: "n366" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n367" label: "AddP 367" info1: "Add 367 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x5 362 + 1: Add 366 + Private Attributes: + in loop 612 with depth 0 +" +} +node: {title: "n367n362" label: "0x5Is 362" info1: "0x5 362 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n367" targetname: "n367n362" label: "0" class:16 priority:10} +edge: {sourcename: "n367" targetname: "n366" label: "1" class:1 priority:50} +edge: { sourcename: "n367" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n370" label: "Store 370" info1: "Store 370 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 3 + pred nodes: + -1: Block 356 + 0: Phi 386 + 1: Add 367 + 2: 0x13 368 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 615 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n370n368" label: "0x13Is 368" info1: "0x13 368 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n370" targetname: "n386" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n370" targetname: "n367" label: "1" class:1 priority:50} +edge: {sourcename: "n370" targetname: "n370n368" label: "2" class:16 priority:10} +edge: { sourcename: "n370" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n372" label: "ProjM 0 372" info1: "Proj 372 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 356 + 0: Store 370 + Private Attributes: + in loop 615 with depth 1 +" +color: yellow} +edge: {sourcename: "n372" targetname: "n370" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n372" targetname: "n356" class:2 priority:50 linestyle:dotted} +node: {title: "n341" label: "ProjM 1 341" info1: "Proj 341 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 334 + 0: Start 335 + Private Attributes: + in loop 612 with depth 0 +" +color: yellow} +edge: {sourcename: "n341" targetname: "n335" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n341" targetname: "n334" class:2 priority:50 linestyle:dotted} +node: {title: "n386" label: "PhiM 386" info1: "Phi 386 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: Proj 341 + 1: be Proj 372 + Private Attributes: + backedges: 1 + in loop 615 with depth 1 +" +color: green} +edge: {sourcename: "n386" targetname: "n341" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n386" targetname: "n372" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n386" targetname: "n348" class:2 priority:50 linestyle:dotted} +node: {title: "n382" label: "Return 382" info1: "Return 382 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 379 + 0: Phi 386 + 1: 0x4 358 + Private Attributes: + in loop 612 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n382n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + in loop 612 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n382" targetname: "n386" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n382" targetname: "n382n358" label: "1" class:16 priority:10} +edge: { sourcename: "n382" targetname: "n379" class:2 priority:50 linestyle:dotted} +node: {title: "n332" label: "Block 332" info1: "Block 332 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + 0: Return 382 + Private Attributes: + backedges: + in loop 612 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n332" targetname: "n382" label: "0" class:13 priority:60 color:red} +node: {title: "n333" label: "End 333" info1: "End 333 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 332 + 0: Phi 386 + Private Attributes: + in loop 612 with depth 0 +" +color: blue} +edge: { sourcename: "n333" targetname: "n332" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5.vcg new file mode 100644 index 000000000..f86cb98de --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m5.vcg @@ -0,0 +1,462 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m5" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g343" label: "LOOP_UNROLL_EXAMPLE_m5" status:clustered color:white +graph: { title: "n332" label: "Block 332" status:clustered color:yellow +edge: {sourcename: "n332" targetname: "n382" label: "0" class:13 priority:60 color:red} +node: {title: "n333" label: "End 333" info1: "End 333 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 332 + 0: Phi 386 + Private Attributes: +" +color: blue} +} + +graph: { title: "n379" label: "Block 379" status:clustered color:yellow +edge: {sourcename: "n379" targetname: "n354" label: "0" class:13 priority:60 color:red} +node: {title: "n382" label: "Return 382" info1: "Return 382 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 379 + 0: Phi 386 + 1: 0x4 358 + Private Attributes: + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n382n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n382" targetname: "n386" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n382" targetname: "n382n358" label: "1" class:16 priority:10} +} + +graph: { title: "n348" label: "Block 348" status:clustered color:yellow +edge: {sourcename: "n348" targetname: "n347" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n348" targetname: "n373" label: "1" class:13 priority:60 color:red} +node: {title: "n386" label: "PhiM 386" info1: "Phi 386 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: Proj 341 + 1: Proj 372 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n386" targetname: "n341" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n386" targetname: "n372" label: "1" class:17 priority:10 color:blue} +node: {title: "n354" label: "ProjX 0 354" info1: "Proj 354 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cond 353 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n354" targetname: "n353" label: "0" class:13 priority:60 color:red} +node: {title: "n355" label: "ProjX 1 355" info1: "Proj 355 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cond 353 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n355" targetname: "n353" label: "0" class:13 priority:60 color:red} +node: {title: "n353" label: "Cond 353" info1: "Cond 353 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Proj 352 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n353" targetname: "n352" label: "0" class:1 priority:50} +node: {title: "n352" label: "Projb Lt 352" info1: "Proj 352 + mode: b + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 348 + 0: Cmp 351 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n352" targetname: "n351" label: "0" class:1 priority:50} +node: {title: "n351" label: "Cmp 351" info1: "Cmp 351 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: 0x0 350 + 1: Phi 387 + Private Attributes: +" +} +node: {title: "n351n350" label: "0x0Is 350" info1: "0x0 350 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n351" targetname: "n351n350" label: "0" class:16 priority:10} +edge: {sourcename: "n351" targetname: "n387" label: "1" class:1 priority:50} +node: {title: "n387" label: "PhiIs 387" info1: "Phi 387 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 348 + 0: 0xA 345 + 1: Sub 360 + Private Attributes: + backedges: +" +color: green} +node: {title: "n387n345" label: "0xAIs 345" info1: "0xA 345 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n387" targetname: "n387n345" label: "0" class:16 priority:10} +edge: {sourcename: "n387" targetname: "n360" label: "1" class:16 priority:10} +} + +graph: { title: "n344" label: "Block 344" status:clustered color:yellow +edge: {sourcename: "n344" targetname: "n338" label: "0" class:13 priority:60 color:red} +node: {title: "n347" label: "Jmp 347" info1: "Jmp 347 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 344 + Private Attributes: +" +} +} + +graph: { title: "n356" label: "Block 356" status:clustered color:yellow +edge: {sourcename: "n356" targetname: "n355" label: "0" class:13 priority:60 color:red} +node: {title: "n372" label: "ProjM 0 372" info1: "Proj 372 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 356 + 0: Store 370 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n372" targetname: "n370" label: "0" class:17 priority:10 color:blue} +node: {title: "n370" label: "Store 370" info1: "Store 370 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 3 + pred nodes: + -1: Block 356 + 0: Phi 386 + 1: Add 367 + 2: 0x13 368 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n370n368" label: "0x13Is 368" info1: "0x13 368 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n370" targetname: "n386" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n370" targetname: "n367" label: "1" class:1 priority:50} +edge: {sourcename: "n370" targetname: "n370n368" label: "2" class:16 priority:10} +node: {title: "n367" label: "AddP 367" info1: "Add 367 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x5 362 + 1: Add 366 + Private Attributes: +" +} +node: {title: "n367n362" label: "0x5Is 362" info1: "0x5 362 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n367" targetname: "n367n362" label: "0" class:16 priority:10} +edge: {sourcename: "n367" targetname: "n366" label: "1" class:1 priority:50} +node: {title: "n366" label: "AddP 366" info1: "Add 366 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x4 358 + 1: Add 365 + Private Attributes: +" +} +node: {title: "n366n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n366" targetname: "n366n358" label: "0" class:16 priority:10} +edge: {sourcename: "n366" targetname: "n365" label: "1" class:1 priority:50} +node: {title: "n365" label: "AddP 365" info1: "Add 365 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: Mul 363 + 1: SymC &a 346 + Private Attributes: +" +} +node: {title: "n365n346" label: "SymC &a 346" info1: "SymC &a 346 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (330) + + type of value: type_unknown +" +} +edge: {sourcename: "n365" targetname: "n363" label: "0" class:1 priority:50} +edge: {sourcename: "n365" targetname: "n365n346" label: "1" class:16 priority:10} +node: {title: "n363" label: "MulIs 363" info1: "Mul 363 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: 0x4 358 + 1: Sub 360 + Private Attributes: +" +} +node: {title: "n363n358" label: "0x4Is 358" info1: "0x4 358 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n363" targetname: "n363n358" label: "0" class:16 priority:10} +edge: {sourcename: "n363" targetname: "n360" label: "1" class:1 priority:50} +node: {title: "n373" label: "Jmp 373" info1: "Jmp 373 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 356 + Private Attributes: +" +} +node: {title: "n360" label: "SubIs 360" info1: "Sub 360 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 2 + pred nodes: + -1: Block 356 + 0: Phi 387 + 1: 0x1 357 + Private Attributes: +" +} +node: {title: "n360n357" label: "0x1Is 357" info1: "0x1 357 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n360" targetname: "n387" label: "0" class:16 priority:10} +edge: {sourcename: "n360" targetname: "n360n357" label: "1" class:16 priority:10} +} + +graph: { title: "n334" label: "Block 334" status:clustered color:yellow +edge: {sourcename: "n334" targetname: "n338" label: "0" class:13 priority:60 color:red} +node: {title: "n341" label: "ProjM 1 341" info1: "Proj 341 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 334 + 0: Start 335 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n341" targetname: "n335" label: "0" class:17 priority:10 color:blue} +node: {title: "n338" label: "ProjX 0 338" info1: "Proj 338 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 1 + pred nodes: + -1: Block 334 + 0: Start 335 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n338" targetname: "n335" label: "0" class:13 priority:60 color:red} +node: {title: "n335" label: "Start 335" info1: "Start 335 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m5 + arity: 0 + pred nodes: + -1: Block 334 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-loop-unrolling.vcg new file mode 100644 index 000000000..219e6a938 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-loop-unrolling.vcg @@ -0,0 +1,1164 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m6" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g409" label: "LOOP_UNROLL_EXAMPLE_m6" status:clustered color:white +graph: { title: "n398" label: "Block 398" status:clustered color:yellow +edge: {sourcename: "n398" targetname: "n448" label: "0" class:13 priority:60 color:red} +node: {title: "n399" label: "End 399" info1: "End 399 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 398 + 0: Phi 452 + Private Attributes: + in loop 627 with depth 0 +" +color: blue} +} + +graph: { title: "n445" label: "Block 445" status:clustered color:yellow +edge: {sourcename: "n445" targetname: "n420" label: "0" class:13 priority:60 color:red} +node: {title: "n448" label: "Return 448" info1: "Return 448 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 445 + 0: Phi 452 + 1: 0x4 425 + Private Attributes: + in loop 627 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n448n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n448" targetname: "n452" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n448" targetname: "n448n425" label: "1" class:16 priority:10} +} + +graph: { title: "n414" label: "Block 414" status:clustered color:yellow +edge: {sourcename: "n414" targetname: "n413" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n414" targetname: "n662" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n452" label: "PhiM 452" info1: "Phi 452 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: Proj 407 + 1: Proj 659 + Private Attributes: + backedges: + in loop 630 with depth 1 +" +color: green} +edge: {sourcename: "n452" targetname: "n407" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n452" targetname: "n659" label: "1" class:17 priority:10 color:blue} +node: {title: "n420" label: "ProjX 0 420" info1: "Proj 420 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cond 419 + Private Attributes: + in loop 627 with depth 0 +" +color: yellow} +edge: {sourcename: "n420" targetname: "n419" label: "0" class:13 priority:60 color:red} +node: {title: "n421" label: "ProjX 1 421" info1: "Proj 421 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cond 419 + Private Attributes: + in loop 629 with depth 2 +" +color: yellow} +edge: {sourcename: "n421" targetname: "n419" label: "0" class:13 priority:60 color:red} +node: {title: "n419" label: "Cond 419" info1: "Cond 419 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Proj 418 + Private Attributes: + in loop 629 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n419" targetname: "n418" label: "0" class:1 priority:50} +node: {title: "n418" label: "Projb Ge 418" info1: "Proj 418 + mode: b + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cmp 417 + Private Attributes: + in loop 629 with depth 2 +" +color: yellow} +edge: {sourcename: "n418" targetname: "n417" label: "0" class:1 priority:50} +node: {title: "n417" label: "Cmp 417" info1: "Cmp 417 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: 0xB 416 + 1: Phi 453 + Private Attributes: + in loop 629 with depth 2 +" +} +node: {title: "n417n416" label: "0xBIs 416" info1: "0xB 416 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n417" targetname: "n417n416" label: "0" class:16 priority:10} +edge: {sourcename: "n417" targetname: "n453" label: "1" class:1 priority:50} +node: {title: "n453" label: "PhiIs 453" info1: "Phi 453 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: 0x0 411 + 1: Sub 638 + Private Attributes: + backedges: + in loop 628 with depth 1 +" +color: green} +node: {title: "n453n411" label: "0x0Is 411" info1: "0x0 411 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n453" targetname: "n453n411" label: "0" class:16 priority:10} +edge: {sourcename: "n453" targetname: "n638" label: "1" class:16 priority:10} +} + +graph: { title: "n410" label: "Block 410" status:clustered color:yellow +edge: {sourcename: "n410" targetname: "n404" label: "0" class:13 priority:60 color:red} +node: {title: "n413" label: "Jmp 413" info1: "Jmp 413 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 410 + Private Attributes: + in loop 627 with depth 0 +" +} +} + +graph: { title: "n635" label: "Block 635" status:clustered color:yellow +edge: {sourcename: "n635" targetname: "n661" label: "0" class:13 priority:60 color:red} +node: {title: "n659" label: "ProjM 0 659" info1: "Proj 659 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 635 + 0: Store 656 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n659" targetname: "n656" label: "0" class:17 priority:10 color:blue} +node: {title: "n656" label: "Store 656" info1: "Store 656 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 3 + pred nodes: + -1: Block 635 + 0: Proj 658 + 1: Add 653 + 2: 0x13 434 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n656n434" label: "0x13Is 434" info1: "0x13 434 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n656" targetname: "n658" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n656" targetname: "n653" label: "1" class:1 priority:50} +edge: {sourcename: "n656" targetname: "n656n434" label: "2" class:16 priority:10} +node: {title: "n653" label: "AddP 653" info1: "Add 653 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 635 + 0: 0x4 425 + 1: Add 650 + Private Attributes: +" +} +node: {title: "n653n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n653" targetname: "n653n425" label: "0" class:16 priority:10} +edge: {sourcename: "n653" targetname: "n650" label: "1" class:1 priority:50} +node: {title: "n650" label: "AddP 650" info1: "Add 650 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 635 + 0: 0x4 425 + 1: Sub 647 + Private Attributes: +" +} +node: {title: "n650n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n650" targetname: "n650n425" label: "0" class:16 priority:10} +edge: {sourcename: "n650" targetname: "n647" label: "1" class:1 priority:50} +node: {title: "n647" label: "SubP 647" info1: "Sub 647 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 635 + 0: 0x5 424 + 1: Add 644 + Private Attributes: +" +} +node: {title: "n647n424" label: "0x5Is 424" info1: "0x5 424 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n647" targetname: "n647n424" label: "0" class:16 priority:10} +edge: {sourcename: "n647" targetname: "n644" label: "1" class:1 priority:50} +node: {title: "n644" label: "AddP 644" info1: "Add 644 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 635 + 0: Mul 641 + 1: SymC &a 412 + Private Attributes: +" +} +node: {title: "n644n412" label: "SymC &a 412" info1: "SymC &a 412 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (396) + + type of value: type_unknown +" +} +edge: {sourcename: "n644" targetname: "n641" label: "0" class:1 priority:50} +edge: {sourcename: "n644" targetname: "n644n412" label: "1" class:16 priority:10} +node: {title: "n641" label: "MulIs 641" info1: "Mul 641 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 635 + 0: 0x4 425 + 1: Sub 638 + Private Attributes: +" +} +node: {title: "n641n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n641" targetname: "n641n425" label: "0" class:16 priority:10} +edge: {sourcename: "n641" targetname: "n638" label: "1" class:1 priority:50} +node: {title: "n662" label: "Jmp 662" info1: "Jmp 662 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 635 + Private Attributes: +" +} +node: {title: "n638" label: "SubIs 638" info1: "Sub 638 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 635 + 0: Sub 637 + 1: 0x1 423 + Private Attributes: +" +} +node: {title: "n638n423" label: "0x1Is 423" info1: "0x1 423 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n638" targetname: "n637" label: "0" class:16 priority:10} +edge: {sourcename: "n638" targetname: "n638n423" label: "1" class:16 priority:10} +} + +graph: { title: "n634" label: "Block 634" status:clustered color:yellow +edge: {sourcename: "n634" targetname: "n660" label: "0" class:13 priority:60 color:red} +node: {title: "n658" label: "ProjM 0 658" info1: "Proj 658 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 634 + 0: Store 655 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n658" targetname: "n655" label: "0" class:17 priority:10 color:blue} +node: {title: "n655" label: "Store 655" info1: "Store 655 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 3 + pred nodes: + -1: Block 634 + 0: Proj 657 + 1: Add 652 + 2: 0x13 434 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n655n434" label: "0x13Is 434" info1: "0x13 434 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n655" targetname: "n657" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n655" targetname: "n652" label: "1" class:1 priority:50} +edge: {sourcename: "n655" targetname: "n655n434" label: "2" class:16 priority:10} +node: {title: "n652" label: "AddP 652" info1: "Add 652 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 634 + 0: 0x4 425 + 1: Add 649 + Private Attributes: +" +} +node: {title: "n652n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n652" targetname: "n652n425" label: "0" class:16 priority:10} +edge: {sourcename: "n652" targetname: "n649" label: "1" class:1 priority:50} +node: {title: "n649" label: "AddP 649" info1: "Add 649 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 634 + 0: 0x4 425 + 1: Sub 646 + Private Attributes: +" +} +node: {title: "n649n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n649" targetname: "n649n425" label: "0" class:16 priority:10} +edge: {sourcename: "n649" targetname: "n646" label: "1" class:1 priority:50} +node: {title: "n646" label: "SubP 646" info1: "Sub 646 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 634 + 0: 0x5 424 + 1: Add 643 + Private Attributes: +" +} +node: {title: "n646n424" label: "0x5Is 424" info1: "0x5 424 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n646" targetname: "n646n424" label: "0" class:16 priority:10} +edge: {sourcename: "n646" targetname: "n643" label: "1" class:1 priority:50} +node: {title: "n643" label: "AddP 643" info1: "Add 643 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 634 + 0: Mul 640 + 1: SymC &a 412 + Private Attributes: +" +} +node: {title: "n643n412" label: "SymC &a 412" info1: "SymC &a 412 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (396) + + type of value: type_unknown +" +} +edge: {sourcename: "n643" targetname: "n640" label: "0" class:1 priority:50} +edge: {sourcename: "n643" targetname: "n643n412" label: "1" class:16 priority:10} +node: {title: "n640" label: "MulIs 640" info1: "Mul 640 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 634 + 0: 0x4 425 + 1: Sub 637 + Private Attributes: +" +} +node: {title: "n640n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n640" targetname: "n640n425" label: "0" class:16 priority:10} +edge: {sourcename: "n640" targetname: "n637" label: "1" class:1 priority:50} +node: {title: "n661" label: "Jmp 661" info1: "Jmp 661 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 634 + Private Attributes: +" +} +node: {title: "n637" label: "SubIs 637" info1: "Sub 637 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 634 + 0: Sub 636 + 1: 0x1 423 + Private Attributes: +" +} +node: {title: "n637n423" label: "0x1Is 423" info1: "0x1 423 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n637" targetname: "n636" label: "0" class:16 priority:10} +edge: {sourcename: "n637" targetname: "n637n423" label: "1" class:16 priority:10} +} + +graph: { title: "n633" label: "Block 633" status:clustered color:yellow +edge: {sourcename: "n633" targetname: "n439" label: "0" class:13 priority:60 color:red} +node: {title: "n657" label: "ProjM 0 657" info1: "Proj 657 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 633 + 0: Store 654 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n657" targetname: "n654" label: "0" class:17 priority:10 color:blue} +node: {title: "n654" label: "Store 654" info1: "Store 654 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 3 + pred nodes: + -1: Block 633 + 0: Proj 438 + 1: Add 651 + 2: 0x13 434 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n654n434" label: "0x13Is 434" info1: "0x13 434 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n654" targetname: "n438" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n654" targetname: "n651" label: "1" class:1 priority:50} +edge: {sourcename: "n654" targetname: "n654n434" label: "2" class:16 priority:10} +node: {title: "n651" label: "AddP 651" info1: "Add 651 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 633 + 0: 0x4 425 + 1: Add 648 + Private Attributes: +" +} +node: {title: "n651n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n651" targetname: "n651n425" label: "0" class:16 priority:10} +edge: {sourcename: "n651" targetname: "n648" label: "1" class:1 priority:50} +node: {title: "n648" label: "AddP 648" info1: "Add 648 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 633 + 0: 0x4 425 + 1: Sub 645 + Private Attributes: +" +} +node: {title: "n648n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n648" targetname: "n648n425" label: "0" class:16 priority:10} +edge: {sourcename: "n648" targetname: "n645" label: "1" class:1 priority:50} +node: {title: "n645" label: "SubP 645" info1: "Sub 645 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 633 + 0: 0x5 424 + 1: Add 642 + Private Attributes: +" +} +node: {title: "n645n424" label: "0x5Is 424" info1: "0x5 424 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n645" targetname: "n645n424" label: "0" class:16 priority:10} +edge: {sourcename: "n645" targetname: "n642" label: "1" class:1 priority:50} +node: {title: "n642" label: "AddP 642" info1: "Add 642 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 633 + 0: Mul 639 + 1: SymC &a 412 + Private Attributes: +" +} +node: {title: "n642n412" label: "SymC &a 412" info1: "SymC &a 412 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (396) + + type of value: type_unknown +" +} +edge: {sourcename: "n642" targetname: "n639" label: "0" class:1 priority:50} +edge: {sourcename: "n642" targetname: "n642n412" label: "1" class:16 priority:10} +node: {title: "n639" label: "MulIs 639" info1: "Mul 639 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 633 + 0: 0x4 425 + 1: Sub 636 + Private Attributes: +" +} +node: {title: "n639n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n639" targetname: "n639n425" label: "0" class:16 priority:10} +edge: {sourcename: "n639" targetname: "n636" label: "1" class:1 priority:50} +node: {title: "n660" label: "Jmp 660" info1: "Jmp 660 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 633 + Private Attributes: +" +} +node: {title: "n636" label: "SubIs 636" info1: "Sub 636 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 633 + 0: Sub 427 + 1: 0x1 423 + Private Attributes: +" +} +node: {title: "n636n423" label: "0x1Is 423" info1: "0x1 423 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n636" targetname: "n427" label: "0" class:16 priority:10} +edge: {sourcename: "n636" targetname: "n636n423" label: "1" class:16 priority:10} +} + +graph: { title: "n422" label: "Block 422" status:clustered color:yellow +edge: {sourcename: "n422" targetname: "n421" label: "0" class:13 priority:60 color:red} +node: {title: "n438" label: "ProjM 0 438" info1: "Proj 438 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 422 + 0: Store 436 + Private Attributes: + in loop 630 with depth 1 +" +color: yellow} +edge: {sourcename: "n438" targetname: "n436" label: "0" class:17 priority:10 color:blue} +node: {title: "n436" label: "Store 436" info1: "Store 436 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 3 + pred nodes: + -1: Block 422 + 0: Phi 452 + 1: Add 433 + 2: 0x13 434 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 630 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n436n434" label: "0x13Is 434" info1: "0x13 434 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n436" targetname: "n452" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n436" targetname: "n433" label: "1" class:1 priority:50} +edge: {sourcename: "n436" targetname: "n436n434" label: "2" class:16 priority:10} +node: {title: "n433" label: "AddP 433" info1: "Add 433 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Add 432 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n433n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n433" targetname: "n433n425" label: "0" class:16 priority:10} +edge: {sourcename: "n433" targetname: "n432" label: "1" class:1 priority:50} +node: {title: "n432" label: "AddP 432" info1: "Add 432 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Sub 431 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n432n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n432" targetname: "n432n425" label: "0" class:16 priority:10} +edge: {sourcename: "n432" targetname: "n431" label: "1" class:1 priority:50} +node: {title: "n431" label: "SubP 431" info1: "Sub 431 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x5 424 + 1: Add 430 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n431n424" label: "0x5Is 424" info1: "0x5 424 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n431" targetname: "n431n424" label: "0" class:16 priority:10} +edge: {sourcename: "n431" targetname: "n430" label: "1" class:1 priority:50} +node: {title: "n430" label: "AddP 430" info1: "Add 430 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: Mul 428 + 1: SymC &a 412 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n430n412" label: "SymC &a 412" info1: "SymC &a 412 + mode: P + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (396) + + type of value: type_unknown +" +} +edge: {sourcename: "n430" targetname: "n428" label: "0" class:1 priority:50} +edge: {sourcename: "n430" targetname: "n430n412" label: "1" class:16 priority:10} +node: {title: "n428" label: "MulIs 428" info1: "Mul 428 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Sub 427 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n428n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n428" targetname: "n428n425" label: "0" class:16 priority:10} +edge: {sourcename: "n428" targetname: "n427" label: "1" class:1 priority:50} +node: {title: "n439" label: "Jmp 439" info1: "Jmp 439 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 422 + Private Attributes: + in loop 629 with depth 2 +" +} +node: {title: "n427" label: "SubIs 427" info1: "Sub 427 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: Phi 453 + 1: 0x1 423 + Private Attributes: + in loop 628 with depth 1 +" +} +node: {title: "n427n423" label: "0x1Is 423" info1: "0x1 423 + mode: Is + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n427" targetname: "n453" label: "0" class:16 priority:10} +edge: {sourcename: "n427" targetname: "n427n423" label: "1" class:16 priority:10} +} + +graph: { title: "n400" label: "Block 400" status:clustered color:yellow +edge: {sourcename: "n400" targetname: "n404" label: "0" class:13 priority:60 color:red} +node: {title: "n407" label: "ProjM 1 407" info1: "Proj 407 + mode: M + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 400 + 0: Start 401 + Private Attributes: + in loop 627 with depth 0 +" +color: yellow} +edge: {sourcename: "n407" targetname: "n401" label: "0" class:17 priority:10 color:blue} +node: {title: "n404" label: "ProjX 0 404" info1: "Proj 404 + mode: X + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 400 + 0: Start 401 + Private Attributes: + in loop 627 with depth 0 +" +color: yellow} +edge: {sourcename: "n404" targetname: "n401" label: "0" class:13 priority:60 color:red} +node: {title: "n401" label: "Start 401" info1: "Start 401 + mode: T + visited: 27 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-looptree.vcg new file mode 100644 index 000000000..494271074 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-looptree.vcg @@ -0,0 +1,69 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m6" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l631" label: "loop 0, 1 sons, 4 nodes" info1: " loop nr: 631 + The loop was analyzed 0 times."} +node: { title: "l631-0-nodes" color: lightyellow label: "Block 400 +Block 410" } +edge: {sourcename: "l631" targetname: "l631-0-nodes" label:"0...1"} +edge: {sourcename: "l631" targetname: "l632" color: darkgreen label: "2"} +node: {title: "l632" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 632 + The loop was analyzed 0 times."} +node: { title: "l632-0-nodes" color: lightyellow label: "Block 414 loop head! +Block 422" } +edge: {sourcename: "l632" targetname: "l632-0-nodes" label:"0...1"} +node: { title: "l631-3-nodes" color: lightyellow label: "Block 445 +Block 398" } +edge: {sourcename: "l631" targetname: "l631-3-nodes" label:"3...4"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-pure.vcg new file mode 100644 index 000000000..6b3e847ff --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6-pure.vcg @@ -0,0 +1,605 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m6" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n401" label: "Start 401" info1: "Start 401 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n401" targetname: "n400" class:2 priority:50 linestyle:dotted} +node: {title: "n404" label: "ProjX 0 404" info1: "Proj 404 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 400 + 0: Start 401 + Private Attributes: + in loop 627 with depth 0 +" +color: yellow} +edge: {sourcename: "n404" targetname: "n401" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n404" targetname: "n400" class:2 priority:50 linestyle:dotted} +node: {title: "n400" label: "Block 400" info1: "Block 400 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + 0: Proj 404 + Private Attributes: + backedges: + in loop 627 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n400" targetname: "n404" label: "0" class:13 priority:60 color:red} +node: {title: "n427" label: "SubIs 427" info1: "Sub 427 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: Phi 453 + 1: 0x1 423 + Private Attributes: + in loop 628 with depth 1 +" +} +node: {title: "n427n423" label: "0x1Is 423" info1: "0x1 423 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n427" targetname: "n453" label: "0" class:16 priority:10} +edge: {sourcename: "n427" targetname: "n427n423" label: "1" class:16 priority:10} +edge: { sourcename: "n427" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n453" label: "PhiIs 453" info1: "Phi 453 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: 0x0 411 + 1: be Sub 427 + Private Attributes: + backedges: 1 + in loop 628 with depth 1 +" +color: green} +node: {title: "n453n411" label: "0x0Is 411" info1: "0x0 411 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n453" targetname: "n453n411" label: "0" class:16 priority:10} +backedge: {sourcename: "n453" targetname: "n427" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n453" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n417" label: "Cmp 417" info1: "Cmp 417 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: 0xB 416 + 1: Phi 453 + Private Attributes: + in loop 629 with depth 2 +" +} +node: {title: "n417n416" label: "0xBIs 416" info1: "0xB 416 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n417" targetname: "n417n416" label: "0" class:16 priority:10} +edge: {sourcename: "n417" targetname: "n453" label: "1" class:1 priority:50} +edge: { sourcename: "n417" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n418" label: "Projb Ge 418" info1: "Proj 418 + mode: b + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cmp 417 + Private Attributes: + in loop 629 with depth 2 +" +color: yellow} +edge: {sourcename: "n418" targetname: "n417" label: "0" class:1 priority:50} +edge: { sourcename: "n418" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n419" label: "Cond 419" info1: "Cond 419 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Proj 418 + Private Attributes: + in loop 629 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n419" targetname: "n418" label: "0" class:1 priority:50} +edge: { sourcename: "n419" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n421" label: "ProjX 1 421" info1: "Proj 421 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cond 419 + Private Attributes: + in loop 629 with depth 2 +" +color: yellow} +edge: {sourcename: "n421" targetname: "n419" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n421" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n422" label: "Block 422" info1: "Block 422 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + 0: Proj 421 + Private Attributes: + backedges: + in loop 629 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n422" targetname: "n421" label: "0" class:13 priority:60 color:red} +node: {title: "n439" label: "Jmp 439" info1: "Jmp 439 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 422 + Private Attributes: + in loop 629 with depth 2 +" +} +edge: { sourcename: "n439" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n410" label: "Block 410" info1: "Block 410 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + 0: Proj 404 + Private Attributes: + backedges: + in loop 627 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n410" targetname: "n404" label: "0" class:13 priority:60 color:red} +node: {title: "n413" label: "Jmp 413" info1: "Jmp 413 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 410 + Private Attributes: + in loop 627 with depth 0 +" +} +edge: { sourcename: "n413" targetname: "n410" class:2 priority:50 linestyle:dotted} +node: {title: "n414" label: "Block 414" info1: "Block 414 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + 0: Jmp 413 + 1: be Jmp 439 + Private Attributes: + backedges: 1 + in loop 629 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n414" targetname: "n413" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n414" targetname: "n439" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n420" label: "ProjX 0 420" info1: "Proj 420 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cond 419 + Private Attributes: + in loop 627 with depth 0 +" +color: yellow} +edge: {sourcename: "n420" targetname: "n419" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n420" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n445" label: "Block 445" info1: "Block 445 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + 0: Proj 420 + Private Attributes: + backedges: + in loop 627 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n445" targetname: "n420" label: "0" class:13 priority:60 color:red} +node: {title: "n428" label: "MulIs 428" info1: "Mul 428 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Sub 427 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n428n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n428" targetname: "n428n425" label: "0" class:16 priority:10} +edge: {sourcename: "n428" targetname: "n427" label: "1" class:1 priority:50} +edge: { sourcename: "n428" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n430" label: "AddP 430" info1: "Add 430 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: Mul 428 + 1: SymC &a 412 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n430n412" label: "SymC &a 412" info1: "SymC &a 412 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (396) + + type of value: type_unknown +" +} +edge: {sourcename: "n430" targetname: "n428" label: "0" class:1 priority:50} +edge: {sourcename: "n430" targetname: "n430n412" label: "1" class:16 priority:10} +edge: { sourcename: "n430" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n431" label: "SubP 431" info1: "Sub 431 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x5 424 + 1: Add 430 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n431n424" label: "0x5Is 424" info1: "0x5 424 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n431" targetname: "n431n424" label: "0" class:16 priority:10} +edge: {sourcename: "n431" targetname: "n430" label: "1" class:1 priority:50} +edge: { sourcename: "n431" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n432" label: "AddP 432" info1: "Add 432 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Sub 431 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n432n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n432" targetname: "n432n425" label: "0" class:16 priority:10} +edge: {sourcename: "n432" targetname: "n431" label: "1" class:1 priority:50} +edge: { sourcename: "n432" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n433" label: "AddP 433" info1: "Add 433 + mode: P + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Add 432 + Private Attributes: + in loop 627 with depth 0 +" +} +node: {title: "n433n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n433" targetname: "n433n425" label: "0" class:16 priority:10} +edge: {sourcename: "n433" targetname: "n432" label: "1" class:1 priority:50} +edge: { sourcename: "n433" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n436" label: "Store 436" info1: "Store 436 + mode: T + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 3 + pred nodes: + -1: Block 422 + 0: Phi 452 + 1: Add 433 + 2: 0x13 434 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 630 with depth 1 + volatility: volatility_non_volatile +" +} +node: {title: "n436n434" label: "0x13Is 434" info1: "0x13 434 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n436" targetname: "n452" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n436" targetname: "n433" label: "1" class:1 priority:50} +edge: {sourcename: "n436" targetname: "n436n434" label: "2" class:16 priority:10} +edge: { sourcename: "n436" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n438" label: "ProjM 0 438" info1: "Proj 438 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 422 + 0: Store 436 + Private Attributes: + in loop 630 with depth 1 +" +color: yellow} +edge: {sourcename: "n438" targetname: "n436" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n438" targetname: "n422" class:2 priority:50 linestyle:dotted} +node: {title: "n407" label: "ProjM 1 407" info1: "Proj 407 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 400 + 0: Start 401 + Private Attributes: + in loop 627 with depth 0 +" +color: yellow} +edge: {sourcename: "n407" targetname: "n401" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n407" targetname: "n400" class:2 priority:50 linestyle:dotted} +node: {title: "n452" label: "PhiM 452" info1: "Phi 452 + mode: M + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: Proj 407 + 1: be Proj 438 + Private Attributes: + backedges: 1 + in loop 630 with depth 1 +" +color: green} +edge: {sourcename: "n452" targetname: "n407" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n452" targetname: "n438" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n452" targetname: "n414" class:2 priority:50 linestyle:dotted} +node: {title: "n448" label: "Return 448" info1: "Return 448 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 445 + 0: Phi 452 + 1: 0x4 425 + Private Attributes: + in loop 627 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n448n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + in loop 627 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n448" targetname: "n452" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n448" targetname: "n448n425" label: "1" class:16 priority:10} +edge: { sourcename: "n448" targetname: "n445" class:2 priority:50 linestyle:dotted} +node: {title: "n398" label: "Block 398" info1: "Block 398 + mode: BB + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + 0: Return 448 + Private Attributes: + backedges: + in loop 627 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n398" targetname: "n448" label: "0" class:13 priority:60 color:red} +node: {title: "n399" label: "End 399" info1: "End 399 + mode: X + visited: 17 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 398 + 0: Phi 452 + Private Attributes: + in loop 627 with depth 0 +" +color: blue} +edge: { sourcename: "n399" targetname: "n398" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6.vcg new file mode 100644 index 000000000..9122ef942 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m6.vcg @@ -0,0 +1,487 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m6" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g409" label: "LOOP_UNROLL_EXAMPLE_m6" status:clustered color:white +graph: { title: "n398" label: "Block 398" status:clustered color:yellow +edge: {sourcename: "n398" targetname: "n448" label: "0" class:13 priority:60 color:red} +node: {title: "n399" label: "End 399" info1: "End 399 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 398 + 0: Phi 452 + Private Attributes: +" +color: blue} +} + +graph: { title: "n445" label: "Block 445" status:clustered color:yellow +edge: {sourcename: "n445" targetname: "n420" label: "0" class:13 priority:60 color:red} +node: {title: "n448" label: "Return 448" info1: "Return 448 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 445 + 0: Phi 452 + 1: 0x4 425 + Private Attributes: + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n448n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n448" targetname: "n452" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n448" targetname: "n448n425" label: "1" class:16 priority:10} +} + +graph: { title: "n414" label: "Block 414" status:clustered color:yellow +edge: {sourcename: "n414" targetname: "n413" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n414" targetname: "n439" label: "1" class:13 priority:60 color:red} +node: {title: "n452" label: "PhiM 452" info1: "Phi 452 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: Proj 407 + 1: Proj 438 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n452" targetname: "n407" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n452" targetname: "n438" label: "1" class:17 priority:10 color:blue} +node: {title: "n420" label: "ProjX 0 420" info1: "Proj 420 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cond 419 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n420" targetname: "n419" label: "0" class:13 priority:60 color:red} +node: {title: "n421" label: "ProjX 1 421" info1: "Proj 421 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cond 419 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n421" targetname: "n419" label: "0" class:13 priority:60 color:red} +node: {title: "n419" label: "Cond 419" info1: "Cond 419 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Proj 418 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n419" targetname: "n418" label: "0" class:1 priority:50} +node: {title: "n418" label: "Projb Ge 418" info1: "Proj 418 + mode: b + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 414 + 0: Cmp 417 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n418" targetname: "n417" label: "0" class:1 priority:50} +node: {title: "n417" label: "Cmp 417" info1: "Cmp 417 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: 0xB 416 + 1: Phi 453 + Private Attributes: +" +} +node: {title: "n417n416" label: "0xBIs 416" info1: "0xB 416 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n417" targetname: "n417n416" label: "0" class:16 priority:10} +edge: {sourcename: "n417" targetname: "n453" label: "1" class:1 priority:50} +node: {title: "n453" label: "PhiIs 453" info1: "Phi 453 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 414 + 0: 0x0 411 + 1: Sub 427 + Private Attributes: + backedges: +" +color: green} +node: {title: "n453n411" label: "0x0Is 411" info1: "0x0 411 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n453" targetname: "n453n411" label: "0" class:16 priority:10} +edge: {sourcename: "n453" targetname: "n427" label: "1" class:16 priority:10} +} + +graph: { title: "n410" label: "Block 410" status:clustered color:yellow +edge: {sourcename: "n410" targetname: "n404" label: "0" class:13 priority:60 color:red} +node: {title: "n413" label: "Jmp 413" info1: "Jmp 413 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 410 + Private Attributes: +" +} +} + +graph: { title: "n422" label: "Block 422" status:clustered color:yellow +edge: {sourcename: "n422" targetname: "n421" label: "0" class:13 priority:60 color:red} +node: {title: "n438" label: "ProjM 0 438" info1: "Proj 438 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 422 + 0: Store 436 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n438" targetname: "n436" label: "0" class:17 priority:10 color:blue} +node: {title: "n436" label: "Store 436" info1: "Store 436 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 3 + pred nodes: + -1: Block 422 + 0: Phi 452 + 1: Add 433 + 2: 0x13 434 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +node: {title: "n436n434" label: "0x13Is 434" info1: "0x13 434 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n436" targetname: "n452" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n436" targetname: "n433" label: "1" class:1 priority:50} +edge: {sourcename: "n436" targetname: "n436n434" label: "2" class:16 priority:10} +node: {title: "n433" label: "AddP 433" info1: "Add 433 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Add 432 + Private Attributes: +" +} +node: {title: "n433n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n433" targetname: "n433n425" label: "0" class:16 priority:10} +edge: {sourcename: "n433" targetname: "n432" label: "1" class:1 priority:50} +node: {title: "n432" label: "AddP 432" info1: "Add 432 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Sub 431 + Private Attributes: +" +} +node: {title: "n432n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n432" targetname: "n432n425" label: "0" class:16 priority:10} +edge: {sourcename: "n432" targetname: "n431" label: "1" class:1 priority:50} +node: {title: "n431" label: "SubP 431" info1: "Sub 431 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x5 424 + 1: Add 430 + Private Attributes: +" +} +node: {title: "n431n424" label: "0x5Is 424" info1: "0x5 424 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n431" targetname: "n431n424" label: "0" class:16 priority:10} +edge: {sourcename: "n431" targetname: "n430" label: "1" class:1 priority:50} +node: {title: "n430" label: "AddP 430" info1: "Add 430 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: Mul 428 + 1: SymC &a 412 + Private Attributes: +" +} +node: {title: "n430n412" label: "SymC &a 412" info1: "SymC &a 412 + mode: P + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (396) + + type of value: type_unknown +" +} +edge: {sourcename: "n430" targetname: "n428" label: "0" class:1 priority:50} +edge: {sourcename: "n430" targetname: "n430n412" label: "1" class:16 priority:10} +node: {title: "n428" label: "MulIs 428" info1: "Mul 428 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: 0x4 425 + 1: Sub 427 + Private Attributes: +" +} +node: {title: "n428n425" label: "0x4Is 425" info1: "0x4 425 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n428" targetname: "n428n425" label: "0" class:16 priority:10} +edge: {sourcename: "n428" targetname: "n427" label: "1" class:1 priority:50} +node: {title: "n439" label: "Jmp 439" info1: "Jmp 439 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 422 + Private Attributes: +" +} +node: {title: "n427" label: "SubIs 427" info1: "Sub 427 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 2 + pred nodes: + -1: Block 422 + 0: Phi 453 + 1: 0x1 423 + Private Attributes: +" +} +node: {title: "n427n423" label: "0x1Is 423" info1: "0x1 423 + mode: Is + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n427" targetname: "n453" label: "0" class:16 priority:10} +edge: {sourcename: "n427" targetname: "n427n423" label: "1" class:16 priority:10} +} + +graph: { title: "n400" label: "Block 400" status:clustered color:yellow +edge: {sourcename: "n400" targetname: "n404" label: "0" class:13 priority:60 color:red} +node: {title: "n407" label: "ProjM 1 407" info1: "Proj 407 + mode: M + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 400 + 0: Start 401 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n407" targetname: "n401" label: "0" class:17 priority:10 color:blue} +node: {title: "n404" label: "ProjX 0 404" info1: "Proj 404 + mode: X + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 1 + pred nodes: + -1: Block 400 + 0: Start 401 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n404" targetname: "n401" label: "0" class:13 priority:60 color:red} +node: {title: "n401" label: "Start 401" info1: "Start 401 + mode: T + visited: 14 + irg: LOOP_UNROLL_EXAMPLE_m6 + arity: 0 + pred nodes: + -1: Block 400 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-loop-unrolling.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-loop-unrolling.vcg new file mode 100644 index 000000000..3a1cbd321 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-loop-unrolling.vcg @@ -0,0 +1,710 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m7" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g475" label: "LOOP_UNROLL_EXAMPLE_m7" status:clustered color:white +graph: { title: "n464" label: "Block 464" status:clustered color:yellow +edge: {sourcename: "n464" targetname: "n514" label: "0" class:13 priority:60 color:red} +node: {title: "n465" label: "End 465" info1: "End 465 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 464 + 0: Phi 518 + Private Attributes: + in loop 663 with depth 0 +" +color: blue} +} + +graph: { title: "n511" label: "Block 511" status:clustered color:yellow +edge: {sourcename: "n511" targetname: "n487" label: "0" class:13 priority:60 color:red} +node: {title: "n514" label: "Return 514" info1: "Return 514 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 511 + 0: Phi 518 + 1: 0x4 491 + Private Attributes: + in loop 663 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n514n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n514" targetname: "n518" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n514" targetname: "n514n491" label: "1" class:16 priority:10} +} + +graph: { title: "n481" label: "Block 481" status:clustered color:yellow +edge: {sourcename: "n481" targetname: "n480" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n481" targetname: "n678" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n518" label: "PhiM 518" info1: "Phi 518 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: Proj 473 + 1: Proj 676 + Private Attributes: + backedges: + in loop 666 with depth 1 +" +color: green} +edge: {sourcename: "n518" targetname: "n473" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n518" targetname: "n676" label: "1" class:17 priority:10 color:blue} +node: {title: "n487" label: "ProjX 0 487" info1: "Proj 487 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cond 486 + Private Attributes: + in loop 663 with depth 0 +" +color: yellow} +edge: {sourcename: "n487" targetname: "n486" label: "0" class:13 priority:60 color:red} +node: {title: "n488" label: "ProjX 1 488" info1: "Proj 488 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cond 486 + Private Attributes: + in loop 665 with depth 2 +" +color: yellow} +edge: {sourcename: "n488" targetname: "n486" label: "0" class:13 priority:60 color:red} +node: {title: "n486" label: "Cond 486" info1: "Cond 486 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Proj 485 + Private Attributes: + in loop 665 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n486" targetname: "n485" label: "0" class:1 priority:50} +node: {title: "n485" label: "Projb Lt 485" info1: "Proj 485 + mode: b + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cmp 484 + Private Attributes: + in loop 665 with depth 2 +" +color: yellow} +edge: {sourcename: "n485" targetname: "n484" label: "0" class:1 priority:50} +node: {title: "n484" label: "Cmp 484" info1: "Cmp 484 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: 0x0 483 + 1: Phi 519 + Private Attributes: + in loop 665 with depth 2 +" +} +node: {title: "n484n483" label: "0x0Is 483" info1: "0x0 483 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n484" targetname: "n484n483" label: "0" class:16 priority:10} +edge: {sourcename: "n484" targetname: "n519" label: "1" class:1 priority:50} +node: {title: "n519" label: "PhiIs 519" info1: "Phi 519 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: 0xA 478 + 1: Sub 677 + Private Attributes: + backedges: + in loop 664 with depth 1 +" +color: green} +node: {title: "n519n478" label: "0xAIs 478" info1: "0xA 478 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n519" targetname: "n519n478" label: "0" class:16 priority:10} +edge: {sourcename: "n519" targetname: "n677" label: "1" class:16 priority:10} +} + +graph: { title: "n476" label: "Block 476" status:clustered color:yellow +edge: {sourcename: "n476" targetname: "n470" label: "0" class:13 priority:60 color:red} +node: {title: "n480" label: "Jmp 480" info1: "Jmp 480 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 476 + Private Attributes: + in loop 663 with depth 0 +" +} +} + +graph: { title: "n669" label: "Block 669" status:clustered color:yellow +edge: {sourcename: "n669" targetname: "n505" label: "0" class:13 priority:60 color:red} +node: {title: "n676" label: "ProjM 0 676" info1: "Proj 676 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 669 + 0: Store 675 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n676" targetname: "n675" label: "0" class:17 priority:10 color:blue} +node: {title: "n675" label: "Store 675" info1: "Store 675 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 3 + pred nodes: + -1: Block 669 + 0: Proj 503 + 1: Add 673 + 2: Add 674 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n675" targetname: "n503" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n675" targetname: "n673" label: "1" class:1 priority:50} +edge: {sourcename: "n675" targetname: "n674" label: "2" class:1 priority:50} +node: {title: "n673" label: "AddP 673" info1: "Add 673 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 669 + 0: Mul 672 + 1: SymC &a 479 + Private Attributes: +" +} +node: {title: "n673n479" label: "SymC &a 479" info1: "SymC &a 479 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (462) + + type of value: type_unknown +" +} +edge: {sourcename: "n673" targetname: "n672" label: "0" class:1 priority:50} +edge: {sourcename: "n673" targetname: "n673n479" label: "1" class:16 priority:10} +node: {title: "n672" label: "MulIs 672" info1: "Mul 672 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 669 + 0: 0x4 491 + 1: Add 671 + Private Attributes: +" +} +node: {title: "n672n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n672" targetname: "n672n491" label: "0" class:16 priority:10} +edge: {sourcename: "n672" targetname: "n671" label: "1" class:1 priority:50} +node: {title: "n671" label: "AddIs 671" info1: "Add 671 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 669 + 0: 0x13 492 + 1: Add 670 + Private Attributes: +" +} +node: {title: "n671n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n671" targetname: "n671n492" label: "0" class:16 priority:10} +edge: {sourcename: "n671" targetname: "n670" label: "1" class:1 priority:50} +node: {title: "n670" label: "AddIs 670" info1: "Add 670 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 669 + 0: 0x4 491 + 1: Sub 504 + Private Attributes: +" +} +node: {title: "n670n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n670" targetname: "n670n491" label: "0" class:16 priority:10} +edge: {sourcename: "n670" targetname: "n504" label: "1" class:16 priority:10} +node: {title: "n674" label: "AddIs 674" info1: "Add 674 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 669 + 0: 0x13 492 + 1: Sub 504 + Private Attributes: +" +} +node: {title: "n674n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n674" targetname: "n674n492" label: "0" class:16 priority:10} +edge: {sourcename: "n674" targetname: "n504" label: "1" class:16 priority:10} +node: {title: "n678" label: "Jmp 678" info1: "Jmp 678 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 669 + Private Attributes: +" +} +node: {title: "n677" label: "SubIs 677" info1: "Sub 677 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 669 + 0: Sub 504 + 1: 0x1 490 + Private Attributes: +" +} +node: {title: "n677n490" label: "0x1Is 490" info1: "0x1 490 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n677" targetname: "n504" label: "0" class:16 priority:10} +edge: {sourcename: "n677" targetname: "n677n490" label: "1" class:16 priority:10} +} + +graph: { title: "n489" label: "Block 489" status:clustered color:yellow +edge: {sourcename: "n489" targetname: "n488" label: "0" class:13 priority:60 color:red} +node: {title: "n503" label: "ProjM 0 503" info1: "Proj 503 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 489 + 0: Store 501 + Private Attributes: + in loop 666 with depth 1 +" +color: yellow} +edge: {sourcename: "n503" targetname: "n501" label: "0" class:17 priority:10 color:blue} +node: {title: "n501" label: "Store 501" info1: "Store 501 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 3 + pred nodes: + -1: Block 489 + 0: Phi 518 + 1: Add 498 + 2: Add 499 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 666 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n501" targetname: "n518" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n501" targetname: "n498" label: "1" class:1 priority:50} +edge: {sourcename: "n501" targetname: "n499" label: "2" class:1 priority:50} +node: {title: "n498" label: "AddP 498" info1: "Add 498 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: Mul 496 + 1: SymC &a 479 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n498n479" label: "SymC &a 479" info1: "SymC &a 479 + mode: P + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (462) + + type of value: type_unknown +" +} +edge: {sourcename: "n498" targetname: "n496" label: "0" class:1 priority:50} +edge: {sourcename: "n498" targetname: "n498n479" label: "1" class:16 priority:10} +node: {title: "n496" label: "MulIs 496" info1: "Mul 496 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x4 491 + 1: Add 495 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n496n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n496" targetname: "n496n491" label: "0" class:16 priority:10} +edge: {sourcename: "n496" targetname: "n495" label: "1" class:1 priority:50} +node: {title: "n495" label: "AddIs 495" info1: "Add 495 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x13 492 + 1: Add 494 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n495n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n495" targetname: "n495n492" label: "0" class:16 priority:10} +edge: {sourcename: "n495" targetname: "n494" label: "1" class:1 priority:50} +node: {title: "n494" label: "AddIs 494" info1: "Add 494 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x4 491 + 1: Phi 519 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n494n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n494" targetname: "n494n491" label: "0" class:16 priority:10} +edge: {sourcename: "n494" targetname: "n519" label: "1" class:16 priority:10} +node: {title: "n499" label: "AddIs 499" info1: "Add 499 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x13 492 + 1: Phi 519 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n499n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n499" targetname: "n499n492" label: "0" class:16 priority:10} +edge: {sourcename: "n499" targetname: "n519" label: "1" class:16 priority:10} +node: {title: "n505" label: "Jmp 505" info1: "Jmp 505 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 489 + Private Attributes: + in loop 665 with depth 2 +" +} +node: {title: "n504" label: "SubIs 504" info1: "Sub 504 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: Phi 519 + 1: 0x1 490 + Private Attributes: + in loop 664 with depth 1 +" +} +node: {title: "n504n490" label: "0x1Is 490" info1: "0x1 490 + mode: Is + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n504" targetname: "n519" label: "0" class:16 priority:10} +edge: {sourcename: "n504" targetname: "n504n490" label: "1" class:16 priority:10} +} + +graph: { title: "n466" label: "Block 466" status:clustered color:yellow +edge: {sourcename: "n466" targetname: "n470" label: "0" class:13 priority:60 color:red} +node: {title: "n473" label: "ProjM 1 473" info1: "Proj 473 + mode: M + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 466 + 0: Start 467 + Private Attributes: + in loop 663 with depth 0 +" +color: yellow} +edge: {sourcename: "n473" targetname: "n467" label: "0" class:17 priority:10 color:blue} +node: {title: "n470" label: "ProjX 0 470" info1: "Proj 470 + mode: X + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 466 + 0: Start 467 + Private Attributes: + in loop 663 with depth 0 +" +color: yellow} +edge: {sourcename: "n470" targetname: "n467" label: "0" class:13 priority:60 color:red} +node: {title: "n467" label: "Start 467" info1: "Start 467 + mode: T + visited: 28 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-looptree.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-looptree.vcg new file mode 100644 index 000000000..418ade73d --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-looptree.vcg @@ -0,0 +1,69 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m7" +display_edge_labels: yes +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: top_to_bottom +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "l667" label: "loop 0, 1 sons, 4 nodes" info1: " loop nr: 667 + The loop was analyzed 0 times."} +node: { title: "l667-0-nodes" color: lightyellow label: "Block 466 +Block 476" } +edge: {sourcename: "l667" targetname: "l667-0-nodes" label:"0...1"} +edge: {sourcename: "l667" targetname: "l668" color: darkgreen label: "2"} +node: {title: "l668" label: "loop 1, 0 sons, 2 nodes" info1: " loop nr: 668 + The loop was analyzed 0 times."} +node: { title: "l668-0-nodes" color: lightyellow label: "Block 481 loop head! +Block 489" } +edge: {sourcename: "l668" targetname: "l668-0-nodes" label:"0...1"} +node: { title: "l667-3-nodes" color: lightyellow label: "Block 511 +Block 464" } +edge: {sourcename: "l667" targetname: "l667-3-nodes" label:"3...4"} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-pure.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-pure.vcg new file mode 100644 index 000000000..e360576ab --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7-pure.vcg @@ -0,0 +1,593 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m7" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +node: {title: "n467" label: "Start 467" info1: "Start 467 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +edge: { sourcename: "n467" targetname: "n466" class:2 priority:50 linestyle:dotted} +node: {title: "n470" label: "ProjX 0 470" info1: "Proj 470 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 466 + 0: Start 467 + Private Attributes: + in loop 663 with depth 0 +" +color: yellow} +edge: {sourcename: "n470" targetname: "n467" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n470" targetname: "n466" class:2 priority:50 linestyle:dotted} +node: {title: "n466" label: "Block 466" info1: "Block 466 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + 0: Proj 470 + Private Attributes: + backedges: + in loop 663 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n466" targetname: "n470" label: "0" class:13 priority:60 color:red} +node: {title: "n504" label: "SubIs 504" info1: "Sub 504 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: Phi 519 + 1: 0x1 490 + Private Attributes: + in loop 664 with depth 1 +" +} +node: {title: "n504n490" label: "0x1Is 490" info1: "0x1 490 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n504" targetname: "n519" label: "0" class:16 priority:10} +edge: {sourcename: "n504" targetname: "n504n490" label: "1" class:16 priority:10} +edge: { sourcename: "n504" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n519" label: "PhiIs 519" info1: "Phi 519 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: 0xA 478 + 1: be Sub 504 + Private Attributes: + backedges: 1 + in loop 664 with depth 1 +" +color: green} +node: {title: "n519n478" label: "0xAIs 478" info1: "0xA 478 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n519" targetname: "n519n478" label: "0" class:16 priority:10} +backedge: {sourcename: "n519" targetname: "n504" label: "1" linestyle:dashed class:16 priority:10} +edge: { sourcename: "n519" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n484" label: "Cmp 484" info1: "Cmp 484 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: 0x0 483 + 1: Phi 519 + Private Attributes: + in loop 665 with depth 2 +" +} +node: {title: "n484n483" label: "0x0Is 483" info1: "0x0 483 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n484" targetname: "n484n483" label: "0" class:16 priority:10} +edge: {sourcename: "n484" targetname: "n519" label: "1" class:1 priority:50} +edge: { sourcename: "n484" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n485" label: "Projb Lt 485" info1: "Proj 485 + mode: b + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cmp 484 + Private Attributes: + in loop 665 with depth 2 +" +color: yellow} +edge: {sourcename: "n485" targetname: "n484" label: "0" class:1 priority:50} +edge: { sourcename: "n485" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n486" label: "Cond 486" info1: "Cond 486 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Proj 485 + Private Attributes: + in loop 665 with depth 2 + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n486" targetname: "n485" label: "0" class:1 priority:50} +edge: { sourcename: "n486" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n488" label: "ProjX 1 488" info1: "Proj 488 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cond 486 + Private Attributes: + in loop 665 with depth 2 +" +color: yellow} +edge: {sourcename: "n488" targetname: "n486" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n488" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n489" label: "Block 489" info1: "Block 489 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + 0: Proj 488 + Private Attributes: + backedges: + in loop 665 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n489" targetname: "n488" label: "0" class:13 priority:60 color:red} +node: {title: "n505" label: "Jmp 505" info1: "Jmp 505 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 489 + Private Attributes: + in loop 665 with depth 2 +" +} +edge: { sourcename: "n505" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n476" label: "Block 476" info1: "Block 476 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + 0: Proj 470 + Private Attributes: + backedges: + in loop 663 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n476" targetname: "n470" label: "0" class:13 priority:60 color:red} +node: {title: "n480" label: "Jmp 480" info1: "Jmp 480 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 476 + Private Attributes: + in loop 663 with depth 0 +" +} +edge: { sourcename: "n480" targetname: "n476" class:2 priority:50 linestyle:dotted} +node: {title: "n481" label: "Block 481" info1: "Block 481 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + 0: Jmp 480 + 1: be Jmp 505 + Private Attributes: + backedges: 1 + in loop 665 with depth 2 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n481" targetname: "n480" label: "0" class:13 priority:60 color:red} +backedge: {sourcename: "n481" targetname: "n505" label: "1" linestyle:dashed class:13 priority:60 color:red} +node: {title: "n487" label: "ProjX 0 487" info1: "Proj 487 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cond 486 + Private Attributes: + in loop 663 with depth 0 +" +color: yellow} +edge: {sourcename: "n487" targetname: "n486" label: "0" class:13 priority:60 color:red} +edge: { sourcename: "n487" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n511" label: "Block 511" info1: "Block 511 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + 0: Proj 487 + Private Attributes: + backedges: + in loop 663 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n511" targetname: "n487" label: "0" class:13 priority:60 color:red} +node: {title: "n499" label: "AddIs 499" info1: "Add 499 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x13 492 + 1: Phi 519 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n499n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n499" targetname: "n499n492" label: "0" class:16 priority:10} +edge: {sourcename: "n499" targetname: "n519" label: "1" class:16 priority:10} +edge: { sourcename: "n499" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n494" label: "AddIs 494" info1: "Add 494 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x4 491 + 1: Phi 519 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n494n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n494" targetname: "n494n491" label: "0" class:16 priority:10} +edge: {sourcename: "n494" targetname: "n519" label: "1" class:16 priority:10} +edge: { sourcename: "n494" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n495" label: "AddIs 495" info1: "Add 495 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x13 492 + 1: Add 494 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n495n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n495" targetname: "n495n492" label: "0" class:16 priority:10} +edge: {sourcename: "n495" targetname: "n494" label: "1" class:1 priority:50} +edge: { sourcename: "n495" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n496" label: "MulIs 496" info1: "Mul 496 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x4 491 + 1: Add 495 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n496n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n496" targetname: "n496n491" label: "0" class:16 priority:10} +edge: {sourcename: "n496" targetname: "n495" label: "1" class:1 priority:50} +edge: { sourcename: "n496" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n498" label: "AddP 498" info1: "Add 498 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: Mul 496 + 1: SymC &a 479 + Private Attributes: + in loop 663 with depth 0 +" +} +node: {title: "n498n479" label: "SymC &a 479" info1: "SymC &a 479 + mode: P + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + kind: addr_ent + entity: entity GlobalType.a (462) + + type of value: type_unknown +" +} +edge: {sourcename: "n498" targetname: "n496" label: "0" class:1 priority:50} +edge: {sourcename: "n498" targetname: "n498n479" label: "1" class:16 priority:10} +edge: { sourcename: "n498" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n501" label: "Store 501" info1: "Store 501 + mode: T + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 3 + pred nodes: + -1: Block 489 + 0: Phi 518 + 1: Add 498 + 2: Add 499 + Private Attributes: + pinned state: op_pin_state_pinned + in loop 666 with depth 1 + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n501" targetname: "n518" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n501" targetname: "n498" label: "1" class:1 priority:50} +edge: {sourcename: "n501" targetname: "n499" label: "2" class:1 priority:50} +edge: { sourcename: "n501" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n503" label: "ProjM 0 503" info1: "Proj 503 + mode: M + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 489 + 0: Store 501 + Private Attributes: + in loop 666 with depth 1 +" +color: yellow} +edge: {sourcename: "n503" targetname: "n501" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n503" targetname: "n489" class:2 priority:50 linestyle:dotted} +node: {title: "n473" label: "ProjM 1 473" info1: "Proj 473 + mode: M + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 466 + 0: Start 467 + Private Attributes: + in loop 663 with depth 0 +" +color: yellow} +edge: {sourcename: "n473" targetname: "n467" label: "0" class:17 priority:10 color:blue} +edge: { sourcename: "n473" targetname: "n466" class:2 priority:50 linestyle:dotted} +node: {title: "n518" label: "PhiM 518" info1: "Phi 518 + mode: M + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: Proj 473 + 1: be Proj 503 + Private Attributes: + backedges: 1 + in loop 666 with depth 1 +" +color: green} +edge: {sourcename: "n518" targetname: "n473" label: "0" class:17 priority:10 color:blue} +backedge: {sourcename: "n518" targetname: "n503" label: "1" linestyle:dashed class:17 priority:10 color:blue} +edge: { sourcename: "n518" targetname: "n481" class:2 priority:50 linestyle:dotted} +node: {title: "n514" label: "Return 514" info1: "Return 514 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 511 + 0: Phi 518 + 1: 0x4 491 + Private Attributes: + in loop 663 with depth 0 + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n514n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + in loop 663 with depth 0 + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n514" targetname: "n518" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n514" targetname: "n514n491" label: "1" class:16 priority:10} +edge: { sourcename: "n514" targetname: "n511" class:2 priority:50 linestyle:dotted} +node: {title: "n464" label: "Block 464" info1: "Block 464 + mode: BB + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + 0: Return 514 + Private Attributes: + backedges: + in loop 663 with depth 0 + block visited: 0 + dominator info: output not implemented +" +color: lightyellow} +edge: {sourcename: "n464" targetname: "n514" label: "0" class:13 priority:60 color:red} +node: {title: "n465" label: "End 465" info1: "End 465 + mode: X + visited: 18 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 464 + 0: Phi 518 + Private Attributes: + in loop 663 with depth 0 +" +color: blue} +edge: { sourcename: "n465" targetname: "n464" class:2 priority:50 linestyle:dotted} +} diff --git a/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7.vcg b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7.vcg new file mode 100644 index 000000000..f8b2a8ac4 --- /dev/null +++ b/testprograms/ref-results/LOOP_UNROLL_EXAMPLE_m7.vcg @@ -0,0 +1,476 @@ +graph: { title: "ir graph of LOOP_UNROLL_EXAMPLE_m7" +display_edge_labels: no +layoutalgorithm: mindepth +manhattan_edges: yes +port_sharing: no +orientation: bottom_to_top +classname 1: "intrablock Data" +classname 16: "interblock Data" +classname 2: "Block" +classname 13: "Control Flow" +classname 18: "Exception Control Flow for Interval Analysis" +classname 14: "intrablock Memory" +classname 17: "interblock Memory" +classname 15: "Dominators" +classname 3: "Entity type" +classname 4: "Entity owner" +classname 5: "Method Param" +classname 6: "Method Res" +classname 7: "Super" +classname 8: "Union" +classname 9: "Points-to" +classname 10: "Array Element Type" +classname 11: "Overwrites" +classname 12: "Member" +infoname 1: "Attribute" +infoname 2: "Verification errors" +colorentry 100: 0 0 0 +colorentry 101: 20 0 0 +colorentry 102: 40 0 0 +colorentry 103: 60 0 0 +colorentry 104: 80 0 0 +colorentry 105: 100 0 0 +colorentry 106: 120 0 0 +colorentry 107: 140 0 0 +colorentry 108: 150 0 0 +colorentry 109: 180 0 0 +colorentry 110: 200 0 0 +colorentry 111: 220 0 0 +colorentry 112: 240 0 0 +colorentry 113: 255 0 0 +colorentry 113: 255 20 20 +colorentry 114: 255 40 40 +colorentry 115: 255 60 60 +colorentry 116: 255 80 80 +colorentry 117: 255 100 100 +colorentry 118: 255 120 120 +colorentry 119: 255 140 140 +colorentry 120: 255 150 150 +colorentry 121: 255 180 180 +colorentry 122: 255 200 200 +colorentry 123: 255 220 220 +colorentry 124: 255 240 240 +colorentry 125: 255 250 250 + +graph: { title: "g475" label: "LOOP_UNROLL_EXAMPLE_m7" status:clustered color:white +graph: { title: "n464" label: "Block 464" status:clustered color:yellow +edge: {sourcename: "n464" targetname: "n514" label: "0" class:13 priority:60 color:red} +node: {title: "n465" label: "End 465" info1: "End 465 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 464 + 0: Phi 518 + Private Attributes: +" +color: blue} +} + +graph: { title: "n511" label: "Block 511" status:clustered color:yellow +edge: {sourcename: "n511" targetname: "n487" label: "0" class:13 priority:60 color:red} +node: {title: "n514" label: "Return 514" info1: "Return 514 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 511 + 0: Phi 518 + 1: 0x4 491 + Private Attributes: + return in method of type LOOP_UNROLL_EXAMPLE_meth_tp + res 0 type: int +" +} +node: {title: "n514n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n514" targetname: "n518" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n514" targetname: "n514n491" label: "1" class:16 priority:10} +} + +graph: { title: "n481" label: "Block 481" status:clustered color:yellow +edge: {sourcename: "n481" targetname: "n480" label: "0" class:13 priority:60 color:red} +edge: {sourcename: "n481" targetname: "n505" label: "1" class:13 priority:60 color:red} +node: {title: "n518" label: "PhiM 518" info1: "Phi 518 + mode: M + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: Proj 473 + 1: Proj 503 + Private Attributes: + backedges: +" +color: green} +edge: {sourcename: "n518" targetname: "n473" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n518" targetname: "n503" label: "1" class:17 priority:10 color:blue} +node: {title: "n487" label: "ProjX 0 487" info1: "Proj 487 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cond 486 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n487" targetname: "n486" label: "0" class:13 priority:60 color:red} +node: {title: "n488" label: "ProjX 1 488" info1: "Proj 488 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cond 486 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n488" targetname: "n486" label: "0" class:13 priority:60 color:red} +node: {title: "n486" label: "Cond 486" info1: "Cond 486 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Proj 485 + Private Attributes: + condition kind: dense + default ProjNr: 0 +" +} +edge: {sourcename: "n486" targetname: "n485" label: "0" class:1 priority:50} +node: {title: "n485" label: "Projb Lt 485" info1: "Proj 485 + mode: b + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 481 + 0: Cmp 484 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n485" targetname: "n484" label: "0" class:1 priority:50} +node: {title: "n484" label: "Cmp 484" info1: "Cmp 484 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: 0x0 483 + 1: Phi 519 + Private Attributes: +" +} +node: {title: "n484n483" label: "0x0Is 483" info1: "0x0 483 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n484" targetname: "n484n483" label: "0" class:16 priority:10} +edge: {sourcename: "n484" targetname: "n519" label: "1" class:1 priority:50} +node: {title: "n519" label: "PhiIs 519" info1: "Phi 519 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 481 + 0: 0xA 478 + 1: Sub 504 + Private Attributes: + backedges: +" +color: green} +node: {title: "n519n478" label: "0xAIs 478" info1: "0xA 478 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n519" targetname: "n519n478" label: "0" class:16 priority:10} +edge: {sourcename: "n519" targetname: "n504" label: "1" class:16 priority:10} +} + +graph: { title: "n476" label: "Block 476" status:clustered color:yellow +edge: {sourcename: "n476" targetname: "n470" label: "0" class:13 priority:60 color:red} +node: {title: "n480" label: "Jmp 480" info1: "Jmp 480 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 476 + Private Attributes: +" +} +} + +graph: { title: "n489" label: "Block 489" status:clustered color:yellow +edge: {sourcename: "n489" targetname: "n488" label: "0" class:13 priority:60 color:red} +node: {title: "n503" label: "ProjM 0 503" info1: "Proj 503 + mode: M + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 489 + 0: Store 501 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n503" targetname: "n501" label: "0" class:17 priority:10 color:blue} +node: {title: "n501" label: "Store 501" info1: "Store 501 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 3 + pred nodes: + -1: Block 489 + 0: Phi 518 + 1: Add 498 + 2: Add 499 + Private Attributes: + pinned state: op_pin_state_pinned + volatility: volatility_non_volatile +" +} +edge: {sourcename: "n501" targetname: "n518" label: "0" class:17 priority:10 color:blue} +edge: {sourcename: "n501" targetname: "n498" label: "1" class:1 priority:50} +edge: {sourcename: "n501" targetname: "n499" label: "2" class:1 priority:50} +node: {title: "n498" label: "AddP 498" info1: "Add 498 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: Mul 496 + 1: SymC &a 479 + Private Attributes: +" +} +node: {title: "n498n479" label: "SymC &a 479" info1: "SymC &a 479 + mode: P + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + kind: addr_ent + entity: entity GlobalType.a (462) + + type of value: type_unknown +" +} +edge: {sourcename: "n498" targetname: "n496" label: "0" class:1 priority:50} +edge: {sourcename: "n498" targetname: "n498n479" label: "1" class:16 priority:10} +node: {title: "n496" label: "MulIs 496" info1: "Mul 496 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x4 491 + 1: Add 495 + Private Attributes: +" +} +node: {title: "n496n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n496" targetname: "n496n491" label: "0" class:16 priority:10} +edge: {sourcename: "n496" targetname: "n495" label: "1" class:1 priority:50} +node: {title: "n495" label: "AddIs 495" info1: "Add 495 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x13 492 + 1: Add 494 + Private Attributes: +" +} +node: {title: "n495n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n495" targetname: "n495n492" label: "0" class:16 priority:10} +edge: {sourcename: "n495" targetname: "n494" label: "1" class:1 priority:50} +node: {title: "n494" label: "AddIs 494" info1: "Add 494 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x4 491 + 1: Phi 519 + Private Attributes: +" +} +node: {title: "n494n491" label: "0x4Is 491" info1: "0x4 491 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n494" targetname: "n494n491" label: "0" class:16 priority:10} +edge: {sourcename: "n494" targetname: "n519" label: "1" class:16 priority:10} +node: {title: "n499" label: "AddIs 499" info1: "Add 499 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: 0x13 492 + 1: Phi 519 + Private Attributes: +" +} +node: {title: "n499n492" label: "0x13Is 492" info1: "0x13 492 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n499" targetname: "n499n492" label: "0" class:16 priority:10} +edge: {sourcename: "n499" targetname: "n519" label: "1" class:16 priority:10} +node: {title: "n505" label: "Jmp 505" info1: "Jmp 505 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 489 + Private Attributes: +" +} +node: {title: "n504" label: "SubIs 504" info1: "Sub 504 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 2 + pred nodes: + -1: Block 489 + 0: Phi 519 + 1: 0x1 490 + Private Attributes: +" +} +node: {title: "n504n490" label: "0x1Is 490" info1: "0x1 490 + mode: Is + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + Const of type type_unknown +" +color: yellow} +edge: {sourcename: "n504" targetname: "n519" label: "0" class:16 priority:10} +edge: {sourcename: "n504" targetname: "n504n490" label: "1" class:16 priority:10} +} + +graph: { title: "n466" label: "Block 466" status:clustered color:yellow +edge: {sourcename: "n466" targetname: "n470" label: "0" class:13 priority:60 color:red} +node: {title: "n473" label: "ProjM 1 473" info1: "Proj 473 + mode: M + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 466 + 0: Start 467 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n473" targetname: "n467" label: "0" class:17 priority:10 color:blue} +node: {title: "n470" label: "ProjX 0 470" info1: "Proj 470 + mode: X + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 1 + pred nodes: + -1: Block 466 + 0: Start 467 + Private Attributes: +" +color: yellow} +edge: {sourcename: "n470" targetname: "n467" label: "0" class:13 priority:60 color:red} +node: {title: "n467" label: "Start 467" info1: "Start 467 + mode: T + visited: 15 + irg: LOOP_UNROLL_EXAMPLE_m7 + arity: 0 + pred nodes: + -1: Block 466 + Private Attributes: + start of method of type LOOP_UNROLL_EXAMPLE_meth_tp + param 0 type: int +" +color: blue} +} + +} + +} diff --git a/testprograms/ref-results/run-result.txt b/testprograms/ref-results/run-result.txt index e791c326c..a1e894dd3 100644 --- a/testprograms/ref-results/run-result.txt +++ b/testprograms/ref-results/run-result.txt @@ -165,6 +165,44 @@ Use xvcg to view these graphs: Creating an IR graph: IF_EXAMPLE... Done building the graph. Dumping and optimizing it. +Creating an IR graph: IF_EXAMPLE... +Done building the graph. Dumping and optimizing it. + +init 0, + iter_end 10, + diff 10, cmp_typ + 4, + unroll_factor 2 +init 0, + iter_end 11, + diff 11, cmp_typ + 5, + unroll_factor 2 +init 0, + iter_end 10, + diff 10, cmp_typ + 2, + unroll_factor 2 +init 0, + iter_end 11, + diff 11, cmp_typ + 5, + unroll_factor 4 +init 0, + iter_end 10, + diff 10, cmp_typ + 2, + unroll_factor 2 +init 0, + iter_end 11, + diff 11, cmp_typ + 5, + unroll_factor 4 +init 0, + iter_end 10, + diff 10, cmp_typ + 2, + unroll_factor 2 Creating an IR graph: THREE_CFPRED_EXAMPLE ... Optimizing ... Dumping the graph and a control flow graph. diff --git a/testprograms/strength_red_example.c b/testprograms/strength_red_example.c index 9246f89a6..59726dd5c 100644 --- a/testprograms/strength_red_example.c +++ b/testprograms/strength_red_example.c @@ -152,7 +152,6 @@ static void function_begin(type *owner, type *mtp, char *fct_name, loop_dir_t lo } int x; -static int y; /** * finishes a builded function. -- 2.20.1