aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-grid.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2019-02-21 12:00:47 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2019-02-21 12:00:47 +0100
commit031c5c8b6034cc0aced853adf7a66f1eed019549 (patch)
tree6cbac7f13f7b1c073387e8bc78b3d7ffa656567f /gcc/omp-grid.c
parent0864e3fcb6ffbb47de637600fa5f632aa1700ed3 (diff)
downloadgcc-031c5c8b6034cc0aced853adf7a66f1eed019549.zip
gcc-031c5c8b6034cc0aced853adf7a66f1eed019549.tar.gz
gcc-031c5c8b6034cc0aced853adf7a66f1eed019549.tar.bz2
[omp] Move NE_EXPR handling to omp_adjust_for_condition
2019-02-21 Martin Jambor <mjambor@suse.cz> PR hsa/89302 * omp-general.c (omp_extract_for_data): Removed a duplicate call to omp_adjust_for_condition, moved NE_EXPR code_cond processing... (omp_adjust_for_condition): ...here. Added necessary parameters. * omp-general.h (omp_adjust_for_condition): Updated declaration. * omp-grid.c (grid_attempt_target_gridification): Adjust to pass proper values to new parameters of omp_adjust_for_condition. From-SVN: r269066
Diffstat (limited to 'gcc/omp-grid.c')
-rw-r--r--gcc/omp-grid.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/omp-grid.c b/gcc/omp-grid.c
index 1fdd8fc..1ff65aa 100644
--- a/gcc/omp-grid.c
+++ b/gcc/omp-grid.c
@@ -1303,7 +1303,8 @@ grid_attempt_target_gridification (gomp_target *target,
push_gimplify_context ();
for (size_t i = 0; i < grid.collapse; i++)
{
- tree itype, type = TREE_TYPE (gimple_omp_for_index (inner_loop, i));
+ tree index_var = gimple_omp_for_index (inner_loop, i);
+ tree itype, type = TREE_TYPE (index_var);
if (POINTER_TYPE_P (type))
itype = signed_type_for (type);
else
@@ -1314,13 +1315,13 @@ grid_attempt_target_gridification (gomp_target *target,
walk_tree (&n1, grid_remap_prebody_decls, &wi, NULL);
tree n2 = unshare_expr (gimple_omp_for_final (inner_loop, i));
walk_tree (&n2, grid_remap_prebody_decls, &wi, NULL);
- omp_adjust_for_condition (loc, &cond_code, &n2);
+ tree step
+ = omp_get_for_step_from_incr (loc, gimple_omp_for_incr (inner_loop, i));
+ omp_adjust_for_condition (loc, &cond_code, &n2, index_var, step);
n1 = fold_convert (itype, n1);
n2 = fold_convert (itype, n2);
tree cond = fold_build2 (cond_code, boolean_type_node, n1, n2);
- tree step
- = omp_get_for_step_from_incr (loc, gimple_omp_for_incr (inner_loop, i));
tree t = build_int_cst (itype, (cond_code == LT_EXPR ? -1 : 1));
t = fold_build2 (PLUS_EXPR, itype, step, t);