* Makefile.def (target_modules): Remove libcilkrts. * Makefile.in: Ditto. * configure: Ditto. * configure.ac: Ditto. contrib/ * contrib/gcc_update: Ditto. gcc/ * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, c-family/c-cilkplus.o, c-family/array-notation-common.o, cilk-common.o, cilk.h, cilk-common.c): Remove. * builtin-types.def (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove. * builtins.c (is_builtin_name): Remove cilkplus condition. (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove. * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN, cilk-builtins.def, cilkplus.def): Remove. * cif-code.def (CILK_SPAWN): Remove. * cilk-builtins.def: Delete. * cilk-common.c: Ditto. * cilk.h: Ditto. * cilkplus.def: Ditto. * config/darwin.h (fcilkplus): Delete. * cppbuiltin.c: Ditto. * doc/extend.texi: Remove cilkplus doc. * doc/generic.texi: Ditto. * doc/invoke.texi: Ditto. * doc/passes.texi: Ditto. * gcc.c (fcilkplus): Remove. * gengtype.c (cilk.h): Remove. * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus support. * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): Remove. * gimplify.c (gimplify_return_expr, maybe_fold_stmt, gimplify_call_expr, is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove cilkplus conditions. * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary, inline_read_section): Ditto. * ipa-inline-analysis.c (cilk.h): Remove. * ira.c (ira_setup_eliminable_regset): Remove cilkplus support. * lto-wrapper.c (merge_and_complain, append_compiler_options, append_linker_options): Remove condition for fcilkplus. * lto/lto-lang.c (cilk.h): Remove. (lto_init): Remove condition for fcilkplus. * omp-expand.c (expand_cilk_for_call): Delete. (expand_omp_taskreg, expand_omp_for_static_chunk, expand_omp_for): Remove cilkplus conditions. (expand_cilk_for): Delete. * omp-general.c (omp_extract_for_data): Remove cilkplus support. * omp-low.c (scan_sharing_clauses, create_omp_child_function, execute_lower_omp, diagnose_sb_0): Ditto. * omp-simd-clone.c (simd_clone_clauses_extract): Ditto. * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. * tree-nested.c: Ditto. * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support. (dump_generic_node): Ditto. * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt): Delete. * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete. gcc/c-family/ * array-notation-common.c: Delete. * c-cilkplus.c: Ditto. * c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove. * c-common.def (ARRAY_NOTATION_REF): Remove. * c-common.h (RID_CILK_SPAWN, build_array_notation_expr, build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop, c_validate_cilk_plus_loop, cilkplus_an_parts, cilk_ignorable_spawn_rhs_op, cilk_recognize_spawn): Remove. * c-gimplify.c (CILK_SPAWN_STMT): Remove. * c-omp.c: Remove CILK_SIMD check. * c-pragma.c: Ditto. * c-pragma.h: Remove CILK related pragmas. * c-pretty-print.c (c_pretty_printer::postfix_expression): Remove ARRAY_NOTATION_REF condition. (c_pretty_printer::expression): Ditto. * c.opt (fcilkplus): Remove. * cilk.c: Delete. gcc/c/ * Make-lang.in (c/c-array-notation.o): Remove. * c-array-notation.c: Delete. * c-decl.c: Remove cilkplus condition. * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for, c_parser_cilk_verify_simd, c_parser_array_notation, c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize, c_parser_cilk_simd_fn_vector_attrs, c_finish_cilk_simd_fn_tokens): Delete. (c_parser_declaration_or_fndef): Remove cilkplus condition. (c_parser_direct_declarator_inner): Ditto. (CILK_SIMD_FN_CLAUSE_MASK): Delete. (c_parser_attributes, c_parser_compound_statement, c_parser_statement_after_labels, c_parser_if_statement, c_parser_switch_statement, c_parser_while_statement, c_parser_do_statement, c_parser_for_statement, c_parser_unary_expression, c_parser_postfix_expression, c_parser_postfix_expression_after_primary, c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses, c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus support. * c-typeck.c (build_array_ref, build_function_call_vec, convert_arguments, lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt, c_finish_loop, build_binary_op): Remove cilkplus support. gcc/cp/ * Make-lang.in (cp/cp-array-notation.o, cp/cp-cilkplus.o): Delete. * call.c (convert_for_arg_passing, build_cxx_call): Remove cilkplus. * constexpr.c (potential_constant_expression_1): Ditto. * cp-array-notation.c: Delete. * cp-cilkplus.c: Ditto. * cp-cilkplus.h: Ditto. * cp-gimplify.c (cp_gimplify_expr, cp_fold_r, cp_genericize): Remove cilkplus condition. * cp-objcp-common.c (ARRAY_NOTATION_REF): Delete. * cp-tree.h (cilkplus_an_triplet_types_ok_p): Delete. * decl.c (grokfndecl, finish_function): Remove cilkplus condition. * error.c (dump_decl, dump_expr): Remove ARRAY_NOTATION_REF condition. * lambda.c (cp-cilkplus.h): Remove. * parser.c (cp_parser_cilk_simd, cp_parser_cilk_for, cp_parser_cilk_simd_vectorlength): Delete. (cp_debug_parser, cp_parser_ctor_initializer_opt_and_function_body, cp_parser_postfix_expression, cp_parser_postfix_open_square_expression, cp_parser_statement, cp_parser_jump_statement, cp_parser_direct_declarator, cp_parser_late_return_type_opt, cp_parser_gnu_attribute_list, cp_parser_omp_clause_name, cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear, cp_parser_omp_all_clauses, cp_parser_omp_flush, cp_parser_omp_for_cond, cp_parser_omp_for_incr, cp_parser_omp_for_loop_init, cp_parser_omp_for_loop, cp_parser_omp_declare_simd): Remove cilkplus support. (CILK_SIMD_FN_CLAUSE_MASK, cp_parser_late_parsing_cilk_simd_fn_info, cp_parser_cilk_grainsize): Remove. (cp_parser_pragma, c_parse_file): Remove cilkplus support. (cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear, cp_parser_cilk_simd_clause_name, cp_parser_cilk_simd_all_clauses, cp_parser_cilk_simd, cp_parser_cilk_for): Remove. * parser.h (IN_CILK_SIMD_FOR, IN_CILK_SPAWN): Remove. * pt.c (tsubst_attribute, tsubst_expr, tsubst_copy_and_build): Remove cilkplus support. * semantics.c (finish_goto_stmt, begin_while_stmt, finish_do_body, finish_init_stmt, finish_switch_cond, simplify_aggr_init_expr, finish_omp_clauses, finish_omp_clauses, finish_omp_for): Remove cilkplus support. * tree.c (lvalue_kind): Remove ARRAY_NOTATION_REF conditon. * typeck.c (cp_build_array_ref, cp_build_compound_expr, check_return_expr): Remove cilkplus support. gcc/testsuite/ * c-c++-common/attr-simd-3.c: Delete. * c-c++-common/cilk-plus/AN/an-if.c: Delete. * c-c++-common/cilk-plus/AN/array_test1.c: Delete. * c-c++-common/cilk-plus/AN/array_test2.c: Delete. * c-c++-common/cilk-plus/AN/array_test_ND.c: Delete. * c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Delete. * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Delete. * c-c++-common/cilk-plus/AN/builtin_func_double.c: Delete. * c-c++-common/cilk-plus/AN/builtin_func_double2.c: Delete. * c-c++-common/cilk-plus/AN/comma_exp.c: Delete. * c-c++-common/cilk-plus/AN/conditional.c: Delete. * c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Delete. * c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Delete. * c-c++-common/cilk-plus/AN/exec-once.c: Delete. * c-c++-common/cilk-plus/AN/exec-once2.c: Delete. * c-c++-common/cilk-plus/AN/fn_ptr-2.c: Delete. * c-c++-common/cilk-plus/AN/fn_ptr.c: Delete. * c-c++-common/cilk-plus/AN/fp_triplet_values.c: Delete. * c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Delete. * c-c++-common/cilk-plus/AN/gather_scatter.c: Delete. * c-c++-common/cilk-plus/AN/if_test.c: Delete. * c-c++-common/cilk-plus/AN/if_test_errors.c: Delete. * c-c++-common/cilk-plus/AN/misc.c: Delete. * c-c++-common/cilk-plus/AN/n-ptr-test.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors2.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors3.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors4.c: Delete. * c-c++-common/cilk-plus/AN/pr57457-2.c: Delete. * c-c++-common/cilk-plus/AN/pr57457.c: Delete. * c-c++-common/cilk-plus/AN/pr57490.c: Delete. * c-c++-common/cilk-plus/AN/pr57541-2.c: Delete. * c-c++-common/cilk-plus/AN/pr57541.c: Delete. * c-c++-common/cilk-plus/AN/pr57577.c: Delete. * c-c++-common/cilk-plus/AN/pr58942.c: Delete. * c-c++-common/cilk-plus/AN/pr61191.c: Delete. * c-c++-common/cilk-plus/AN/pr61455-2.c: Delete. * c-c++-common/cilk-plus/AN/pr61455.c: Delete. * c-c++-common/cilk-plus/AN/pr61962.c: Delete. * c-c++-common/cilk-plus/AN/pr61963.c: Delete. * c-c++-common/cilk-plus/AN/pr62008.c: Delete. * c-c++-common/cilk-plus/AN/pr63884.c: Delete. * c-c++-common/cilk-plus/AN/rank_mismatch.c: Delete. * c-c++-common/cilk-plus/AN/rank_mismatch2.c: Delete. * c-c++-common/cilk-plus/AN/rank_mismatch3.c: Delete. * c-c++-common/cilk-plus/AN/sec_implicit.c: Delete. * c-c++-common/cilk-plus/AN/sec_implicit2.c: Delete. * c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Delete. * c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: Delete. * c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Delete. * c-c++-common/cilk-plus/AN/sec_reduce_return.c: Delete. * c-c++-common/cilk-plus/AN/side-effects-1.c: Delete. * c-c++-common/cilk-plus/AN/test_builtin_return.c: Delete. * c-c++-common/cilk-plus/AN/test_sec_limits.c: Delete. * c-c++-common/cilk-plus/AN/tst_lngth.c: Delete. * c-c++-common/cilk-plus/AN/vla.c: Delete. * c-c++-common/cilk-plus/CK/Wparentheses-1.c: Delete. * c-c++-common/cilk-plus/CK/cilk-for-2.c: Delete. * c-c++-common/cilk-plus/CK/cilk-for-3.c: Delete. * c-c++-common/cilk-plus/CK/cilk-fors.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_errors.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_grain.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Delete. * c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: Delete. * c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Delete. * c-c++-common/cilk-plus/CK/errors.c: Delete. * c-c++-common/cilk-plus/CK/fib.c: Delete. * c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Delete. * c-c++-common/cilk-plus/CK/fib_no_return.c: Delete. * c-c++-common/cilk-plus/CK/fib_no_sync.c: Delete. * c-c++-common/cilk-plus/CK/invalid_spawns.c: Delete. * c-c++-common/cilk-plus/CK/invalid_sync.c: Delete.c * c-c++-common/cilk-plus/CK/nested_cilk_for.c: Delete. * c-c++-common/cilk-plus/CK/no_args_error.c: Delete. * c-c++-common/cilk-plus/CK/pr59631.c: Delete. * c-c++-common/cilk-plus/CK/pr60197-2.c: Delete. * c-c++-common/cilk-plus/CK/pr60197.c: Delete. * c-c++-common/cilk-plus/CK/pr60469.c: Delete. * c-c++-common/cilk-plus/CK/pr60586.c: Delete. * c-c++-common/cilk-plus/CK/pr63307.c: Delete. * c-c++-common/cilk-plus/CK/pr69826-1.c: Delete. * c-c++-common/cilk-plus/CK/pr69826-2.c: Delete. * c-c++-common/cilk-plus/CK/pr79428-4.c: Delete. * c-c++-common/cilk-plus/CK/pr79428-7.c: Delete. * c-c++-common/cilk-plus/CK/spawn_in_return.c: Delete. * c-c++-common/cilk-plus/CK/spawnee_inline.c: Delete. * c-c++-common/cilk-plus/CK/spawner_inline.c: Delete. * c-c++-common/cilk-plus/CK/spawning_arg.c: Delete. * c-c++-common/cilk-plus/CK/steal_check.c: Delete. * c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Delete. * c-c++-common/cilk-plus/CK/test__cilk.c: Delete. * c-c++-common/cilk-plus/CK/varargs_test.c: Delete. * c-c++-common/cilk-plus/PS/Wparentheses-1.c: Delete. * c-c++-common/cilk-plus/PS/body.c: Delete. * c-c++-common/cilk-plus/PS/clauses1.c: Delete. * c-c++-common/cilk-plus/PS/clauses2.c: Delete. * c-c++-common/cilk-plus/PS/clauses3.c: Delete. * c-c++-common/cilk-plus/PS/clauses4.c: Delete. * c-c++-common/cilk-plus/PS/for1.c: Delete. * c-c++-common/cilk-plus/PS/for2.c: Delete. * c-c++-common/cilk-plus/PS/for3.c: Delete. * c-c++-common/cilk-plus/PS/pr69363.c: Delete. * c-c++-common/cilk-plus/PS/reduction-1.c: Delete. * c-c++-common/cilk-plus/PS/reduction-2.c: Delete. * c-c++-common/cilk-plus/PS/reduction-3.c: Delete. * c-c++-common/cilk-plus/PS/run-1.c: Delete. * c-c++-common/cilk-plus/PS/safelen.c: Delete. * c-c++-common/cilk-plus/PS/vectorlength-2.c: Delete. * c-c++-common/cilk-plus/PS/vectorlength-3.c: Delete. * c-c++-common/cilk-plus/PS/vectorlength.c: Delete. * c-c++-common/cilk-plus/SE/ef_error.c: Delete. * c-c++-common/cilk-plus/SE/ef_error2.c: Delete. * c-c++-common/cilk-plus/SE/ef_error3.c: Delete. * c-c++-common/cilk-plus/SE/ef_test.c: Delete. * c-c++-common/cilk-plus/SE/ef_test2.c: Delete. * c-c++-common/cilk-plus/SE/vlength_errors.c: Delete. * g++.dg/cilk-plus/AN/array_function.c: Delete. * g++.dg/cilk-plus/AN/array_test1_tplt.c: Delete. * g++.dg/cilk-plus/AN/array_test2_tplt.c: Delete. * g++.dg/cilk-plus/AN/array_test_ND_tplt.c: Delete. * g++.dg/cilk-plus/AN/braced_list.c: Delete. * g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.c: Delete. * g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.c: Delete. * g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Delete. * g++.dg/cilk-plus/AN/postincr_test.c: Delete. * g++.dg/cilk-plus/AN/preincr_test.c: Delete. * g++.dg/cilk-plus/CK/catch_exc.c: Delete. * g++.dg/cilk-plus/CK/cf3.c: Delete. * g++.dg/cilk-plus/CK/cilk-for-tplt.c: Delete. * g++.dg/cilk-plus/CK/const_spawn.c: Delete. * g++.dg/cilk-plus/CK/fib-opr-overload.c: Delete. * g++.dg/cilk-plus/CK/fib-tplt.c: Delete. * g++.dg/cilk-plus/CK/for1.c: Delete. * g++.dg/cilk-plus/CK/lambda_spawns.c: Delete. * g++.dg/cilk-plus/CK/lambda_spawns_tplt.c: Delete. * g++.dg/cilk-plus/CK/pr60586.c: Delete. * g++.dg/cilk-plus/CK/pr66326.c: Delete. * g++.dg/cilk-plus/CK/pr68001.c: Delete. * g++.dg/cilk-plus/CK/pr68997.c: Delete. * g++.dg/cilk-plus/CK/pr69024.c: Delete. * g++.dg/cilk-plus/CK/pr69048.c: Delete. * g++.dg/cilk-plus/CK/pr69267.c: Delete. * g++.dg/cilk-plus/CK/pr80038.c: Delete. * g++.dg/cilk-plus/CK/stl_iter.c: Delete. * g++.dg/cilk-plus/CK/stl_rev_iter.c: Delete. * g++.dg/cilk-plus/CK/stl_test.c: Delete. * g++.dg/cilk-plus/cilk-plus.exp * g++.dg/cilk-plus/ef_test.C: Delete. * g++.dg/cilk-plus/for.C: Delete. * g++.dg/cilk-plus/for2.C: Delete. * g++.dg/cilk-plus/for3.C: Delete. * g++.dg/cilk-plus/for4.C: Delete. * g++.dg/cilk-plus/pr60967.C: Delete. * g++.dg/cilk-plus/pr69028.C: Delete. * g++.dg/cilk-plus/pr70565.C: Delete. * g++.dg/pr57662.C: Delete. * gcc.dg/cilk-plus/cilk-plus.exp * gcc.dg/cilk-plus/for1.c: Delete. * gcc.dg/cilk-plus/for2.c: Delete. * gcc.dg/cilk-plus/jump-openmp.c: Delete. * gcc.dg/cilk-plus/jump.c: Delete. * gcc.dg/cilk-plus/pr69798-1.c: Delete. * gcc.dg/cilk-plus/pr69798-2.c: Delete. * gcc.dg/cilk-plus/pr78306.c: Delete. * gcc.dg/cilk-plus/pr79116.c: Delete. * gcc.dg/graphite/id-28.c: Delete. * lib/cilk-plus-dg.exp: Delete. * lib/target-supports.exp (cilkplus_runtime): Delete. Co-Authored-By: Sebastian Peryt <sebastian.peryt@intel.com> From-SVN: r255195
242 lines
7.8 KiB
C
242 lines
7.8 KiB
C
/* Pragma related interfaces.
|
|
Copyright (C) 1995-2017 Free Software Foundation, Inc.
|
|
|
|
This file is part of GCC.
|
|
|
|
GCC is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free
|
|
Software Foundation; either version 3, or (at your option) any later
|
|
version.
|
|
|
|
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GCC; see the file COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef GCC_C_PRAGMA_H
|
|
#define GCC_C_PRAGMA_H
|
|
|
|
#include "cpplib.h" /* For enum cpp_ttype. */
|
|
|
|
/* Pragma identifiers built in to the front end parsers. Identifiers
|
|
for ancillary handlers will follow these. */
|
|
enum pragma_kind {
|
|
PRAGMA_NONE = 0,
|
|
|
|
PRAGMA_OACC_ATOMIC,
|
|
PRAGMA_OACC_CACHE,
|
|
PRAGMA_OACC_DATA,
|
|
PRAGMA_OACC_DECLARE,
|
|
PRAGMA_OACC_ENTER_DATA,
|
|
PRAGMA_OACC_EXIT_DATA,
|
|
PRAGMA_OACC_HOST_DATA,
|
|
PRAGMA_OACC_KERNELS,
|
|
PRAGMA_OACC_LOOP,
|
|
PRAGMA_OACC_PARALLEL,
|
|
PRAGMA_OACC_ROUTINE,
|
|
PRAGMA_OACC_UPDATE,
|
|
PRAGMA_OACC_WAIT,
|
|
|
|
PRAGMA_OMP_ATOMIC,
|
|
PRAGMA_OMP_BARRIER,
|
|
PRAGMA_OMP_CANCEL,
|
|
PRAGMA_OMP_CANCELLATION_POINT,
|
|
PRAGMA_OMP_CRITICAL,
|
|
PRAGMA_OMP_DECLARE,
|
|
PRAGMA_OMP_DISTRIBUTE,
|
|
PRAGMA_OMP_END_DECLARE_TARGET,
|
|
PRAGMA_OMP_FLUSH,
|
|
PRAGMA_OMP_FOR,
|
|
PRAGMA_OMP_MASTER,
|
|
PRAGMA_OMP_ORDERED,
|
|
PRAGMA_OMP_PARALLEL,
|
|
PRAGMA_OMP_SECTION,
|
|
PRAGMA_OMP_SECTIONS,
|
|
PRAGMA_OMP_SIMD,
|
|
PRAGMA_OMP_SINGLE,
|
|
PRAGMA_OMP_TARGET,
|
|
PRAGMA_OMP_TASK,
|
|
PRAGMA_OMP_TASKGROUP,
|
|
PRAGMA_OMP_TASKLOOP,
|
|
PRAGMA_OMP_TASKWAIT,
|
|
PRAGMA_OMP_TASKYIELD,
|
|
PRAGMA_OMP_THREADPRIVATE,
|
|
PRAGMA_OMP_TEAMS,
|
|
|
|
PRAGMA_GCC_PCH_PREPROCESS,
|
|
PRAGMA_IVDEP,
|
|
|
|
PRAGMA_FIRST_EXTERNAL
|
|
};
|
|
|
|
|
|
/* All clauses defined by OpenACC 2.0, and OpenMP 2.5, 3.0, 3.1, 4.0 and 4.5.
|
|
Used internally by both C and C++ parsers. */
|
|
enum pragma_omp_clause {
|
|
PRAGMA_OMP_CLAUSE_NONE = 0,
|
|
|
|
PRAGMA_OMP_CLAUSE_ALIGNED,
|
|
PRAGMA_OMP_CLAUSE_COLLAPSE,
|
|
PRAGMA_OMP_CLAUSE_COPYIN,
|
|
PRAGMA_OMP_CLAUSE_COPYPRIVATE,
|
|
PRAGMA_OMP_CLAUSE_DEFAULT,
|
|
PRAGMA_OMP_CLAUSE_DEFAULTMAP,
|
|
PRAGMA_OMP_CLAUSE_DEPEND,
|
|
PRAGMA_OMP_CLAUSE_DEVICE,
|
|
PRAGMA_OMP_CLAUSE_DIST_SCHEDULE,
|
|
PRAGMA_OMP_CLAUSE_FINAL,
|
|
PRAGMA_OMP_CLAUSE_FIRSTPRIVATE,
|
|
PRAGMA_OMP_CLAUSE_FOR,
|
|
PRAGMA_OMP_CLAUSE_FROM,
|
|
PRAGMA_OMP_CLAUSE_GRAINSIZE,
|
|
PRAGMA_OMP_CLAUSE_HINT,
|
|
PRAGMA_OMP_CLAUSE_IF,
|
|
PRAGMA_OMP_CLAUSE_INBRANCH,
|
|
PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR,
|
|
PRAGMA_OMP_CLAUSE_LASTPRIVATE,
|
|
PRAGMA_OMP_CLAUSE_LINEAR,
|
|
PRAGMA_OMP_CLAUSE_LINK,
|
|
PRAGMA_OMP_CLAUSE_MAP,
|
|
PRAGMA_OMP_CLAUSE_MERGEABLE,
|
|
PRAGMA_OMP_CLAUSE_NOGROUP,
|
|
PRAGMA_OMP_CLAUSE_NOTINBRANCH,
|
|
PRAGMA_OMP_CLAUSE_NOWAIT,
|
|
PRAGMA_OMP_CLAUSE_NUM_TASKS,
|
|
PRAGMA_OMP_CLAUSE_NUM_TEAMS,
|
|
PRAGMA_OMP_CLAUSE_NUM_THREADS,
|
|
PRAGMA_OMP_CLAUSE_ORDERED,
|
|
PRAGMA_OMP_CLAUSE_PARALLEL,
|
|
PRAGMA_OMP_CLAUSE_PRIORITY,
|
|
PRAGMA_OMP_CLAUSE_PRIVATE,
|
|
PRAGMA_OMP_CLAUSE_PROC_BIND,
|
|
PRAGMA_OMP_CLAUSE_REDUCTION,
|
|
PRAGMA_OMP_CLAUSE_SAFELEN,
|
|
PRAGMA_OMP_CLAUSE_SCHEDULE,
|
|
PRAGMA_OMP_CLAUSE_SECTIONS,
|
|
PRAGMA_OMP_CLAUSE_SHARED,
|
|
PRAGMA_OMP_CLAUSE_SIMD,
|
|
PRAGMA_OMP_CLAUSE_SIMDLEN,
|
|
PRAGMA_OMP_CLAUSE_TASKGROUP,
|
|
PRAGMA_OMP_CLAUSE_THREAD_LIMIT,
|
|
PRAGMA_OMP_CLAUSE_THREADS,
|
|
PRAGMA_OMP_CLAUSE_TO,
|
|
PRAGMA_OMP_CLAUSE_UNIFORM,
|
|
PRAGMA_OMP_CLAUSE_UNTIED,
|
|
PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR,
|
|
|
|
/* Clauses for OpenACC. */
|
|
PRAGMA_OACC_CLAUSE_ASYNC,
|
|
PRAGMA_OACC_CLAUSE_AUTO,
|
|
PRAGMA_OACC_CLAUSE_COPY,
|
|
PRAGMA_OACC_CLAUSE_COPYOUT,
|
|
PRAGMA_OACC_CLAUSE_CREATE,
|
|
PRAGMA_OACC_CLAUSE_DELETE,
|
|
PRAGMA_OACC_CLAUSE_DEVICEPTR,
|
|
PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT,
|
|
PRAGMA_OACC_CLAUSE_GANG,
|
|
PRAGMA_OACC_CLAUSE_HOST,
|
|
PRAGMA_OACC_CLAUSE_INDEPENDENT,
|
|
PRAGMA_OACC_CLAUSE_NUM_GANGS,
|
|
PRAGMA_OACC_CLAUSE_NUM_WORKERS,
|
|
PRAGMA_OACC_CLAUSE_PRESENT,
|
|
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPY,
|
|
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYIN,
|
|
PRAGMA_OACC_CLAUSE_PRESENT_OR_COPYOUT,
|
|
PRAGMA_OACC_CLAUSE_PRESENT_OR_CREATE,
|
|
PRAGMA_OACC_CLAUSE_SELF,
|
|
PRAGMA_OACC_CLAUSE_SEQ,
|
|
PRAGMA_OACC_CLAUSE_TILE,
|
|
PRAGMA_OACC_CLAUSE_USE_DEVICE,
|
|
PRAGMA_OACC_CLAUSE_VECTOR,
|
|
PRAGMA_OACC_CLAUSE_VECTOR_LENGTH,
|
|
PRAGMA_OACC_CLAUSE_WAIT,
|
|
PRAGMA_OACC_CLAUSE_WORKER,
|
|
PRAGMA_OACC_CLAUSE_COLLAPSE = PRAGMA_OMP_CLAUSE_COLLAPSE,
|
|
PRAGMA_OACC_CLAUSE_COPYIN = PRAGMA_OMP_CLAUSE_COPYIN,
|
|
PRAGMA_OACC_CLAUSE_DEVICE = PRAGMA_OMP_CLAUSE_DEVICE,
|
|
PRAGMA_OACC_CLAUSE_DEFAULT = PRAGMA_OMP_CLAUSE_DEFAULT,
|
|
PRAGMA_OACC_CLAUSE_FIRSTPRIVATE = PRAGMA_OMP_CLAUSE_FIRSTPRIVATE,
|
|
PRAGMA_OACC_CLAUSE_IF = PRAGMA_OMP_CLAUSE_IF,
|
|
PRAGMA_OACC_CLAUSE_PRIVATE = PRAGMA_OMP_CLAUSE_PRIVATE,
|
|
PRAGMA_OACC_CLAUSE_REDUCTION = PRAGMA_OMP_CLAUSE_REDUCTION,
|
|
PRAGMA_OACC_CLAUSE_LINK = PRAGMA_OMP_CLAUSE_LINK
|
|
};
|
|
|
|
extern struct cpp_reader* parse_in;
|
|
|
|
/* It's safe to always leave visibility pragma enabled as if
|
|
visibility is not supported on the host OS platform the
|
|
statements are ignored. */
|
|
extern void push_visibility (const char *, int);
|
|
extern bool pop_visibility (int);
|
|
|
|
extern void init_pragma (void);
|
|
|
|
/* Front-end wrappers for pragma registration. */
|
|
typedef void (*pragma_handler_1arg)(struct cpp_reader *);
|
|
/* A second pragma handler, which adds a void * argument allowing to pass extra
|
|
data to the handler. */
|
|
typedef void (*pragma_handler_2arg)(struct cpp_reader *, void *);
|
|
|
|
/* This union allows to abstract the different handlers. */
|
|
union gen_pragma_handler {
|
|
pragma_handler_1arg handler_1arg;
|
|
pragma_handler_2arg handler_2arg;
|
|
};
|
|
/* Internally used to keep the data of the handler. */
|
|
struct internal_pragma_handler {
|
|
union gen_pragma_handler handler;
|
|
/* Permits to know if handler is a pragma_handler_1arg (extra_data is false)
|
|
or a pragma_handler_2arg (extra_data is true). */
|
|
bool extra_data;
|
|
/* A data field which can be used when extra_data is true. */
|
|
void * data;
|
|
};
|
|
|
|
extern void c_register_pragma (const char *space, const char *name,
|
|
pragma_handler_1arg handler);
|
|
extern void c_register_pragma_with_data (const char *space, const char *name,
|
|
pragma_handler_2arg handler,
|
|
void *data);
|
|
|
|
extern void c_register_pragma_with_expansion (const char *space,
|
|
const char *name,
|
|
pragma_handler_1arg handler);
|
|
extern void c_register_pragma_with_expansion_and_data (const char *space,
|
|
const char *name,
|
|
pragma_handler_2arg handler,
|
|
void *data);
|
|
extern void c_invoke_pragma_handler (unsigned int);
|
|
|
|
extern void maybe_apply_pragma_weak (tree);
|
|
extern void maybe_apply_pending_pragma_weaks (void);
|
|
extern tree maybe_apply_renaming_pragma (tree, tree);
|
|
extern void maybe_apply_pragma_scalar_storage_order (tree);
|
|
extern void add_to_renaming_pragma_list (tree, tree);
|
|
|
|
extern enum cpp_ttype pragma_lex (tree *, location_t *loc = NULL);
|
|
|
|
/* Flags for use with c_lex_with_flags. The values here were picked
|
|
so that 0 means to translate and join strings. */
|
|
#define C_LEX_STRING_NO_TRANSLATE 1 /* Do not lex strings into
|
|
execution character set. */
|
|
#define C_LEX_STRING_NO_JOIN 2 /* Do not concatenate strings
|
|
nor translate them into execution
|
|
character set. */
|
|
|
|
/* This is not actually available to pragma parsers. It's merely a
|
|
convenient location to declare this function for c-lex, after
|
|
having enum cpp_ttype declared. */
|
|
extern enum cpp_ttype c_lex_with_flags (tree *, location_t *, unsigned char *,
|
|
int);
|
|
|
|
extern void c_pp_lookup_pragma (unsigned int, const char **, const char **);
|
|
|
|
extern GTY(()) tree pragma_extern_prefix;
|
|
|
|
#endif /* GCC_C_PRAGMA_H */
|