diff options
author | Martin Jambor <mjambor@suse.cz> | 2019-02-21 12:00:47 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2019-02-21 12:00:47 +0100 |
commit | 031c5c8b6034cc0aced853adf7a66f1eed019549 (patch) | |
tree | 6cbac7f13f7b1c073387e8bc78b3d7ffa656567f /gcc/omp-grid.c | |
parent | 0864e3fcb6ffbb47de637600fa5f632aa1700ed3 (diff) | |
download | gcc-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.c | 9 |
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); |