diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-09-23 08:31:52 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2019-09-23 08:31:52 +0000 |
commit | 09248547abd5cce9eee57b07b8ee788f45f002ee (patch) | |
tree | 636103bf521e05bdfc3a458d54c2cb6b03e37dad /gcc/ada/gcc-interface/trans.c | |
parent | 8082999eb2e01e16beca9722664f7575185b0e61 (diff) | |
download | gcc-09248547abd5cce9eee57b07b8ee788f45f002ee.zip gcc-09248547abd5cce9eee57b07b8ee788f45f002ee.tar.gz gcc-09248547abd5cce9eee57b07b8ee788f45f002ee.tar.bz2 |
trans.c (Regular_Loop_to_gnu): Do not rotate the loop if -Og is enabled.
* gcc-interface/trans.c (Regular_Loop_to_gnu): Do not rotate the loop
if -Og is enabled.
(build_return_expr): Do not perform NRV if -Og is enabled.
(Subprogram_Body_to_gnu): Likewise.
(gnat_to_gnu) <N_Simple_Return_Statement>: Likewise.
(Handled_Sequence_Of_Statements_to_gnu): Do not inline finalizers if
-Og is enabled.
* gcc-interface/utils.c (convert_to_index_type): Return early if -Og
is enabled.
From-SVN: r276047
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index d9cd84d..7b842d4 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -3653,7 +3653,7 @@ Regular_Loop_to_gnu (Node_Id gnat_node, tree *gnu_cond_expr_p) which works in all cases. */ - if (optimize) + if (optimize && !optimize_debug) { /* We can use the do-while form directly if GNU_FIRST-1 doesn't overflow. */ @@ -4436,6 +4436,7 @@ build_return_expr (tree ret_obj, tree ret_val) a candidate for Named Return Value. If so, record it. Otherwise, if this is an expression of some kind, record it elsewhere. */ if (optimize + && !optimize_debug && AGGREGATE_TYPE_P (operation_type) && !TYPE_IS_FAT_POINTER_P (operation_type) && TYPE_MODE (operation_type) == BLKmode @@ -4773,7 +4774,7 @@ Subprogram_Body_to_gnu (Node_Id gnat_node) /* If the function returns an aggregate type and we have candidates for a Named Return Value, finalize the optimization. */ - if (optimize && gnu_subprog_language->named_ret_val) + if (optimize && !optimize_debug && gnu_subprog_language->named_ret_val) { finalize_nrv (gnu_subprog_decl, gnu_subprog_language->named_ret_val, @@ -5893,7 +5894,7 @@ Handled_Sequence_Of_Statements_to_gnu (Node_Id gnat_node) /* When not optimizing, disable inlining of finalizers as this can create a more complex CFG in the parent function. */ - if (!optimize) + if (!optimize || optimize_debug) DECL_DECLARED_INLINE_P (proc_decl) = 0; /* If there is no end label attached, we use the location of the At_End @@ -8050,7 +8051,9 @@ gnat_to_gnu (Node_Id gnat_node) /* And find out whether this is a candidate for Named Return Value. If so, record it. */ - if (!TYPE_CI_CO_LIST (gnu_subprog_type) && optimize) + if (optimize + && !optimize_debug + && !TYPE_CI_CO_LIST (gnu_subprog_type)) { tree ret_val = gnu_ret_val; |