Home | History | Annotate | Download | only in gcc

Lines Matching defs:test_bb

474   basic_block test_bb = ce_info->test_bb;	/* last test block */
504 ce_info->test_bb = test_bb = ce_info->last_test_bb;
512 test_expr = cond_exec_get_condition (BB_END (test_bb));
518 if (! onlyjump_p (BB_END (test_bb)))
612 false_code = reversed_comparison_code (true_expr, BB_END (test_bb));
629 note = find_reg_note (BB_END (test_bb), REG_BR_PROB, NULL_RTX);
645 basic_block bb = test_bb;
1968 /* Currently support only simple single sets in test_bb. */
2841 TEST_BB, or there was no INSN_B which can happen for e.g. conditional
2842 stores to memory. For the cost computation use the block TEST_BB where
2847 || BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb));
3066 /* Return true iff basic block TEST_BB is valid for noce if-conversion.
3068 In practice, check that TEST_BB ends with a single set
3070 in TEST_BB don't produce any values that are live after TEST_BB.
3071 In other words, all the insns in TEST_BB are there only
3073 in TEST_BB to COST. Record whether TEST_BB is a single simple
3077 bb_valid_for_noce_process_p (basic_block test_bb, rtx cond,
3080 if (!test_bb)
3083 rtx_insn *last_insn = last_active_insn (test_bb, FALSE);
3093 if (JUMP_P (BB_END (test_bb)) && !onlyjump_p (BB_END (test_bb)))
3099 rtx_insn *first_insn = first_active_insn (test_bb);
3106 bool speed_p = optimize_bb_for_speed_p (test_bb);
3118 /* For now, disallow setting x multiple times in test_bb. */
3124 /* The regs that are live out of test_bb. */
3125 bitmap test_bb_live_out = df_get_live_out (test_bb);
3129 FOR_BB_INSNS (test_bb, insn)
3152 /* If any of the intermediate results in test_bb are live after test_bb
3255 basic_block test_bb = if_info->test_bb;
3356 remove_edge (find_edge (test_bb, join_bb));
3358 redirect_edge_and_branch_force (single_succ_edge (test_bb), join_bb);
3363 if (can_merge_blocks_p (test_bb, join_bb))
3365 merge_blocks (test_bb, join_bb);
3647 /* Return true iff basic block TEST_BB is comprised of only
3655 bb_ok_for_noce_convert_multiple_sets (basic_block test_bb, unsigned *cost)
3660 bool speed_p = optimize_bb_for_speed_p (test_bb);
3663 FOR_BB_INSNS (test_bb, insn)
3729 basic_block test_bb = if_info->test_bb; /* test block */
3781 bool speed_p = optimize_bb_for_speed_p (test_bb);
3794 find_edge (test_bb, then_bb));
4008 emit_insn_before_setloc (seq, BB_END (test_bb), INSN_LOCATION (insn_a));
4020 remove_edge (find_edge (test_bb, join_bb));
4023 redirect_edge_and_branch_force (single_succ_edge (test_bb), join_bb);
4027 if (can_merge_blocks_p (test_bb, join_bb))
4029 merge_blocks (test_bb, join_bb);
4277 basic_block test_bb = if_info->test_bb;
4372 remove_edge (find_edge (test_bb, join_bb));
4375 redirect_edge_and_branch_force (single_succ_edge (test_bb), join_bb);
4379 if (can_merge_blocks_p (test_bb, join_bb))
4381 merge_blocks (test_bb, join_bb);
4405 noce_find_if_block (basic_block test_bb, edge then_edge, edge else_edge,
4414 bool speed_p = optimize_bb_for_speed_p (test_bb);
4473 pass, test_bb->index, then_bb->index);
4483 jump = BB_END (test_bb);
4498 if_info.test_bb = test_bb;
4541 basic_block test_bb = ce_info->test_bb; /* last test block */
4549 combo_bb = test_bb;
4550 df_set_bb_dirty (test_bb);
4556 basic_block bb = test_bb;
4683 find_if_header (basic_block test_bb, int pass)
4690 if (EDGE_COUNT (test_bb->succs) != 2)
4693 then_edge = EDGE_SUCC (test_bb, 0);
4694 else_edge = EDGE_SUCC (test_bb, 1);
4721 ce_info.test_bb = test_bb;
4731 && noce_find_if_block (test_bb, then_edge, else_edge, pass))
4741 && find_cond_trap (test_bb, then_edge, else_edge))
4747 if (find_if_case_1 (test_bb, then_edge, else_edge))
4749 if (find_if_case_2 (test_bb, then_edge, else_edge))
4760 return ce_info.test_bb;
4840 basic_block test_bb = ce_info->test_bb;
4848 ce_info->last_test_bb = test_bb;
4857 if (single_pred_p (test_bb)
4858 && single_pred_edge (test_bb)->flags == EDGE_FALLTHRU)
4860 basic_block bb = single_pred (test_bb);
4884 ce_info->last_test_bb = test_bb;
4889 ce_info->test_bb = test_bb = bb;
4998 test_bb->index,
4999 BB_HEAD (test_bb) ? (int)INSN_UID (BB_HEAD (test_bb)) : -1,
5072 find_cond_trap (basic_block test_bb, edge then_edge, edge else_edge)
5094 test_bb->index, trap_bb->index);
5098 jump = BB_END (test_bb);
5134 df_set_bb_dirty (test_bb);
5146 single_succ_edge (test_bb)->flags |= EDGE_FALLTHRU;
5158 if (can_merge_blocks_p (test_bb, other_bb))
5160 merge_blocks (test_bb, other_bb);
5272 find_if_case_1 (basic_block test_bb, edge then_edge, edge else_edge)
5294 || (JUMP_P (BB_END (test_bb))
5295 && CROSSING_JUMP_P (BB_END (test_bb)))
5301 /* Verify test_bb ends in a conditional jump with no other side-effects. */
5302 if (!onlyjump_p (BB_END (test_bb)))
5325 test_bb->index, then_bb->index);
5344 if (! dead_or_predicable (test_bb, then_bb, else_bb,
5352 followed by else_bb, i.e. deleting then_bb allows test_bb to fall
5356 && then_bb->prev_bb == test_bb
5359 redirect_edge_succ (FALLTHRU_EDGE (test_bb), else_bb);
5363 new_bb = force_nonfallthru_and_redirect (FALLTHRU_EDGE (test_bb),
5366 new_bb = redirect_edge_and_branch_force (FALLTHRU_EDGE (test_bb),
5369 df_set_bb_dirty (test_bb);
5382 gcc_checking_assert (BB_PARTITION (new_bb) == BB_PARTITION (test_bb));
5393 find_if_case_2 (basic_block test_bb, edge then_edge, edge else_edge)
5418 || (JUMP_P (BB_END (test_bb))
5419 && CROSSING_JUMP_P (BB_END (test_bb)))
5425 /* Verify test_bb ends in a conditional jump with no other side-effects. */
5426 if (!onlyjump_p (BB_END (test_bb)))
5464 test_bb->index, else_bb->index);
5474 if (! dead_or_predicable (test_bb, else_bb, then_bb, else_succ, 0))
5480 df_set_bb_dirty (test_bb);
5496 TEST_BB is the block containing the conditional branch. MERGE_BB
5499 TEST_BB should be branching to its destination.
5503 dead_or_predicable (basic_block test_bb, basic_block merge_bb,
5515 jump = BB_END (test_bb);
5525 into test_bb and then deleting merge_bb will result in the jumptable
5666 /* If shrink-wrapping, disable this optimization when test_bb is
5673 && ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb == test_bb
5756 redirect_edge_succ (BRANCH_EDGE (test_bb
5759 std::swap (BRANCH_EDGE (test_bb)->probability,
5760 FALLTHRU_EDGE (test_bb)->probability);
5761 update_br_prob_note (test_bb);
5808 remove_edge (BRANCH_EDGE (test_bb));