Lines Matching defs: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
145 * Note that identical jumps are usually unified though.
521 ir_jump* jumps[2];
523 /* Recursively lower nested jumps. This satisfies the
525 * unconditional jumps at the end of ir->then_instructions and
538 jumps[i] = 0;
540 jumps[i] = (ir_jump*)list.get_tail();
544 * postcondition by lowering jumps in both then_instructions and
548 /* Determine the types of the jumps that terminate
554 if(jumps[i]) {
556 assert(jump_strengths[i] == get_jump_strength(jumps[i]));
561 /* If both code paths end in a jump, and the jumps are the
562 * same, and we are pulling out jumps, replace them with a
580 jumps[0]->remove();
581 jumps[1]->remove();
584 /* Update jumps[] to reflect the fact that the jumps
589 jumps[0] = 0;
590 jumps[1] = 0;
606 should_lower[i] = should_lower_jump(jumps[i]);
628 insert_lowered_return((ir_return*)jumps[lower]);
636 /* Note: we must update block_records and jumps to
641 jumps[lower]->replace_with(lowered);
642 jumps[lower] = lowered;
664 jumps[lower]->insert_before(create_lowered_break());
677 jumps[lower]->replace_with(new(ir) ir_assignment(new (ir) ir_dereference_variable(execute_flag), new (ir) ir_constant(false), 0));
678 /* Note: we must update block_records and jumps to reflect
682 jumps[lower] = 0;
702 if(jumps[0] && block_records[1].min_strength >= strength_continue)
704 else if(jumps[1] && block_records[0].min_strength >= strength_continue)
709 jumps[move_out]->remove();
710 ir->insert_after(jumps[move_out]);
711 /* Note: we must update block_records and jumps to reflect
714 jumps[move_out] = 0;
851 /* Recursively lower nested jumps. This satisfies the
962 /* Visit the body of the function to lower any jumps that occur