On Fri, Apr 29, 2016 at 10:00:43AM -0400, Nathan Sidwell wrote: > Jakub, > currently automatic loop partitioning assigns from the innermost loop > outwards -- that was the simplest thing to implement. A better algorithm is > to assign the outermost loop to the outermost available axis, and then > assign from the innermost loop outwards. That way we (generally) get gang > partitioning on the outermost loop. Just inside that we'll get > non-partitioned loops if the nest is too deep, and the two innermost nested > loops will get worker and vector partitioning. > > This patch has been on the gomp4 branch for a while. ok for trunk? > > nathan
> 2016-04-29 Nathan Sidwell <nat...@codesourcery.com> > > gcc/ > * omp-low.c (struct oacc_loop): Add 'inner' field. > (new_oacc_loop_raw): Initialize it to zero. > (oacc_loop_fixed_partitions): Initialize it. > (oacc_loop_auto_partitions): Partition outermost loop to outermost > available partitioning. > > gcc/testsuite/ > * c-c++-common/goacc/loop-auto-1.c: Adjust expected warnings. > > libgomp/ > * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust > expected partitioning. Ok. Jakub