gcc/ChangeLog.gimple-classes: * gimple.h (gimple_omp_teams_clauses): Strengthen param from const_gimple to const gomp_teams *. (gimple_omp_teams_clauses_ptr): Strengthen param from gimple to gomp_teams *.
* gimple-walk.c (walk_gimple_op): Add checked cast. * tree-inline.c (remap_gimple_stmt): Within case GIMPLE_OMP_TEAMS, introduce local "omp_teams_stmt" via a checked cast, and use in place of "stmt". * tree-nested.c (convert_nonlocal_reference_stmt): Likewise. (convert_local_reference_stmt): Likewise. --- gcc/ChangeLog.gimple-classes | 14 ++++++++++++++ gcc/gimple-walk.c | 5 +++-- gcc/gimple.h | 13 +++++-------- gcc/tree-inline.c | 9 ++++++--- gcc/tree-nested.c | 31 +++++++++++++++++++++---------- 5 files changed, 49 insertions(+), 23 deletions(-) diff --git a/gcc/ChangeLog.gimple-classes b/gcc/ChangeLog.gimple-classes index 68add33..626ea2f 100644 --- a/gcc/ChangeLog.gimple-classes +++ b/gcc/ChangeLog.gimple-classes @@ -1,5 +1,19 @@ 2014-10-29 David Malcolm <dmalc...@redhat.com> + * gimple.h (gimple_omp_teams_clauses): Strengthen param from + const_gimple to const gomp_teams *. + (gimple_omp_teams_clauses_ptr): Strengthen param from gimple to + gomp_teams *. + + * gimple-walk.c (walk_gimple_op): Add checked cast. + * tree-inline.c (remap_gimple_stmt): Within case GIMPLE_OMP_TEAMS, + introduce local "omp_teams_stmt" via a checked cast, and use in + place of "stmt". + * tree-nested.c (convert_nonlocal_reference_stmt): Likewise. + (convert_local_reference_stmt): Likewise. + +2014-10-29 David Malcolm <dmalc...@redhat.com> + * gimple.h (gimple_omp_for_kind): Strengthen param from const_gimple to const gomp_for *. (gimple_omp_for_combined_p): Likewise. diff --git a/gcc/gimple-walk.c b/gcc/gimple-walk.c index 28648c4..13c16bb 100644 --- a/gcc/gimple-walk.c +++ b/gcc/gimple-walk.c @@ -433,8 +433,9 @@ walk_gimple_op (gimple stmt, walk_tree_fn callback_op, break; case GIMPLE_OMP_TEAMS: - ret = walk_tree (gimple_omp_teams_clauses_ptr (stmt), callback_op, wi, - pset); + ret = walk_tree (gimple_omp_teams_clauses_ptr ( + as_a <gomp_teams *> (stmt)), + callback_op, wi, pset); if (ret) return ret; break; diff --git a/gcc/gimple.h b/gcc/gimple.h index 6df9dbf..41f1691 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -5077,24 +5077,21 @@ gimple_omp_target_set_data_arg (gomp_target *omp_target_stmt, } -/* Return the clauses associated with OMP_TEAMS GS. */ +/* Return the clauses associated with OMP_TEAMS OMP_TEAMS_STMT. */ static inline tree -gimple_omp_teams_clauses (const_gimple gs) +gimple_omp_teams_clauses (const gomp_teams *omp_teams_stmt) { - const gomp_teams *omp_teams_stmt = - as_a <const gomp_teams *> (gs); return omp_teams_stmt->clauses; } -/* Return a pointer to the clauses associated with OMP_TEAMS GS. */ +/* Return a pointer to the clauses associated with OMP_TEAMS + OMP_TEAMS_STMT. */ static inline tree * -gimple_omp_teams_clauses_ptr (gimple gs) +gimple_omp_teams_clauses_ptr (gomp_teams *omp_teams_stmt) { - gomp_teams *omp_teams_stmt = - as_a <gomp_teams *> (gs); return &omp_teams_stmt->clauses; } diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index fd20bcb..6498e23 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -1474,9 +1474,12 @@ remap_gimple_stmt (gimple stmt, copy_body_data *id) break; case GIMPLE_OMP_TEAMS: - s1 = remap_gimple_seq (gimple_omp_body (stmt), id); - copy = gimple_build_omp_teams - (s1, gimple_omp_teams_clauses (stmt)); + { + gomp_teams *omp_teams_stmt = as_a <gomp_teams *> (stmt); + s1 = remap_gimple_seq (gimple_omp_body (omp_teams_stmt), id); + copy = gimple_build_omp_teams + (s1, gimple_omp_teams_clauses (omp_teams_stmt)); + } break; case GIMPLE_OMP_CRITICAL: diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index 95ecbc0..3463151 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -1421,11 +1421,17 @@ convert_nonlocal_reference_stmt (gimple_stmt_iterator *gsi, bool *handled_ops_p, break; case GIMPLE_OMP_TEAMS: - save_suppress = info->suppress_expansion; - convert_nonlocal_omp_clauses (gimple_omp_teams_clauses_ptr (stmt), wi); - walk_body (convert_nonlocal_reference_stmt, convert_nonlocal_reference_op, - info, gimple_omp_body_ptr (stmt)); - info->suppress_expansion = save_suppress; + { + gomp_teams *omp_teams_stmt = as_a <gomp_teams *> (stmt); + save_suppress = info->suppress_expansion; + convert_nonlocal_omp_clauses (gimple_omp_teams_clauses_ptr ( + omp_teams_stmt), + wi); + walk_body (convert_nonlocal_reference_stmt, + convert_nonlocal_reference_op, + info, gimple_omp_body_ptr (omp_teams_stmt)); + info->suppress_expansion = save_suppress; + } break; case GIMPLE_OMP_SECTION: @@ -1990,11 +1996,16 @@ convert_local_reference_stmt (gimple_stmt_iterator *gsi, bool *handled_ops_p, break; case GIMPLE_OMP_TEAMS: - save_suppress = info->suppress_expansion; - convert_local_omp_clauses (gimple_omp_teams_clauses_ptr (stmt), wi); - walk_body (convert_local_reference_stmt, convert_local_reference_op, - info, gimple_omp_body_ptr (stmt)); - info->suppress_expansion = save_suppress; + { + gomp_teams *omp_teams_stmt = as_a <gomp_teams *> (stmt); + save_suppress = info->suppress_expansion; + convert_local_omp_clauses (gimple_omp_teams_clauses_ptr ( + omp_teams_stmt), + wi); + walk_body (convert_local_reference_stmt, convert_local_reference_op, + info, gimple_omp_body_ptr (omp_teams_stmt)); + info->suppress_expansion = save_suppress; + } break; case GIMPLE_OMP_SECTION: -- 1.7.11.7