Lines Matching refs:lower
72 * lower strength. Accordingly, strength is used as a heuristic to
253 * Note that visiting a jump does not lower it. That is the
302 * Insert the instructions necessary to lower a return statement,
323 * If the given instruction is a return, lower it to instructions
412 bool lower;
416 lower = false; /* don't change this, code relies on it */
419 lower = lower_continue;
422 lower = false;
425 /* never lower return at the end of a this->function */
427 lower = false;
429 lower = this->function.lower_return;
432 return lower;
467 /* Recursively lower nested jumps. This satisfies the
545 /* lower a jump: if both need to lowered, start with the strongest one, so that
552 int lower;
554 lower = jump_strengths[1] > jump_strengths[0];
556 lower = 0;
558 lower = 1;
566 if(jump_strengths[lower] == strength_return) {
567 /* To lower a return, we create a return flag (if the
572 insert_lowered_return((ir_return*)jumps[lower]);
584 block_records[lower].min_strength = strength_break;
585 jumps[lower]->replace_with(lowered);
586 jumps[lower] = lowered;
596 } else if(jump_strengths[lower] == strength_break) {
598 } else if(jump_strengths[lower] == strength_continue) {
600 /* To lower a continue, we create an execute flag (if the
609 jumps[lower]->replace_with(new(ir) ir_assignment(new (ir) ir_dereference_variable(execute_flag), new (ir) ir_constant(false)));
614 jumps[lower] = 0;
615 block_records[lower].min_strength = strength_always_clears_execute_flag;
616 block_records[lower].may_clear_execute_flag = true;
783 /* Recursively lower nested jumps. This satisfies the
800 * lowering returns, lower it.
834 * loop if the return flag is set. Caller will lower that
885 /* Visit the body of the function to lower any jumps that occur
892 * then we don't need to lower it because it's the one canonical