diff options
author | Jan Hubicka <jh@suse.cz> | 2005-06-03 21:03:29 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2005-06-03 19:03:29 +0000 |
commit | 3809e99053b8195163c43228e54831704c35484c (patch) | |
tree | dccec4c166610579fbf93533c4da6b37727bb546 /gcc/predict.c | |
parent | 7c9ac5c0354c587ba84956a4a34584ec2c7648cb (diff) | |
download | gcc-3809e99053b8195163c43228e54831704c35484c.zip gcc-3809e99053b8195163c43228e54831704c35484c.tar.gz gcc-3809e99053b8195163c43228e54831704c35484c.tar.bz2 |
basic-block.h (remove_predictions_associated_with_edge): Declare.
* basic-block.h (remove_predictions_associated_with_edge): Declare.
* cfg.c (remove_edge): Use it.
* predict.c (remove_predictions_associated_with_edge): New function.
From-SVN: r100551
Diffstat (limited to 'gcc/predict.c')
-rw-r--r-- | gcc/predict.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/predict.c b/gcc/predict.c index 25f97f7..8ca44f6 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -240,6 +240,24 @@ tree_predict_edge (edge e, enum br_predictor predictor, int probability) i->edge = e; } +/* Remove all predictions on given basic block that are attached + to edge E. */ +void +remove_predictions_associated_with_edge (edge e) +{ + if (e->src->predictions) + { + struct edge_prediction **prediction = &e->src->predictions; + while (*prediction) + { + if ((*prediction)->edge == e) + *prediction = (*prediction)->next; + else + prediction = &((*prediction)->next); + } + } +} + /* Return true when we can store prediction on insn INSN. At the moment we represent predictions only on conditional jumps, not at computed jump or other complicated cases. */ |