aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-08-17 16:24:53 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-08-17 16:24:53 +0200
commit865f704603c2db06e82aaf1036a9cd6dca0cf3d6 (patch)
tree30ec27784a09fa29f2dba92c6929dc8378f6aa9c
parente07f4b008daa0cd06b079202919508fa74f030ff (diff)
downloadgcc-865f704603c2db06e82aaf1036a9cd6dca0cf3d6.zip
gcc-865f704603c2db06e82aaf1036a9cd6dca0cf3d6.tar.gz
gcc-865f704603c2db06e82aaf1036a9cd6dca0cf3d6.tar.bz2
gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p instead of testing ECF_NORETURN bit in gimple_call_flags.
* gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p instead of testing ECF_NORETURN bit in gimple_call_flags. * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise. * predict.c (tree_bb_level_predictions): Likewise. * gimple-low.c (gimple_stmt_may_fallthru): Likewise. From-SVN: r239539
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimple-fold.c2
-rw-r--r--gcc/gimple-low.c2
-rw-r--r--gcc/predict.c3
-rw-r--r--gcc/tree-cfg.c4
5 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9bb3824..8c27eae 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2016-08-17 Jakub Jelinek <jakub@redhat.com>
+ * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
+ instead of testing ECF_NORETURN bit in gimple_call_flags.
+ * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
+ * predict.c (tree_bb_level_predictions): Likewise.
+ * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
+
PR middle-end/77259
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
turning a call into __builtin_unreachable-like noreturn call, adjust
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 73c2314..fbbe520 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -3184,7 +3184,7 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
/* If changing the call to __cxa_pure_virtual
or similar noreturn function, adjust gimple_call_fntype
too. */
- if ((gimple_call_flags (stmt) & ECF_NORETURN)
+ if (gimple_call_noreturn_p (stmt)
&& VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fndecl)))
&& TYPE_ARG_TYPES (TREE_TYPE (fndecl))
&& (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl)))
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 9ea17af..5f3361a 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -610,7 +610,7 @@ gimple_stmt_may_fallthru (gimple *stmt)
case GIMPLE_CALL:
/* Functions that do not return do not fall through. */
- return (gimple_call_flags (stmt) & ECF_NORETURN) == 0;
+ return !gimple_call_noreturn_p (stmt);
default:
return true;
diff --git a/gcc/predict.c b/gcc/predict.c
index c1dbb96..035a0c2 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -2639,8 +2639,7 @@ tree_bb_level_predictions (void)
if (is_gimple_call (stmt))
{
- if ((gimple_call_flags (stmt) & ECF_NORETURN)
- && has_return_edges)
+ if (gimple_call_noreturn_p (stmt) && has_return_edges)
predict_paths_leading_to (bb, PRED_NORETURN,
NOT_TAKEN);
decl = gimple_call_fndecl (stmt);
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 4e55a83..57c8410 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -807,7 +807,7 @@ make_edges_bb (basic_block bb, struct omp_region **pcur_region, int *pomp_index)
}
/* Some calls are known not to return. */
else
- fallthru = !(gimple_call_flags (last) & ECF_NORETURN);
+ fallthru = !gimple_call_noreturn_p (last);
break;
case GIMPLE_ASSIGN:
@@ -9083,7 +9083,7 @@ execute_fixup_cfg (void)
if (!stmt
|| (!is_ctrl_stmt (stmt)
&& (!is_gimple_call (stmt)
- || (gimple_call_flags (stmt) & ECF_NORETURN) == 0)))
+ || !gimple_call_noreturn_p (stmt))))
{
if (stmt && is_gimple_call (stmt))
gimple_call_set_ctrl_altering (stmt, false);