aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-openmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
-rw-r--r--gcc/fortran/trans-openmp.c103
1 files changed, 52 insertions, 51 deletions
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index 0649a34..d07ff86 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -1982,7 +1982,7 @@ gfc_trans_omp_reduction_list (gfc_omp_namelist *namelist, tree list,
tree t = gfc_trans_omp_variable (namelist->sym, false);
if (t != error_mark_node)
{
- tree node = build_omp_clause (where.lb->location,
+ tree node = build_omp_clause (gfc_get_location (&where),
OMP_CLAUSE_REDUCTION);
OMP_CLAUSE_DECL (node) = t;
if (mark_addressable)
@@ -2789,7 +2789,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if_var = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_IF);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_IF);
OMP_CLAUSE_IF_MODIFIER (c) = ERROR_MARK;
OMP_CLAUSE_IF_EXPR (c) = if_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
@@ -2805,7 +2805,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if_var = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_IF);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_IF);
switch (ifc)
{
case OMP_IF_PARALLEL:
@@ -2849,7 +2849,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
final_var = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_FINAL);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_FINAL);
OMP_CLAUSE_FINAL_EXPR (c) = final_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -2864,7 +2864,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
num_threads = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NUM_THREADS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NUM_THREADS);
OMP_CLAUSE_NUM_THREADS_EXPR (c) = num_threads;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -2881,7 +2881,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (clauses->sched_kind != OMP_SCHED_NONE)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SCHEDULE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SCHEDULE);
OMP_CLAUSE_SCHEDULE_CHUNK_EXPR (c) = chunk_size;
switch (clauses->sched_kind)
{
@@ -2918,7 +2918,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (clauses->default_sharing != OMP_DEFAULT_UNKNOWN)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_DEFAULT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_DEFAULT);
switch (clauses->default_sharing)
{
case OMP_DEFAULT_NONE:
@@ -2944,13 +2944,13 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (clauses->nowait)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NOWAIT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NOWAIT);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->ordered)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_ORDERED);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_ORDERED);
OMP_CLAUSE_ORDERED_EXPR (c)
= clauses->orderedc ? build_int_cst (integer_type_node,
clauses->orderedc) : NULL_TREE;
@@ -2959,19 +2959,19 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (clauses->untied)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_UNTIED);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_UNTIED);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->mergeable)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_MERGEABLE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_MERGEABLE);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->collapse)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_COLLAPSE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_COLLAPSE);
OMP_CLAUSE_COLLAPSE_EXPR (c)
= build_int_cst (integer_type_node, clauses->collapse);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
@@ -2979,13 +2979,13 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (clauses->inbranch)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_INBRANCH);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_INBRANCH);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->notinbranch)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NOTINBRANCH);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NOTINBRANCH);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -2994,26 +2994,26 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
case OMP_CANCEL_UNKNOWN:
break;
case OMP_CANCEL_PARALLEL:
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_PARALLEL);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_PARALLEL);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
break;
case OMP_CANCEL_SECTIONS:
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SECTIONS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SECTIONS);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
break;
case OMP_CANCEL_DO:
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_FOR);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_FOR);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
break;
case OMP_CANCEL_TASKGROUP:
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_TASKGROUP);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_TASKGROUP);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
break;
}
if (clauses->proc_bind != OMP_PROC_BIND_UNKNOWN)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_PROC_BIND);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_PROC_BIND);
switch (clauses->proc_bind)
{
case OMP_PROC_BIND_MASTER:
@@ -3041,7 +3041,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
safelen_var = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SAFELEN);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SAFELEN);
OMP_CLAUSE_SAFELEN_EXPR (c) = safelen_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3050,7 +3050,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
{
if (declare_simd)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SIMDLEN);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SIMDLEN);
OMP_CLAUSE_SIMDLEN_EXPR (c)
= gfc_conv_constant_to_tree (clauses->simdlen_expr);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
@@ -3065,7 +3065,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
simdlen_var = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SIMDLEN);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SIMDLEN);
OMP_CLAUSE_SIMDLEN_EXPR (c) = simdlen_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3081,7 +3081,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
num_teams = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NUM_TEAMS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NUM_TEAMS);
OMP_CLAUSE_NUM_TEAMS_EXPR (c) = num_teams;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3096,7 +3096,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
device = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_DEVICE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_DEVICE);
OMP_CLAUSE_DEVICE_ID (c) = device;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3111,7 +3111,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
thread_limit = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_THREAD_LIMIT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_THREAD_LIMIT);
OMP_CLAUSE_THREAD_LIMIT_EXPR (c) = thread_limit;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3128,7 +3128,8 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
if (clauses->dist_sched_kind != OMP_SCHED_NONE)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_DIST_SCHEDULE);
+ c = build_omp_clause (gfc_get_location (&where),
+ OMP_CLAUSE_DIST_SCHEDULE);
OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR (c) = chunk_size;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3143,7 +3144,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
grainsize = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_GRAINSIZE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_GRAINSIZE);
OMP_CLAUSE_GRAINSIZE_EXPR (c) = grainsize;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3158,7 +3159,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
num_tasks = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NUM_TASKS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NUM_TASKS);
OMP_CLAUSE_NUM_TASKS_EXPR (c) = num_tasks;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3173,7 +3174,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
priority = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_PRIORITY);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_PRIORITY);
OMP_CLAUSE_PRIORITY_EXPR (c) = priority;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3188,43 +3189,43 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
hint = gfc_evaluate_now (se.expr, block);
gfc_add_block_to_block (block, &se.post);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_HINT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_HINT);
OMP_CLAUSE_HINT_EXPR (c) = hint;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->simd)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SIMD);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SIMD);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->threads)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_THREADS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_THREADS);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->nogroup)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NOGROUP);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NOGROUP);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->defaultmap)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_DEFAULTMAP);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_DEFAULTMAP);
OMP_CLAUSE_DEFAULTMAP_SET_KIND (c, OMP_CLAUSE_DEFAULTMAP_TOFROM,
OMP_CLAUSE_DEFAULTMAP_CATEGORY_SCALAR);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->depend_source)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_DEPEND);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_DEPEND);
OMP_CLAUSE_DEPEND_KIND (c) = OMP_CLAUSE_DEPEND_SOURCE;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->async)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_ASYNC);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_ASYNC);
if (clauses->async_expr)
OMP_CLAUSE_ASYNC_EXPR (c)
= gfc_convert_expr_to_tree (block, clauses->async_expr);
@@ -3234,27 +3235,27 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
}
if (clauses->seq)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_SEQ);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_SEQ);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->par_auto)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_AUTO);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_AUTO);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->if_present)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_IF_PRESENT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_IF_PRESENT);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->finalize)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_FINALIZE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_FINALIZE);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->independent)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_INDEPENDENT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_INDEPENDENT);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
if (clauses->wait_list)
@@ -3263,7 +3264,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
for (el = clauses->wait_list; el; el = el->next)
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_WAIT);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_WAIT);
OMP_CLAUSE_DECL (c) = gfc_convert_expr_to_tree (block, el->expr);
OMP_CLAUSE_CHAIN (c) = omp_clauses;
omp_clauses = c;
@@ -3273,7 +3274,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
{
tree num_gangs_var
= gfc_convert_expr_to_tree (block, clauses->num_gangs_expr);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NUM_GANGS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NUM_GANGS);
OMP_CLAUSE_NUM_GANGS_EXPR (c) = num_gangs_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3281,7 +3282,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
{
tree num_workers_var
= gfc_convert_expr_to_tree (block, clauses->num_workers_expr);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_NUM_WORKERS);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_NUM_WORKERS);
OMP_CLAUSE_NUM_WORKERS_EXPR (c) = num_workers_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3289,7 +3290,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
{
tree vector_length_var
= gfc_convert_expr_to_tree (block, clauses->vector_length_expr);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_VECTOR_LENGTH);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_VECTOR_LENGTH);
OMP_CLAUSE_VECTOR_LENGTH_EXPR (c) = vector_length_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
@@ -3303,7 +3304,7 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
for (el = clauses->tile_list; el; el = el->next)
vec_safe_push (tvec, gfc_convert_expr_to_tree (block, el->expr));
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_TILE);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_TILE);
OMP_CLAUSE_TILE_LIST (c) = build_tree_list_vec (tvec);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
tvec->truncate (0);
@@ -3314,13 +3315,13 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
{
tree vector_var
= gfc_convert_expr_to_tree (block, clauses->vector_expr);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_VECTOR);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_VECTOR);
OMP_CLAUSE_VECTOR_EXPR (c) = vector_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
else
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_VECTOR);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_VECTOR);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
}
@@ -3330,20 +3331,20 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
{
tree worker_var
= gfc_convert_expr_to_tree (block, clauses->worker_expr);
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_WORKER);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_WORKER);
OMP_CLAUSE_WORKER_EXPR (c) = worker_var;
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
else
{
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_WORKER);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_WORKER);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
}
}
if (clauses->gang)
{
tree arg;
- c = build_omp_clause (where.lb->location, OMP_CLAUSE_GANG);
+ c = build_omp_clause (gfc_get_location (&where), OMP_CLAUSE_GANG);
omp_clauses = gfc_trans_add_clause (c, omp_clauses);
if (clauses->gang_num_expr)
{