Lines Matching refs:jumps

27  * This pass lowers jumps (break, continue, and return) to if/else structures.
30 * 1. Pull jumps out of ifs where possible
70 * The ordering of strengths roughly reflects the way jumps are
71 * lowered: jumps with higher strength tend to be lowered to jumps of
147 * Note that identical jumps are usually unified though.
527 ir_jump* jumps[2];
529 /* Recursively lower nested jumps. This satisfies the
531 * unconditional jumps at the end of ir->then_instructions and
544 jumps[i] = 0;
546 jumps[i] = (ir_jump*)list.get_tail();
550 * postcondition by lowering jumps in both then_instructions and
554 /* Determine the types of the jumps that terminate
560 if(jumps[i]) {
562 assert(jump_strengths[i] == get_jump_strength(jumps[i]));
567 /* If both code paths end in a jump, and the jumps are the
568 * same, and we are pulling out jumps, replace them with a
586 jumps[0]->remove();
587 jumps[1]->remove();
590 /* Update jumps[] to reflect the fact that the jumps
595 jumps[0] = 0;
596 jumps[1] = 0;
612 should_lower[i] = should_lower_jump(jumps[i]);
634 insert_lowered_return((ir_return*)jumps[lower]);
642 /* Note: we must update block_records and jumps to
647 jumps[lower]->replace_with(lowered);
648 jumps[lower] = lowered;
670 jumps[lower]->insert_before(create_lowered_break());
683 jumps[lower]->replace_with(new(ir) ir_assignment(new (ir) ir_dereference_variable(execute_flag), new (ir) ir_constant(false)));
684 /* Note: we must update block_records and jumps to reflect
688 jumps[lower] = 0;
708 if(jumps[0] && block_records[1].min_strength >= strength_continue)
710 else if(jumps[1] && block_records[0].min_strength >= strength_continue)
715 jumps[move_out]->remove();
716 ir->insert_after(jumps[move_out]);
717 /* Note: we must update block_records and jumps to reflect
720 jumps[move_out] = 0;
857 /* Recursively lower nested jumps. This satisfies the
981 /* Visit the body of the function to lower any jumps that occur