[gcc(refs/vendors/ARM/heads/arm-perf-staging)] Remove fishy self-assignment in omp-low.c [PR94629]
Tamar Christina
tnfchris@gcc.gnu.org
Fri Jul 17 14:47:36 GMT 2020
https://gcc.gnu.org/g:15256c8a8ac6573d250506c40dbe13082186c2aa
commit 15256c8a8ac6573d250506c40dbe13082186c2aa
Author: Frederik Harwath <frederik@codesourcery.com>
Date: Tue Apr 21 12:36:14 2020 +0200
Remove fishy self-assignment in omp-low.c [PR94629]
The PR noticed that omp-low.c contains a self-assignment in the
function new_omp_context:
if (outer_ctx) {
...
ctx->outer_reduction_clauses = ctx->outer_reduction_clauses;
This is obviously useless. The original intention might have been
to copy the field from the outer_ctx to ctx. Since this is done
(properly) in the only function where this field is actually used
(in function scan_omp_for) and the field is being initialized to zero
during the struct allocation, there is no need to attempt to do
anything to this field in new_omp_context. Thus this commit
removes any assignment to the field from new_omp_context.
2020-04-21 Frederik Harwath <frederik@codesourcery.com>
PR other/94629
* gcc/omp-low.c (new_omp_context): Remove assignments to
ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
Diff:
---
gcc/ChangeLog | 6 ++++++
gcc/omp-low.c | 14 ++++++++------
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 721928d931d..c3572ca03bd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-21 Frederik Harwath <frederik@codesourcery.com>
+
+ PR other/94629
+ * omp-low.c (new_omp_context): Remove assignments to
+ ctx->outer_reduction_clauses and ctx->local_reduction_clauses.
+
2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com>
* config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx")
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 67565d61400..88f23e60d34 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -128,10 +128,16 @@ struct omp_context
corresponding tracking loop iteration variables. */
hash_map<tree, tree> *lastprivate_conditional_map;
- /* A tree_list of the reduction clauses in this context. */
+ /* A tree_list of the reduction clauses in this context. This is
+ only used for checking the consistency of OpenACC reduction
+ clauses in scan_omp_for and is not guaranteed to contain a valid
+ value outside of this function. */
tree local_reduction_clauses;
- /* A tree_list of the reduction clauses in outer contexts. */
+ /* A tree_list of the reduction clauses in outer contexts. This is
+ only used for checking the consistency of OpenACC reduction
+ clauses in scan_omp_for and is not guaranteed to contain a valid
+ value outside of this function. */
tree outer_reduction_clauses;
/* Nesting depth of this context. Used to beautify error messages re
@@ -931,8 +937,6 @@ new_omp_context (gimple *stmt, omp_context *outer_ctx)
ctx->outer = outer_ctx;
ctx->cb = outer_ctx->cb;
ctx->cb.block = NULL;
- ctx->local_reduction_clauses = NULL;
- ctx->outer_reduction_clauses = ctx->outer_reduction_clauses;
ctx->depth = outer_ctx->depth + 1;
}
else
@@ -948,8 +952,6 @@ new_omp_context (gimple *stmt, omp_context *outer_ctx)
ctx->cb.transform_call_graph_edges = CB_CGE_MOVE;
ctx->cb.adjust_array_error_bounds = true;
ctx->cb.dont_remap_vla_if_no_change = true;
- ctx->local_reduction_clauses = NULL;
- ctx->outer_reduction_clauses = NULL;
ctx->depth = 1;
}
More information about the Gcc-cvs
mailing list