aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/trans.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2019-02-08 11:07:08 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2019-02-08 11:07:08 +0000
commit3bdf0b644a3e808d740a3edc32a29d934bf5deea (patch)
tree83c7e613fd17d9ce6323caf6b90e3e6456b567dd /gcc/ada/gcc-interface/trans.c
parent89cfdb7e5ba6f5e00e13473790ef787189c59c01 (diff)
downloadgcc-3bdf0b644a3e808d740a3edc32a29d934bf5deea.zip
gcc-3bdf0b644a3e808d740a3edc32a29d934bf5deea.tar.gz
gcc-3bdf0b644a3e808d740a3edc32a29d934bf5deea.tar.bz2
trans.c (Regular_Loop_to_gnu): Replace tests on individual flag_unswitch_loops and flag_tree_loop_vectorize...
* gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on individual flag_unswitch_loops and flag_tree_loop_vectorize switches with test on global optimize switch. (Raise_Error_to_gnu): Likewise. From-SVN: r268671
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r--gcc/ada/gcc-interface/trans.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 3b0093e..3ea7964 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -3787,7 +3787,7 @@ Regular_Loop_to_gnu (Node_Id gnat_node, tree *gnu_cond_expr_p)
unswitching is enabled, do not require the loop bounds to be also
invariant, as their evaluation will still be ahead of the loop. */
if (vec_safe_length (gnu_loop_info->checks) > 0
- && (make_invariant (&gnu_low, &gnu_high) || flag_unswitch_loops))
+ && (make_invariant (&gnu_low, &gnu_high) || optimize >= 3))
{
struct range_check_info_d *rci;
unsigned int i, n_remaining_checks = 0;
@@ -3840,22 +3840,21 @@ Regular_Loop_to_gnu (Node_Id gnat_node, tree *gnu_cond_expr_p)
/* Note that loop unswitching can only be applied a small number of
times to a given loop (PARAM_MAX_UNSWITCH_LEVEL default to 3). */
if (IN_RANGE (n_remaining_checks, 1, 3)
- && optimize > 1
+ && optimize >= 2
&& !optimize_size)
FOR_EACH_VEC_ELT (*gnu_loop_info->checks, i, rci)
if (rci->invariant_cond != boolean_false_node)
{
TREE_OPERAND (rci->inserted_cond, 0) = rci->invariant_cond;
- if (flag_unswitch_loops)
+ if (optimize >= 3)
add_stmt_with_node_force (rci->inserted_cond, gnat_node);
}
}
/* Second, if loop vectorization is enabled and the iterations of the
loop can easily be proved as independent, mark the loop. */
- if (optimize
- && flag_tree_loop_vectorize
+ if (optimize >= 3
&& independent_iterations_p (LOOP_STMT_BODY (gnu_loop_stmt)))
LOOP_STMT_IVDEP (gnu_loop_stmt) = 1;
@@ -6478,7 +6477,7 @@ Raise_Error_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p)
= build1 (SAVE_EXPR, boolean_type_node, boolean_true_node);
vec_safe_push (loop->checks, rci);
gnu_cond = build_noreturn_cond (gnat_to_gnu (gnat_cond));
- if (flag_unswitch_loops)
+ if (optimize >= 3)
gnu_cond = build_binary_op (TRUTH_ANDIF_EXPR,
boolean_type_node,
rci->inserted_cond,