From: Jan Hubicka Date: Sat, 4 Jun 2005 11:00:57 +0000 (+0200) Subject: predict.c (tree_predict_edge): Do not predict entry edge and single succestor edge. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e0342c26d32711da67235f44ab63714d9cc14f4a;p=gcc.git predict.c (tree_predict_edge): Do not predict entry edge and single succestor edge. * predict.c (tree_predict_edge): Do not predict entry edge and single succestor edge. From-SVN: r100581 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d32b69e69c4..267231db008 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-06-04 Jan Hubicka + + * predict.c (tree_predict_edge): Do not predict entry edge and + single succestor edge. + 2005-06-04 Joseph S. Myers PR c/21873 diff --git a/gcc/predict.c b/gcc/predict.c index 8ca44f69093..22468ace111 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -231,13 +231,17 @@ rtl_predict_edge (edge e, enum br_predictor predictor, int probability) void tree_predict_edge (edge e, enum br_predictor predictor, int probability) { - struct edge_prediction *i = ggc_alloc (sizeof (struct edge_prediction)); + if ((e->src != ENTRY_BLOCK_PTR && EDGE_COUNT (e->src->succs) > 1) + && flag_guess_branch_prob) + { + struct edge_prediction *i = ggc_alloc (sizeof (struct edge_prediction)); - i->next = e->src->predictions; - e->src->predictions = i; - i->probability = probability; - i->predictor = predictor; - i->edge = e; + i->next = e->src->predictions; + e->src->predictions = i; + i->probability = probability; + i->predictor = predictor; + i->edge = e; + } } /* Remove all predictions on given basic block that are attached