aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2017-10-30 16:07:20 +0100
committerMartin Jambor <jamborm@gcc.gnu.org>2017-10-30 16:07:20 +0100
commit791929c91a53a168bb46e3cd08612eb69d5a6785 (patch)
tree61cd99f7f20374930f9d8c0eda7c72268f2e331f /gcc
parent932bfa9bc738058463c5430efab4aabefcfe4951 (diff)
downloadgcc-791929c91a53a168bb46e3cd08612eb69d5a6785.zip
gcc-791929c91a53a168bb46e3cd08612eb69d5a6785.tar.gz
gcc-791929c91a53a168bb46e3cd08612eb69d5a6785.tar.bz2
[hsa] Add missing guard in OMP gridification
2017-10-30 Martin Jambor <mjambor@suse.cz> * omp-grid.c (grid_attempt_target_gridification): Also insert a condition whether loop should be executed at all. From-SVN: r254225
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/omp-grid.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c690e33..8710e29 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2017-10-30 Martin Jambor <mjambor@suse.cz>
+
+ * omp-grid.c (grid_attempt_target_gridification): Also insert a
+ condition whether loop should be executed at all.
+
2017-10-30 Will Schmidt <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
diff --git a/gcc/omp-grid.c b/gcc/omp-grid.c
index a7b6f60..121c96e 100644
--- a/gcc/omp-grid.c
+++ b/gcc/omp-grid.c
@@ -1315,6 +1315,7 @@ grid_attempt_target_gridification (gomp_target *target,
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));
@@ -1328,6 +1329,7 @@ grid_attempt_target_gridification (gomp_target *target,
fold_build1 (NEGATE_EXPR, itype, step));
else
t = fold_build2 (TRUNC_DIV_EXPR, itype, t, step);
+ t = fold_build3 (COND_EXPR, itype, cond, t, build_zero_cst (itype));
if (grid.tiling)
{
if (cond_code == GT_EXPR)