diff options
author | Martin Liska <mliska@suse.cz> | 2016-06-16 18:05:25 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2016-06-16 16:05:25 +0000 |
commit | 68fa96d6257baa572dad70a23259670be1542efb (patch) | |
tree | 4639894bc52d12b93835464e86fc462d737e390f /gcc/predict.def | |
parent | 8b051d2e6c9a816aff781802b311dbdb77ac7be0 (diff) | |
download | gcc-68fa96d6257baa572dad70a23259670be1542efb.zip gcc-68fa96d6257baa572dad70a23259670be1542efb.tar.gz gcc-68fa96d6257baa572dad70a23259670be1542efb.tar.bz2 |
Introduce fortran loop preheader
* predict.def: Add fortran loop preheader predictor.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
fold IFN_BUILTIN_EXPECT with a known constant argument.
* trans-stmt.c (gfc_trans_simple_do): Predict the edge.
* gfortran.dg/predict-1.f90: New test.
From-SVN: r237533
Diffstat (limited to 'gcc/predict.def')
-rw-r--r-- | gcc/predict.def | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/predict.def b/gcc/predict.def index 3e3a43a..a0d0ba9 100644 --- a/gcc/predict.def +++ b/gcc/predict.def @@ -199,3 +199,9 @@ DEF_PREDICTOR (PRED_FORTRAN_INVALID_BOUND, "Fortran invalid bound", \ which in turn has an optional argument. */ DEF_PREDICTOR (PRED_FORTRAN_ABSENT_DUMMY, "Fortran absent dummy", \ HITRATE (60), 0) + +/* Fortran DO statement generates a pre-header guard: + empty = (step > 0 ? to < from : to > from), which can be predicted + to be very likely. */ +DEF_PREDICTOR (PRED_FORTRAN_LOOP_PREHEADER, "Fortran loop preheader", \ + HITRATE (99), 0) |