- value = set_first(l_n);
-
- for( ; value != NULL; value = set_next(l_n))
- if(!is_Phi_in_loop_head(value->irn, loop_head) &&
- (get_irn_opcode(value->irn) == iro_Proj && value->copy[0] != NULL))
- for(i = 0; i < get_irn_n_outs(value->irn); i++){
- key.irn = get_irn_out(value->irn, i);
- // Search for loop outs.
- if(set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)) == NULL)
- if((key.irn->op == op_Block && get_Block_dom_depth(key.irn) >
- get_Block_dom_depth(loop_head)) ||
- (key.irn->op != op_Block && get_Block_dom_depth(get_nodes_block(key.irn)) >
- get_Block_dom_depth(loop_head))){
-
- for(p = 0; p < get_irn_arity(key.irn); p++)
- if(value->irn == get_irn_n(key.irn, p)){
- if(get_irn_opcode(value->irn) == iro_Proj && is_exception_possible(value->irn)){
- if(set_find( loop_outs, &key, sizeof(key), HASH_PTR(key.irn)) == NULL){
- // If the loop out is for exceptions in the loop.
- if((key.irn->op == op_Phi && get_irn_mode(key.irn) == mode_M) ||
- get_irn_opcode(key.irn) == iro_Call)
- new_after_loop_node(l_n,loop_outs, key.irn, value, unroll_factor);
- else
- continue;
- }else
- continue;
- }else
- set_irn_n (key.irn, p, value->copy[unroll_factor-2]);
- }
- }
+
+ for (value = set_first(l_n); value != NULL; value = set_next(l_n))
+ if (! is_Phi_in_loop_head(value->irn, loop_head) &&
+ (get_irn_opcode(value->irn) == iro_Proj && value->copy[0] != NULL))
+ for (i = 0; i < get_irn_n_outs(value->irn); ++i) {
+ key.irn = get_irn_out(value->irn, i);
+
+ /* Search for loop outs. */
+ if (set_find( l_n, &key, sizeof(key), HASH_PTR(key.irn)) == NULL)
+ if ((key.irn->op == op_Block && get_Block_dom_depth(key.irn) >
+ get_Block_dom_depth(loop_head)) ||
+ (key.irn->op != op_Block && get_Block_dom_depth(get_nodes_block(key.irn)) >
+ get_Block_dom_depth(loop_head))) {
+
+ for (p = 0; p < get_irn_arity(key.irn); p++)
+ if (value->irn == get_irn_n(key.irn, p)) {
+ if (get_irn_op(value->irn) == op_Proj && is_exception_possible(value->irn)) {
+ if (set_find(loop_outs, &key, sizeof(key), HASH_PTR(key.irn)) == NULL) {
+ /* If the loop out is for exceptions in the loop. */
+ if ((get_irn_op(key.irn) == op_Phi && get_irn_mode(key.irn) == mode_M) ||
+ get_irn_op(key.irn) == op_Call)
+ new_after_loop_node(l_n,loop_outs, key.irn, value, unroll_factor);
+ else
+ continue;
+ } else
+ continue;
+ } else
+ set_irn_n(key.irn, p, value->copy[unroll_factor-2]);
+ }
+ }