13-02-2014 Ilmir Usmanov Add OpenACC 1.0 support to GENERIC, except loop directive and subarrays. Dmitry Bocharnikov Evgeny Gavrin Ilmir Usmanov gcc/ * gimplify.c (is_gimple_stmt): Stub OpenACC directives and clauses. (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Likewise. (gimplify_expr): Likewise. * omp-low.c (scan_sharing_clauses): Likewise. (gimple_code_is_oacc): New helper function. (scan_sharing_clauses): Use it. * tree-core.h (OMP_CLAUSE_HOST, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_GANG, OMP_CLAUSE_WAIT, OMP_NO_CLAUSE_CACHE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH): New clauses. * tree-pretty-print.c (dump_omp_clause): Print OpenACC clause. (dump_generic_node): Print OpenACC directives and its clauses. * tree.c (omp_clause_num_ops): Add OpenACC clauses. (omp_clause_code_name): Likewise. (walk_tree_1): Likewise. * tree.def (OACC_KERNELS): New tree node. (OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE): Likewise. (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_WAIT, OACC_CACHE): Likewise. * tree.h (OACC_KERNELS_BODY): New macros. (OACC_KERNELS_CLAUSES, OACC_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR, OMP_CLAUSE_VECTOR_LENGTH_EXPR, OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR, OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_ASYNC_EXPR, OMP_WAIT_EXPR, OACC_DATA_BODY, OACC_DATA_CLAUSES, OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES, OACC_WAIT_CLAUSES, OACC_CACHE_CLAUSES, OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES): Likewise. gcc/doc/ * generic.texi: Document OACC_KERNELS, OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_WAIT, OACC_CACHE.