Lines Matching defs:bb

118 maybe_hot_bb_p (basic_block bb)
121 && (bb->count
124 if (bb->frequency < BB_FREQ_MAX / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))
132 probably_cold_bb_p (basic_block bb)
135 && (bb->count
138 if (bb->frequency < BB_FREQ_MAX / PARAM_VALUE (HOT_BB_FREQUENCY_FRACTION))
145 probably_never_executed_bb_p (basic_block bb)
148 return ((bb->count + profile_info->runs / 2) / profile_info->runs) == 0;
156 rtl_predicted_by_p (basic_block bb, enum br_predictor predictor)
159 if (!INSN_P (BB_END (bb)))
161 for (note = REG_NOTES (BB_END (bb)); note; note = XEXP (note, 1))
172 tree_predicted_by_p (basic_block bb, enum br_predictor predictor)
175 for (i = bb->predictions; i; i = i->ep_next)
350 basic_block bb, int used)
358 FOR_EACH_EDGE (e, ei, bb->succs)
366 if (bb->count)
369 fprintf (file, HOST_WIDEST_INT_PRINT_DEC, bb->count);
374 fprintf (file, " (%.1f%%)", e->count * 100.0 / bb->count);
381 /* We can not predict the probabilities of outgoing edges of bb. Set them
384 set_even_probabilities (basic_block bb)
390 FOR_EACH_EDGE (e, ei, bb->succs)
393 FOR_EACH_EDGE (e, ei, bb->succs)
404 combine_predictions_for_insn (rtx insn, basic_block bb)
418 set_even_probabilities (bb);
425 fprintf (dump_file, "Predictions for insn %i bb %i\n", INSN_UID (insn),
426 bb->index);
462 combined_probability, bb, true);
466 bb, !first_match);
468 bb, first_match);
473 dump_prediction (dump_file, PRED_COMBINED, combined_probability, bb, true);
482 dump_prediction (dump_file, predictor, probability, bb,
498 if (!single_succ_p (bb))
500 BRANCH_EDGE (bb)->probability = combined_probability;
501 FALLTHRU_EDGE (bb)->probability
505 else if (!single_succ_p (bb))
509 BRANCH_EDGE (bb)->probability = prob;
510 FALLTHRU_EDGE (bb)->probability = REG_BR_PROB_BASE - prob;
513 single_succ_edge (bb)->probability = REG_BR_PROB_BASE;
520 combine_predictions_for_bb (basic_block bb)
533 FOR_EACH_EDGE (e, ei, bb->succs)
551 if (!bb->count)
552 set_even_probabilities (bb);
553 bb->predictions = NULL;
555 fprintf (dump_file, "%i edges in bb %i predicted to even probabilities\n",
556 nedges, bb->index);
561 fprintf (dump_file, "Predictions for bb %i\n", bb->index);
565 for (pred = bb->predictions; pred; pred = pred->ep_next)
598 dump_prediction (dump_file, PRED_NO_PREDICTION, combined_probability, bb, true);
601 dump_prediction (dump_file, PRED_DS_THEORY, combined_probability, bb,
603 dump_prediction (dump_file, PRED_FIRST_MATCH, best_probability, bb,
609 dump_prediction (dump_file, PRED_COMBINED, combined_probability, bb, true);
611 for (pred = bb->predictions; pred; pred = pred->ep_next)
616 if (pred->ep_edge != EDGE_SUCC (bb, 0))
618 dump_prediction (dump_file, predictor, probability, bb,
621 bb->predictions = NULL;
623 if (!bb->count)
645 basic_block bb, *bbs;
723 bb = bbs[j];
729 if ((rtlsimpleloops && !can_predict_insn_p (BB_END (bb)))
730 || predicted_by_p (bb, PRED_CONTINUE))
735 if (bb == loop->latch)
768 FOR_EACH_EDGE (e, ei, bb->succs)
789 bb_estimate_probability_locally (basic_block bb)
791 rtx last_insn = BB_END (bb);
887 guess_outgoing_edge_probabilities (basic_block bb)
889 bb_estimate_probability_locally (bb);
890 combine_predictions_for_insn (BB_END (bb), bb);
1003 basic_block bb;
1004 FOR_EACH_BB (bb)
1007 for (bi = bsi_start (bb); !bsi_end_p (bi); bsi_next (&bi))
1031 tree_predict_by_opcode (basic_block bb)
1033 tree stmt = last_stmt (bb);
1044 FOR_EACH_EDGE (then_edge, ei, bb->succs)
1250 basic_block bb;
1259 FOR_EACH_BB (bb)
1261 block_stmt_iterator bsi = bsi_last (bb);
1263 for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
1278 predict_paths_leading_to (bb, heads, PRED_NORETURN,
1294 basic_block bb;
1311 FOR_EACH_BB (bb)
1316 FOR_EACH_EDGE (e, ei, bb->succs)
1322 && TREE_CODE (last_stmt (bb)) == RETURN_EXPR
1323 && !single_pred_p (bb))
1328 FOR_EACH_EDGE (e1, ei1, bb->preds)
1338 if (e->dest != EXIT_BLOCK_PTR && e->dest != bb
1365 tree_predict_by_opcode (bb);
1367 FOR_EACH_BB (bb)
1368 combine_predictions_for_bb (bb);
1460 last_basic_block_p (basic_block bb)
1462 if (bb == EXIT_BLOCK_PTR)
1465 return (bb->next_bb == EXIT_BLOCK_PTR
1466 || (bb->next_bb->next_bb == EXIT_BLOCK_PTR
1467 && single_succ_p (bb)
1468 && single_succ (bb)->next_bb == EXIT_BLOCK_PTR));
1472 FLAGS. HEADS[bb->index] should be index of basic block in that we
1478 predict_paths_leading_to (basic_block bb, int *heads, enum br_predictor pred,
1485 if (heads[bb->index] == ENTRY_BLOCK)
1490 basic_block ai = bb;
1491 basic_block next_ai = get_immediate_dominator (CDI_DOMINATORS, bb);
1496 if (!dominated_by_p (CDI_POST_DOMINATORS, next_ai, bb))
1502 if (!dominated_by_p (CDI_POST_DOMINATORS, next_ai, bb))
1506 while (next_ai != bb)
1513 y = heads[bb->index];
1521 && dominated_by_p (CDI_POST_DOMINATORS, e->dest, bb))
1562 basic_block bb;
1579 bb = BASIC_BLOCK (i);
1581 FOR_EACH_EDGE (e, ei, bb->preds)
1590 e->src->index, bb->index);
1592 BLOCK_INFO (bb)->npredecessors = count;
1597 for (bb = head; bb; bb = nextbb)
1605 nextbb = BLOCK_INFO (bb)->next;
1606 BLOCK_INFO (bb)->next = NULL;
1609 if (bb != head)
1612 FOR_EACH_EDGE (e, ei, bb->preds)
1617 FOR_EACH_EDGE (e, ei, bb->preds)
1639 memcpy (&BLOCK_INFO (bb)->frequency, &frequency,
1650 /* BLOCK_INFO (bb)->frequency = frequency
1654 sreal_div (&BLOCK_INFO (bb)->frequency,
1659 bitmap_clear_bit (tovisit, bb->index);
1661 e = find_edge (bb, head);
1667 = ((e->probability * BLOCK_INFO (bb)->frequency)
1671 sreal_mul (&tmp, &tmp, &BLOCK_INFO (bb)->frequency);
1677 FOR_EACH_EDGE (e, ei, bb->succs)
1733 basic_block bb;
1735 FOR_EACH_BB (bb)
1736 true_count_max = MAX (bb->count, true_count_max);
1739 FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
1740 bb->frequency = (bb->count * BB_FREQ_MAX + count_max / 2) / count_max;
1753 basic_block bb;
1768 FOR_EACH_BB (bb)
1772 for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb));
1776 sum += bb->frequency;
1790 basic_block bb;
1818 FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
1823 FOR_EACH_EDGE (e, ei, bb->succs)
1837 FOR_EACH_BB (bb)
1838 if (sreal_compare (&freq_max, &BLOCK_INFO (bb)->frequency) < 0)
1839 memcpy (&freq_max, &BLOCK_INFO (bb)->frequency, sizeof (freq_max));
1842 FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
1846 sreal_mul (&tmp, &BLOCK_INFO (bb)->frequency, &freq_max);
1848 bb->frequency = sreal_to_int (&tmp);
1864 basic_block bb;
1869 FOR_EACH_BB (bb)
1871 if (maybe_hot_bb_p (bb))
1876 if (!probably_never_executed_bb_p (bb))