00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifdef USE_PCH
00041 #include "common_com_pch.h"
00042 #endif
00043 #pragma hdrstop
00044
00045 #include "defs.h"
00046 #include "wn_pragmas.h"
00047
00048
00049 WN_PRAGMA_DESC WN_pragmas[] = {
00050 { PUSER_NULL, WN_PRAGMA_SCOPE_UNKNOWN, NULL },
00051
00052 { (WN_PRAGMA_USERS) (PUSER_IPA|PUSER_WOPT), WN_PRAGMA_SCOPE_ON, "INLINE_BODY_START" },
00053 { (WN_PRAGMA_USERS) (PUSER_IPA|PUSER_WOPT), WN_PRAGMA_SCOPE_OFF, "INLINE_BODY_END" },
00054 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "INLINE_DEPTH" },
00055 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "INLINE_LOOPLEVEL" },
00056
00057 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "AGGRESSIVE_INNER_LOOP_FISSION" },
00058 { PUSER_LNO, WN_PRAGMA_SCOPE_POINT, "FISSION" },
00059 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "FISSIONABLE" },
00060 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "FUSE" },
00061 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "FUSEABLE" },
00062 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "NO_FISSION" },
00063 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "NO_FUSION" },
00064
00065 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "INTERCHANGE" },
00066 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "NO_INTERCHANGE" },
00067 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "BLOCKING_SIZE" },
00068 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "NO_BLOCKING" },
00069 { PUSER_CG, WN_PRAGMA_SCOPE_WN, "UNROLL" },
00070 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "BLOCKABLE" },
00071
00072 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "PREFETCH" },
00073 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "PREFETCH_MANUAL" },
00074 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "PREFETCH_REF" },
00075 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "PREFETCH_REF_DISABLE" },
00076
00077 { PUSER_LNO, WN_PRAGMA_SCOPE_WN, "IVDEP" },
00078
00079 { (WN_PRAGMA_USERS) (PUSER_IPA|PUSER_LNO|PUSER_WOPT|PUSER_CG),
00080 WN_PRAGMA_SCOPE_PU,"OPTIONS" },
00081 { (WN_PRAGMA_USERS) (PUSER_IPA|PUSER_LNO|PUSER_WOPT|PUSER_CG),
00082 WN_PRAGMA_SCOPE_PU,"OPAQUE_REGION"},
00083
00084 { PUSER_CG, WN_PRAGMA_SCOPE_POINT, "FREQUENCY" },
00085 { PUSER_LNO, WN_PRAGMA_SCOPE_WN, "DISTRIBUTE" },
00086 { PUSER_LNO, WN_PRAGMA_SCOPE_WN, "REDISTRIBUTE" },
00087 { PUSER_LNO, WN_PRAGMA_SCOPE_WN, "DISTRIBUTE_RESHAPE" },
00088 { PUSER_LNO, WN_PRAGMA_SCOPE_WN, "DYNAMIC" },
00089
00090 { PUSER_WOPT, WN_PRAGMA_SCOPE_SPECIAL, "ACCESSED_ID" },
00091
00092 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "PFOR_BEGIN" },
00093 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "ENTER_GATE" },
00094 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "EXIT_GATE" },
00095
00096 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "BARRIER" },
00097 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "CHUNKSIZE" },
00098 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "COPYIN" },
00099 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "CRITICAL_SECTION_BEGIN" },
00100 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "CRITICAL_SECTION_END" },
00101 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "DOACROSS" },
00102 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "IF" },
00103 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "LASTLOCAL" },
00104 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "LOCAL" },
00105 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "MPSCHEDTYPE" },
00106 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "ORDERED" },
00107 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "PARALLEL_BEGIN" },
00108 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "PARALLEL_END" },
00109 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "PARALLEL_DO" },
00110 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "PDO_BEGIN" },
00111 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "PDO_END" },
00112 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "PSECTION_BEGIN" },
00113 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "PSECTION_END" },
00114 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "REDUCTION" },
00115 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "SECTION" },
00116 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "SHARED" },
00117 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "SINGLE_PROCESS_BEGIN" },
00118 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "SINGLE_PROCESS_END" },
00119 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "ITERATE_VAR" },
00120 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "ITERATE_INIT" },
00121 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "ITERATE_COUNT" },
00122 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "ITERATE_STEP" },
00123 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "AFFINITY" },
00124 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "DATA_AFFINITY" },
00125 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "THREAD_AFFINITY" },
00126 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "NUMTHREADS" },
00127 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "NOWAIT" },
00128 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "PAGE_PLACE" },
00129 #if defined(TARG_SL) //fork_joint
00130 { PUSER_CG, WN_PRAGMA_SCOPE_ON, "SL2_MAJOR_PSECTION_BEGIN"},
00131 { PUSER_CG, WN_PRAGMA_SCOPE_ON, "SL2_MINOR_PSECTION_BEGIN"},
00132 { PUSER_CG, WN_PRAGMA_SCOPE_POINT, "SL2_SECTION" },
00133 #endif
00134 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "ONTO" },
00135 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "LASTTHREAD" },
00136
00137 { PUSER_LNO, WN_PRAGMA_SCOPE_POINT, "NORECURRENCE"},
00138 { PUSER_LNO, WN_PRAGMA_SCOPE_POINT, "NEXT_SCALAR"},
00139
00140 { PUSER_PURPLE, (WN_PRAGMA_SCOPE) WN_PRAGMA_PURPLE_CONDITIONAL, "PURPLE_CONDITIONAL" },
00141 { PUSER_PURPLE, (WN_PRAGMA_SCOPE) WN_PRAGMA_PURPLE_UNCONDITIONAL, "PURPLE_UNCONDITIONAL" },
00142
00143 { PUSER_WOPT, WN_PRAGMA_SCOPE_PU, "WOPT_FINISHED_OPTIMIZATION" },
00144
00145 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ARCLIMIT" },
00146 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_CONCURRENTIZE" },
00147 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "KAP_INLINE_FILE" },
00148 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "KAP_INLINE_PU" },
00149 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_LIMIT" },
00150 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_MINCONCURRENT" },
00151 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_NOCONCURRENTIZE" },
00152 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "KAP_NOINLINE_FILE" },
00153 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "KAP_NOINLINE_PU" },
00154 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_OPTIMIZE" },
00155 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ROUNDOFF" },
00156 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_SCALAR_OPTIMIZE" },
00157 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_CTHRESHOLD" },
00158 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_EACH_INVARIANT_IF_GROWTH" },
00159 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_MAX_INVARIANT_IF_GROWTH" },
00160 { PUSER_CG, WN_PRAGMA_SCOPE_PU, "KAP_STORAGE_ORDER"},
00161
00162 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_BOUNDS_VIOLATIONS" },
00163 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NOBOUNDS_VIOLATIONS" },
00164 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_CONCURRENT_CALL" },
00165 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_DO" },
00166 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_DOPREFER" },
00167 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_EQUIVALENCE_HAZARD" },
00168 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NOEQUIVALENCE_HAZARD" },
00169 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_LAST_VALUE_NEEDED" },
00170 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NOLAST_VALUE_NEEDED" },
00171 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_PERMUTATION" },
00172 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NORECURRENCE" },
00173 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_RELATION" },
00174 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NOSYNC" },
00175 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_TEMPORARIES_FOR_CONSTANT_ARGUMENTS" },
00176 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NOTEMPORARIES_FOR_CONSTANT_ARGUMENTS" },
00177
00178 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_ARGUMENT_ALIASING" },
00179 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_BENIGN" },
00180 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_DEPENDENCE" },
00181 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_FREQUENCY" },
00182 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_IGNORE_ANY_DEPENDENCE" },
00183 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_IGNORE_ASSUMED_DEPENDENCE" },
00184 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NO_ARGUMENT_ALIASING" },
00185 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NO_CONCURRENT_CALL" },
00186 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_NO_INTERCHANGE" },
00187 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_USE_COMPRESS" },
00188 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_USE_EXPAND" },
00189 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_USE_CONTROLLED_STORE" },
00190 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_USE_GATHER" },
00191 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_ASSERT_USE_SCATTER" },
00192 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "KAP_OPTIONS" },
00193
00194 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "PREAMBLE_END" },
00195
00196 { PUSER_W2F, WN_PRAGMA_SCOPE_PU, "FLIST_SKIP_BEGIN" },
00197 { PUSER_W2F, WN_PRAGMA_SCOPE_PU, "FLIST_SKIP_END" },
00198 { PUSER_W2C, WN_PRAGMA_SCOPE_PU, "CLIST_SKIP_BEGIN" },
00199 { PUSER_W2C, WN_PRAGMA_SCOPE_PU, "CLIST_SKIP_END" },
00200
00201 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "FILL_SYMBOL" },
00202 { PUSER_LNO, WN_PRAGMA_SCOPE_PU, "ALIGN_SYMBOL" },
00203
00204 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "INDEPENDENT_BEGIN" },
00205 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "INDEPENDENT_END" },
00206
00207 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "KAP_OPTION_INLINE" },
00208 { PUSER_IPA, WN_PRAGMA_SCOPE_PU, "KAP_OPTION_NOINLINE" },
00209
00210 { PUSER_MP, WN_PRAGMA_SCOPE_WN, "_CRI_IVDEP" },
00211 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_NOVECTOR" },
00212 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_NOVSEARCH" },
00213 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_PREFERVECTOR" },
00214 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_SHORTLOOP" },
00215 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_CASE" },
00216 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_ENDCASE" },
00217 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_COMMON" },
00218 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "_CRI_GUARD" },
00219 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "_CRI_ENDGUARD" },
00220 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_ENDLOOP" },
00221 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "_CRI_PARALLEL" },
00222 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "_CRI_ENDPARALLEL" },
00223 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_PREFERTASK" },
00224 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_TASKCOMMON" },
00225 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_TASKLOOP" },
00226 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_SHARED" },
00227 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_PRIVATE" },
00228 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_VALUE" },
00229 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_DEFAULTS" },
00230 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_MAXCPUS" },
00231 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_SAVELAST" },
00232 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_CHUNKSIZE" },
00233 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_NUMCHUNKS" },
00234
00235 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_TASK" },
00236 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_NOTASK" },
00237 { PUSER_CG, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_ALIGN" },
00238 { PUSER_CG, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_BL" },
00239 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "_CRI_CNCALL" },
00240
00241 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "MPNUM" },
00242 { PUSER_MP, (WN_PRAGMA_SCOPE) WN_PRAGMA_COPYIN_BOUND, "COPYIN_BOUND" },
00243 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "SYNC_DOACROSS" },
00244 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "DEFAULT" },
00245 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "FIRSTPRIVATE" },
00246 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "MASTER" },
00247 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "ORDERED" },
00248 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "END_ORDERED" },
00249 { PUSER_MP, WN_PRAGMA_SCOPE_WN, "ATOMIC" },
00250 { PUSER_MP, WN_PRAGMA_SCOPE_WN, "ORDERED_LOWER_BOUND" },
00251 { PUSER_MP, WN_PRAGMA_SCOPE_WN, "ORDERED_STRIDE" },
00252 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "END_MARKER" },
00253 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "PARALLEL_SECTIONS" },
00254
00255 { PUSER_REGION, WN_PRAGMA_SCOPE_POINT, "START_STMT_CLUMP" },
00256 { PUSER_REGION, WN_PRAGMA_SCOPE_POINT, "END_STMT_CLUMP" },
00257
00258 { PUSER_LNO, WN_PRAGMA_SCOPE_WN, "TYPE_OF_RESHAPED_ARRAY" },
00259
00260 { PUSER_CG, WN_PRAGMA_SCOPE_WN, "ASM_CONSTRAINT"},
00261 { PUSER_CG, WN_PRAGMA_SCOPE_WN, "ASM_CLOBBER"},
00262
00263 #ifdef KEY
00264 { PUSER_LNO, WN_PRAGMA_SCOPE_SPECIAL, "FORALL" },
00265 #endif
00266 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "COPYPRIVATE" },
00267 { PUSER_MP, WN_PRAGMA_SCOPE_POINT, "PARALLEL_WORKSHARE" },
00268 { PUSER_MP, WN_PRAGMA_SCOPE_ON, "PWORKSHARE_BEGIN" },
00269 { PUSER_MP, WN_PRAGMA_SCOPE_OFF, "PWORKSHARE_END" },
00270 { PUSER_MP, WN_PRAGMA_SCOPE_SPECIAL, "THREADPRIVATE" },
00271
00272 { PUSER_NULL, WN_PRAGMA_SCOPE_UNKNOWN, NULL }
00273 };
00274