gcc/libgomp
Chung-Lin Tang 02889d23ee gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE.
2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	gcc/
	* gimplify.c (gimplify_scan_omp_clauses): No special handling for
	OMP_CLAUSE_TILE.
	(gimplify_adjust_omp_clauses): Don't delete TILE.
	(gimplify_omp_for): Deal with TILE.
	* internal-fn.c (expand_GOACC_TILE): New function.
	* internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
	(GOACC_TILE): New.
	* omp-expand.c (struct oacc_collapse): Add tile and outer fields.
	(expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
	element fields.
	(expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
	avoid DIV for outermost collapse var.
	(expand_oacc_for): Insert tile element loop as needed.  Adjust.
	Remove out of date comments, fix whitespace.
	* omp-general.c (omp_extract_for_data): Deal with tiling.
	* omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
	adjust OLF_DIM_BASE value.
	(struct omp_for_data): Add tiling field.
	* omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
	(lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
	for auto loops.  Remove default auto determining, moved to
	oacc_loop_fixed_partitions.
	* omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
	stmts, add e_mask field.
	(oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
	(oacc_thread_numbers): Use oacc_dim_call.
	(oacc_xform_tile): New.
	(new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
	(finish_oacc_loop): Adjust for ifns vector.
	(oacc_loop_discover_walk): Append loop abstraction sites to list,
	add case for GOACC_TILE fns.
	(oacc_loop_xform_loop): Delete.
	(oacc_loop_process): Iterate over call list directly, and add
	handling for GOACC_TILE fns.
	(oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
	dump partitioning.
	(oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
	vector partitioning to outer loops.  Assign 2 partitions to loops
	when available. Add TILE handling.
	(oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
	(execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
	* tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
	* tree.c (omp_clause_num_ops): Adjust TILE ops.
	* tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.

	gcc/c/
	* c-parser.c (c_parser_omp_clause_collapse): Disallow tile.
	(c_parser_oacc_clause_tile): Disallow collapse. Fix parsing and
	semantic checking.
	* c-parser.c (c_parser_omp_for_loop): Accept tiling constructs.

	gcc/cp/
	* parser.c (cp_parser_oacc_clause_tile): Disallow collapse.  Fix
	parsing.  Parse constant expression. Remove semantic checking.
	(cp_parser_omp_clause_collapse): Disallow tile.
	(cp_parser_omp_for_loop): Deal with tile clause.  Don't emit a parse
	error about missing for after already emitting one.  Use more
	conventional for idiom for unbounded loop.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_TILE.
	* semantics.c (finish_omp_clauses): Correct TILE semantic check.
	(finish_omp_for): Deal with tile clause.

	gcc/fortran/
	* openmp.c (resolve_omp_clauses): Error on directives
	containing both tile and collapse clauses.
	(resolve_oacc_loop_blocks): Represent '*' tile arguments as zero.
	* trans-openmp.c (gfc_trans_omp_do): Lower tiled loops like
	collapsed loops.

	gcc/testsuite/
	* c-c++-common/goacc/combined-directives.c: Remove xfail.
	* c-c++-common/goacc/loop-auto-1.c: Adjust and add additional case.
	* c-c++-common/goacc/loop-auto-2.c: New.
	* c-c++-common/goacc/tile.c: Include stdbool, fix expected errors.
	* c-c++-common/goacc/tile-2.c: New.
	* g++.dg/goacc/template.C: Test tile subst.  Adjust erroneous uses.
	* g++.dg/goacc/tile-1.C: New, check tile subst.
	* gcc.dg/goacc/loop-processing-1.c: Adjust dg-final pattern.
	* gfortran.dg/goacc/combined-directives.f90: Remove xfail.
	* gfortran.dg/goacc/tile-1.f90: New test.
	* gfortran.dg/goacc/tile-2.f90: New test.
	* gfortran.dg/goacc/tile-lowering.f95: New test.

	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/tile-1.c: New.
	* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust and
	add additional case.
	* testsuite/libgomp.oacc-c-c++-common/vprop.c: XFAIL under
	"openacc_nvidia_accel_selected".
	* libgomp.oacc-fortran/nested-function-1.f90 (test2):
	Add num_workers(8) clause.

From-SVN: r245300
2017-02-09 13:46:20 +00:00
..
config Update copyright years. 2017-01-01 13:07:43 +01:00
plugin libgomp, nvptx plugin: Make "nvptx_exec" static 2017-02-02 15:35:30 +01:00
testsuite gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE. 2017-02-09 13:46:20 +00:00
acinclude.m4 Fix Solaris symbol versioning (PR libstdc++/52188) 2012-02-27 13:51:50 +00:00
aclocal.m4 libgomp: regenerate with automake-1.11.6 2016-11-30 21:05:33 +03:00
affinity.c Update copyright years. 2017-01-01 13:07:43 +01:00
alloc.c Update copyright years. 2017-01-01 13:07:43 +01:00
atomic.c Update copyright years. 2017-01-01 13:07:43 +01:00
barrier.c Update copyright years. 2017-01-01 13:07:43 +01:00
ChangeLog gimplify.c (gimplify_scan_omp_clauses): No special handling for OMP_CLAUSE_TILE. 2017-02-09 13:46:20 +00:00
ChangeLog.graphite
config.h.in configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. 2017-01-17 10:44:17 +01:00
configure configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. 2017-01-17 10:44:17 +01:00
configure.ac re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.tgt configure.tgt: Add missing ;; in between nvptx and rtems snippets. 2015-09-03 18:20:35 +02:00
critical.c Update copyright years. 2017-01-01 13:07:43 +01:00
env.c Update copyright years. 2017-01-01 13:07:43 +01:00
error.c Update copyright years. 2017-01-01 13:07:43 +01:00
fortran.c Update copyright years. 2017-01-01 13:07:43 +01:00
hashtab.h Update copyright years. 2017-01-01 13:07:43 +01:00
icv-device.c Update copyright years. 2017-01-01 13:07:43 +01:00
icv.c Update copyright years. 2017-01-01 13:07:43 +01:00
iter_ull.c Update copyright years. 2017-01-01 13:07:43 +01:00
iter.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp_f.h.in Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp_g.h Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp-plugin.c Update copyright years. 2017-01-01 13:07:43 +01:00
libgomp-plugin.h libgomp: Normalize the names of a few functions of the libgomp plugin API 2017-02-02 15:13:57 +01:00
libgomp.h libgomp: Normalize the names of a few functions of the libgomp plugin API 2017-02-02 15:13:57 +01:00
libgomp.map Merge BUILT_IN_GOACC_HOST_DATA into BUILT_IN_GOACC_DATA_START 2016-02-02 14:53:55 +01:00
libgomp.spec.in Generally link to libgomp for -ftree-parallelize-loops=*. 2013-11-07 16:07:34 +01:00
libgomp.texi gcc.c (process_command): Update copyright notice dates. 2017-01-01 12:31:28 +01:00
lock.c Update copyright years. 2017-01-01 13:07:43 +01:00
loop_ull.c Update copyright years. 2017-01-01 13:07:43 +01:00
loop.c Update copyright years. 2017-01-01 13:07:43 +01:00
Makefile.am re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
Makefile.in re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
oacc-async.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-cuda.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-host.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-init.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-int.h Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-mem.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-parallel.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-plugin.c Update copyright years. 2017-01-01 13:07:43 +01:00
oacc-plugin.h Update copyright years. 2017-01-01 13:07:43 +01:00
omp_lib.f90.in Update copyright years. 2017-01-01 13:07:43 +01:00
omp_lib.h.in Update copyright years. 2017-01-01 13:07:43 +01:00
omp.h.in Update copyright years. 2017-01-01 13:07:43 +01:00
openacc_lib.h Update copyright years. 2017-01-01 13:07:43 +01:00
openacc.f90 Update copyright years. 2017-01-01 13:07:43 +01:00
openacc.h Update copyright years. 2017-01-01 13:07:43 +01:00
ordered.c Update copyright years. 2017-01-01 13:07:43 +01:00
parallel.c Update copyright years. 2017-01-01 13:07:43 +01:00
priority_queue.c Update copyright years. 2017-01-01 13:07:43 +01:00
priority_queue.h Update copyright years. 2017-01-01 13:07:43 +01:00
sections.c Update copyright years. 2017-01-01 13:07:43 +01:00
single.c Update copyright years. 2017-01-01 13:07:43 +01:00
splay-tree.c Update copyright years. 2017-01-01 13:07:43 +01:00
splay-tree.h Update copyright years. 2017-01-01 13:07:43 +01:00
target.c libgomp: Normalize the names of a few functions of the libgomp plugin API 2017-02-02 15:13:57 +01:00
task.c Update copyright years. 2017-01-01 13:07:43 +01:00
taskloop.c Update copyright years. 2017-01-01 13:07:43 +01:00
team.c Update copyright years. 2017-01-01 13:07:43 +01:00
work.c Update copyright years. 2017-01-01 13:07:43 +01:00