comparison gcc/c-family/c-pragma.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* Pragma related interfaces. 1 /* Pragma related interfaces.
2 Copyright (C) 1995-2018 Free Software Foundation, Inc. 2 Copyright (C) 1995-2020 Free Software Foundation, Inc.
3 3
4 This file is part of GCC. 4 This file is part of GCC.
5 5
6 GCC is free software; you can redistribute it and/or modify it under 6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free 7 the terms of the GNU General Public License as published by the Free
36 PRAGMA_OACC_HOST_DATA, 36 PRAGMA_OACC_HOST_DATA,
37 PRAGMA_OACC_KERNELS, 37 PRAGMA_OACC_KERNELS,
38 PRAGMA_OACC_LOOP, 38 PRAGMA_OACC_LOOP,
39 PRAGMA_OACC_PARALLEL, 39 PRAGMA_OACC_PARALLEL,
40 PRAGMA_OACC_ROUTINE, 40 PRAGMA_OACC_ROUTINE,
41 PRAGMA_OACC_SERIAL,
41 PRAGMA_OACC_UPDATE, 42 PRAGMA_OACC_UPDATE,
42 PRAGMA_OACC_WAIT, 43 PRAGMA_OACC_WAIT,
43 44
44 PRAGMA_OMP_ATOMIC, 45 PRAGMA_OMP_ATOMIC,
45 PRAGMA_OMP_BARRIER, 46 PRAGMA_OMP_BARRIER,
46 PRAGMA_OMP_CANCEL, 47 PRAGMA_OMP_CANCEL,
47 PRAGMA_OMP_CANCELLATION_POINT, 48 PRAGMA_OMP_CANCELLATION_POINT,
48 PRAGMA_OMP_CRITICAL, 49 PRAGMA_OMP_CRITICAL,
49 PRAGMA_OMP_DECLARE, 50 PRAGMA_OMP_DECLARE,
51 PRAGMA_OMP_DEPOBJ,
50 PRAGMA_OMP_DISTRIBUTE, 52 PRAGMA_OMP_DISTRIBUTE,
51 PRAGMA_OMP_END_DECLARE_TARGET, 53 PRAGMA_OMP_END_DECLARE_TARGET,
52 PRAGMA_OMP_FLUSH, 54 PRAGMA_OMP_FLUSH,
53 PRAGMA_OMP_FOR, 55 PRAGMA_OMP_FOR,
56 PRAGMA_OMP_LOOP,
54 PRAGMA_OMP_MASTER, 57 PRAGMA_OMP_MASTER,
55 PRAGMA_OMP_ORDERED, 58 PRAGMA_OMP_ORDERED,
56 PRAGMA_OMP_PARALLEL, 59 PRAGMA_OMP_PARALLEL,
60 PRAGMA_OMP_REQUIRES,
61 PRAGMA_OMP_SCAN,
57 PRAGMA_OMP_SECTION, 62 PRAGMA_OMP_SECTION,
58 PRAGMA_OMP_SECTIONS, 63 PRAGMA_OMP_SECTIONS,
59 PRAGMA_OMP_SIMD, 64 PRAGMA_OMP_SIMD,
60 PRAGMA_OMP_SINGLE, 65 PRAGMA_OMP_SINGLE,
61 PRAGMA_OMP_TARGET, 66 PRAGMA_OMP_TARGET,
73 78
74 PRAGMA_FIRST_EXTERNAL 79 PRAGMA_FIRST_EXTERNAL
75 }; 80 };
76 81
77 82
78 /* All clauses defined by OpenACC 2.0, and OpenMP 2.5, 3.0, 3.1, 4.0 and 4.5. 83 /* All clauses defined by OpenACC 2.0, and OpenMP 2.5, 3.0, 3.1, 4.0, 4.5
79 Used internally by both C and C++ parsers. */ 84 and 5.0. Used internally by both C and C++ parsers. */
80 enum pragma_omp_clause { 85 enum pragma_omp_clause {
81 PRAGMA_OMP_CLAUSE_NONE = 0, 86 PRAGMA_OMP_CLAUSE_NONE = 0,
82 87
83 PRAGMA_OMP_CLAUSE_ALIGNED, 88 PRAGMA_OMP_CLAUSE_ALIGNED,
89 PRAGMA_OMP_CLAUSE_BIND,
84 PRAGMA_OMP_CLAUSE_COLLAPSE, 90 PRAGMA_OMP_CLAUSE_COLLAPSE,
85 PRAGMA_OMP_CLAUSE_COPYIN, 91 PRAGMA_OMP_CLAUSE_COPYIN,
86 PRAGMA_OMP_CLAUSE_COPYPRIVATE, 92 PRAGMA_OMP_CLAUSE_COPYPRIVATE,
87 PRAGMA_OMP_CLAUSE_DEFAULT, 93 PRAGMA_OMP_CLAUSE_DEFAULT,
88 PRAGMA_OMP_CLAUSE_DEFAULTMAP, 94 PRAGMA_OMP_CLAUSE_DEFAULTMAP,
89 PRAGMA_OMP_CLAUSE_DEPEND, 95 PRAGMA_OMP_CLAUSE_DEPEND,
90 PRAGMA_OMP_CLAUSE_DEVICE, 96 PRAGMA_OMP_CLAUSE_DEVICE,
97 PRAGMA_OMP_CLAUSE_DEVICE_TYPE,
91 PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, 98 PRAGMA_OMP_CLAUSE_DIST_SCHEDULE,
92 PRAGMA_OMP_CLAUSE_FINAL, 99 PRAGMA_OMP_CLAUSE_FINAL,
93 PRAGMA_OMP_CLAUSE_FIRSTPRIVATE, 100 PRAGMA_OMP_CLAUSE_FIRSTPRIVATE,
94 PRAGMA_OMP_CLAUSE_FOR, 101 PRAGMA_OMP_CLAUSE_FOR,
95 PRAGMA_OMP_CLAUSE_FROM, 102 PRAGMA_OMP_CLAUSE_FROM,
96 PRAGMA_OMP_CLAUSE_GRAINSIZE, 103 PRAGMA_OMP_CLAUSE_GRAINSIZE,
97 PRAGMA_OMP_CLAUSE_HINT, 104 PRAGMA_OMP_CLAUSE_HINT,
98 PRAGMA_OMP_CLAUSE_IF, 105 PRAGMA_OMP_CLAUSE_IF,
106 PRAGMA_OMP_CLAUSE_IN_REDUCTION,
99 PRAGMA_OMP_CLAUSE_INBRANCH, 107 PRAGMA_OMP_CLAUSE_INBRANCH,
100 PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR, 108 PRAGMA_OMP_CLAUSE_IS_DEVICE_PTR,
101 PRAGMA_OMP_CLAUSE_LASTPRIVATE, 109 PRAGMA_OMP_CLAUSE_LASTPRIVATE,
102 PRAGMA_OMP_CLAUSE_LINEAR, 110 PRAGMA_OMP_CLAUSE_LINEAR,
103 PRAGMA_OMP_CLAUSE_LINK, 111 PRAGMA_OMP_CLAUSE_LINK,
104 PRAGMA_OMP_CLAUSE_MAP, 112 PRAGMA_OMP_CLAUSE_MAP,
105 PRAGMA_OMP_CLAUSE_MERGEABLE, 113 PRAGMA_OMP_CLAUSE_MERGEABLE,
106 PRAGMA_OMP_CLAUSE_NOGROUP, 114 PRAGMA_OMP_CLAUSE_NOGROUP,
115 PRAGMA_OMP_CLAUSE_NONTEMPORAL,
107 PRAGMA_OMP_CLAUSE_NOTINBRANCH, 116 PRAGMA_OMP_CLAUSE_NOTINBRANCH,
108 PRAGMA_OMP_CLAUSE_NOWAIT, 117 PRAGMA_OMP_CLAUSE_NOWAIT,
109 PRAGMA_OMP_CLAUSE_NUM_TASKS, 118 PRAGMA_OMP_CLAUSE_NUM_TASKS,
110 PRAGMA_OMP_CLAUSE_NUM_TEAMS, 119 PRAGMA_OMP_CLAUSE_NUM_TEAMS,
111 PRAGMA_OMP_CLAUSE_NUM_THREADS, 120 PRAGMA_OMP_CLAUSE_NUM_THREADS,
121 PRAGMA_OMP_CLAUSE_ORDER,
112 PRAGMA_OMP_CLAUSE_ORDERED, 122 PRAGMA_OMP_CLAUSE_ORDERED,
113 PRAGMA_OMP_CLAUSE_PARALLEL, 123 PRAGMA_OMP_CLAUSE_PARALLEL,
114 PRAGMA_OMP_CLAUSE_PRIORITY, 124 PRAGMA_OMP_CLAUSE_PRIORITY,
115 PRAGMA_OMP_CLAUSE_PRIVATE, 125 PRAGMA_OMP_CLAUSE_PRIVATE,
116 PRAGMA_OMP_CLAUSE_PROC_BIND, 126 PRAGMA_OMP_CLAUSE_PROC_BIND,
119 PRAGMA_OMP_CLAUSE_SCHEDULE, 129 PRAGMA_OMP_CLAUSE_SCHEDULE,
120 PRAGMA_OMP_CLAUSE_SECTIONS, 130 PRAGMA_OMP_CLAUSE_SECTIONS,
121 PRAGMA_OMP_CLAUSE_SHARED, 131 PRAGMA_OMP_CLAUSE_SHARED,
122 PRAGMA_OMP_CLAUSE_SIMD, 132 PRAGMA_OMP_CLAUSE_SIMD,
123 PRAGMA_OMP_CLAUSE_SIMDLEN, 133 PRAGMA_OMP_CLAUSE_SIMDLEN,
134 PRAGMA_OMP_CLAUSE_TASK_REDUCTION,
124 PRAGMA_OMP_CLAUSE_TASKGROUP, 135 PRAGMA_OMP_CLAUSE_TASKGROUP,
125 PRAGMA_OMP_CLAUSE_THREAD_LIMIT, 136 PRAGMA_OMP_CLAUSE_THREAD_LIMIT,
126 PRAGMA_OMP_CLAUSE_THREADS, 137 PRAGMA_OMP_CLAUSE_THREADS,
127 PRAGMA_OMP_CLAUSE_TO, 138 PRAGMA_OMP_CLAUSE_TO,
128 PRAGMA_OMP_CLAUSE_UNIFORM, 139 PRAGMA_OMP_CLAUSE_UNIFORM,
129 PRAGMA_OMP_CLAUSE_UNTIED, 140 PRAGMA_OMP_CLAUSE_UNTIED,
130 PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR, 141 PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR,
142 PRAGMA_OMP_CLAUSE_USE_DEVICE_ADDR,
131 143
132 /* Clauses for OpenACC. */ 144 /* Clauses for OpenACC. */
133 PRAGMA_OACC_CLAUSE_ASYNC, 145 PRAGMA_OACC_CLAUSE_ASYNC,
146 PRAGMA_OACC_CLAUSE_ATTACH,
134 PRAGMA_OACC_CLAUSE_AUTO, 147 PRAGMA_OACC_CLAUSE_AUTO,
135 PRAGMA_OACC_CLAUSE_COPY, 148 PRAGMA_OACC_CLAUSE_COPY,
136 PRAGMA_OACC_CLAUSE_COPYOUT, 149 PRAGMA_OACC_CLAUSE_COPYOUT,
137 PRAGMA_OACC_CLAUSE_CREATE, 150 PRAGMA_OACC_CLAUSE_CREATE,
138 PRAGMA_OACC_CLAUSE_DELETE, 151 PRAGMA_OACC_CLAUSE_DELETE,
152 PRAGMA_OACC_CLAUSE_DETACH,
139 PRAGMA_OACC_CLAUSE_DEVICEPTR, 153 PRAGMA_OACC_CLAUSE_DEVICEPTR,
140 PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT, 154 PRAGMA_OACC_CLAUSE_DEVICE_RESIDENT,
141 PRAGMA_OACC_CLAUSE_FINALIZE, 155 PRAGMA_OACC_CLAUSE_FINALIZE,
142 PRAGMA_OACC_CLAUSE_GANG, 156 PRAGMA_OACC_CLAUSE_GANG,
143 PRAGMA_OACC_CLAUSE_HOST, 157 PRAGMA_OACC_CLAUSE_HOST,
144 PRAGMA_OACC_CLAUSE_INDEPENDENT, 158 PRAGMA_OACC_CLAUSE_INDEPENDENT,
159 PRAGMA_OACC_CLAUSE_NO_CREATE,
145 PRAGMA_OACC_CLAUSE_NUM_GANGS, 160 PRAGMA_OACC_CLAUSE_NUM_GANGS,
146 PRAGMA_OACC_CLAUSE_NUM_WORKERS, 161 PRAGMA_OACC_CLAUSE_NUM_WORKERS,
147 PRAGMA_OACC_CLAUSE_PRESENT, 162 PRAGMA_OACC_CLAUSE_PRESENT,
148 PRAGMA_OACC_CLAUSE_SELF, 163 PRAGMA_OACC_CLAUSE_SELF,
149 PRAGMA_OACC_CLAUSE_SEQ, 164 PRAGMA_OACC_CLAUSE_SEQ,
150 PRAGMA_OACC_CLAUSE_TILE, 165 PRAGMA_OACC_CLAUSE_TILE,
151 PRAGMA_OACC_CLAUSE_USE_DEVICE,
152 PRAGMA_OACC_CLAUSE_VECTOR, 166 PRAGMA_OACC_CLAUSE_VECTOR,
153 PRAGMA_OACC_CLAUSE_VECTOR_LENGTH, 167 PRAGMA_OACC_CLAUSE_VECTOR_LENGTH,
154 PRAGMA_OACC_CLAUSE_WAIT, 168 PRAGMA_OACC_CLAUSE_WAIT,
155 PRAGMA_OACC_CLAUSE_WORKER, 169 PRAGMA_OACC_CLAUSE_WORKER,
156 PRAGMA_OACC_CLAUSE_IF_PRESENT, 170 PRAGMA_OACC_CLAUSE_IF_PRESENT,
160 PRAGMA_OACC_CLAUSE_DEFAULT = PRAGMA_OMP_CLAUSE_DEFAULT, 174 PRAGMA_OACC_CLAUSE_DEFAULT = PRAGMA_OMP_CLAUSE_DEFAULT,
161 PRAGMA_OACC_CLAUSE_FIRSTPRIVATE = PRAGMA_OMP_CLAUSE_FIRSTPRIVATE, 175 PRAGMA_OACC_CLAUSE_FIRSTPRIVATE = PRAGMA_OMP_CLAUSE_FIRSTPRIVATE,
162 PRAGMA_OACC_CLAUSE_IF = PRAGMA_OMP_CLAUSE_IF, 176 PRAGMA_OACC_CLAUSE_IF = PRAGMA_OMP_CLAUSE_IF,
163 PRAGMA_OACC_CLAUSE_PRIVATE = PRAGMA_OMP_CLAUSE_PRIVATE, 177 PRAGMA_OACC_CLAUSE_PRIVATE = PRAGMA_OMP_CLAUSE_PRIVATE,
164 PRAGMA_OACC_CLAUSE_REDUCTION = PRAGMA_OMP_CLAUSE_REDUCTION, 178 PRAGMA_OACC_CLAUSE_REDUCTION = PRAGMA_OMP_CLAUSE_REDUCTION,
165 PRAGMA_OACC_CLAUSE_LINK = PRAGMA_OMP_CLAUSE_LINK 179 PRAGMA_OACC_CLAUSE_LINK = PRAGMA_OMP_CLAUSE_LINK,
180 PRAGMA_OACC_CLAUSE_USE_DEVICE = PRAGMA_OMP_CLAUSE_USE_DEVICE_PTR
166 }; 181 };
167 182
168 extern struct cpp_reader* parse_in; 183 extern struct cpp_reader* parse_in;
169 184
170 /* It's safe to always leave visibility pragma enabled as if 185 /* It's safe to always leave visibility pragma enabled as if