aboutsummaryrefslogtreecommitdiff
path: root/gcc/predict.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-06-08 18:41:35 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2017-06-08 16:41:35 +0000
commit5591f0dd96af5ed9e0de9fcf4dee0c62c7089b57 (patch)
tree4f4e0ed99df2f770afb81bcb929bc650a2c841cc /gcc/predict.c
parentdadcc51c88b86487f0145e8db7ff751463be1aff (diff)
downloadgcc-5591f0dd96af5ed9e0de9fcf4dee0c62c7089b57.zip
gcc-5591f0dd96af5ed9e0de9fcf4dee0c62c7089b57.tar.gz
gcc-5591f0dd96af5ed9e0de9fcf4dee0c62c7089b57.tar.bz2
predict.c (unlikely_executed_edge_p): Move ahead.
* predict.c (unlikely_executed_edge_p): Move ahead. (probably_never_executed_edge_p): Use it. From-SVN: r249025
Diffstat (limited to 'gcc/predict.c')
-rw-r--r--gcc/predict.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/gcc/predict.c b/gcc/predict.c
index b460a6f..bf93230 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -238,11 +238,22 @@ probably_never_executed_bb_p (struct function *fun, const_basic_block bb)
}
+/* Return true if E is unlikely executed for obvious reasons. */
+
+static bool
+unlikely_executed_edge_p (edge e)
+{
+ return e->count == profile_count::zero ()
+ || (e->flags & (EDGE_EH | EDGE_FAKE));
+}
+
/* Return true in case edge E is probably never executed. */
bool
probably_never_executed_edge_p (struct function *fun, edge e)
{
+ if (e->count.initialized_p ())
+ unlikely_executed_edge_p (e);
return probably_never_executed (fun, e->count, EDGE_FREQUENCY (e));
}
@@ -761,15 +772,6 @@ dump_prediction (FILE *file, enum br_predictor predictor, int probability,
fprintf (file, "\n");
}
-/* Return true if E is unlikely executed. */
-
-static bool
-unlikely_executed_edge_p (edge e)
-{
- return e->count == profile_count::zero ()
- || (e->flags & (EDGE_EH | EDGE_FAKE));
-}
-
/* Return true if STMT is known to be unlikely executed. */
static bool