+2020-01-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/93439
+ * tree-parloops.c (create_loop_fn): Move clique bookkeeping...
+ * tree-cfg.c (move_sese_region_to_fn): ... here.
+ (verify_types_in_gimple_reference): Verify used cliques are
+ tracked.
+
2020-01-28 H.J. Lu <hongjiu.lu@intel.com>
PR target/91399
+2020-01-28 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/93439
+ * gfortran.dg/graphite/pr93439.f90: New testcase.
+
2020-01-28 Sahahb Vahedi <shahab@synopsys.com>
* gcc.target/arc/code-density-flag.c: New test
--- /dev/null
+! { dg-additional-options "-O2 -floop-parallelize-all -floop-unroll-and-jam -ftree-parallelize-loops=2" }
+
+module ai
+ integer, parameter :: dp = 8
+contains
+ subroutine qu(ja, nq, en, p5)
+ real(kind = dp) :: nq(ja), en(ja), p5(ja)
+ call tl(ja, nq, en, p5)
+ end subroutine qu
+
+ subroutine tl(ja, nq, en, p5)
+ real(kind = dp) :: nq(9), en(9 * ja), p5(3 * ja)
+ do mc = 1, ja
+ do mb = 1, 9
+ do ma = 1, 3
+ p5((mc - 1) * 3 + ma) = p5((mc - 1) * 3 + ma) - 1
+ end do
+ end do
+ end do
+ end subroutine tl
+end module ai
debug_generic_stmt (expr);
return true;
}
+ if (MR_DEPENDENCE_CLIQUE (expr) != 0
+ && MR_DEPENDENCE_CLIQUE (expr) > cfun->last_clique)
+ {
+ error ("invalid clique in %qs", code_name);
+ debug_generic_stmt (expr);
+ return true;
+ }
}
else if (TREE_CODE (expr) == TARGET_MEM_REF)
{
debug_generic_stmt (expr);
return true;
}
+ if (MR_DEPENDENCE_CLIQUE (expr) != 0
+ && MR_DEPENDENCE_CLIQUE (expr) > cfun->last_clique)
+ {
+ error ("invalid clique in %qs", code_name);
+ debug_generic_stmt (expr);
+ return true;
+ }
}
else if (TREE_CODE (expr) == INDIRECT_REF)
{
after = bb;
}
+ /* Adjust the maximum clique used. */
+ dest_cfun->last_clique = saved_cfun->last_clique;
+
loop->aux = NULL;
loop0->aux = NULL;
/* Loop sizes are no longer correct, fix them up. */
DECL_ARGUMENTS (decl) = t;
allocate_struct_function (decl, false);
- DECL_STRUCT_FUNCTION (decl)->last_clique = act_cfun->last_clique;
/* The call to allocate_struct_function clobbers CFUN, so we need to restore
it. */