Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
00001 /* 00002 00003 Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00004 00005 This program is free software; you can redistribute it and/or modify it 00006 under the terms of version 2 of the GNU General Public License as 00007 published by the Free Software Foundation. 00008 00009 This program is distributed in the hope that it would be useful, but 00010 WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 00013 Further, this software is distributed without any warranty that it is 00014 free of the rightful claim of any third person regarding infringement 00015 or the like. Any license provided herein, whether implied or 00016 otherwise, applies only to this software file. Patent licenses, if 00017 any, provided herein do not apply to combinations of this program with 00018 other software, or any other product whatsoever. 00019 00020 You should have received a copy of the GNU General Public License along 00021 with this program; if not, write the Free Software Foundation, Inc., 59 00022 Temple Place - Suite 330, Boston MA 02111-1307, USA. 00023 00024 Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00025 Mountain View, CA 94043, or: 00026 00027 http://www.sgi.com 00028 00029 For further information regarding this notice, see: 00030 00031 http://oss.sgi.com/projects/GenInfo/NoticeExplan 00032 00033 */ 00034 00035 /* USMID: "\n@(#)5.0_pl/macros/target.m 5.10 10/08/99 08:26:21\n" */ 00036 00037 /* This module is for target specific information. */ 00038 00039 # if defined(_HOST_OS_UNICOS) || defined(_HOST_OS_MAX) 00040 # define RESTRICT restrict 00041 # else 00042 # define RESTRICT 00043 # endif 00044 00045 # if defined(_TARGET64) 00046 00047 # define TARGET_CHARS_PER_WORD 8 /* Chars per word */ 00048 # define TARGET_BITS_PER_WORD 64 /* Bits per word */ 00049 # define TARGET_BYTES_PER_WORD 8 /* Bytes per word */ 00050 00051 # define TARGET_BYTES_TO_WORDS(BYTE_SIZE) (((BYTE_SIZE)+7) >> 3) 00052 # define TARGET_BITS_TO_WORDS(BIT_SIZE) (((BIT_SIZE)+63) >> 6) 00053 # define WORD_ALIGNED_BIT_LENGTH(BIT_SIZE) ((((BIT_SIZE) + 63) >> 6) << 6) 00054 00055 # define MAX_WORDS_FOR_INTEGER 1 00056 # define MAX_WORDS_FOR_NUMERIC 4 00057 # define MAX_SHORT_TYPELESS_BITS 256 00058 # define MAX_CHARS_IN_TYPELESS 32 00059 00060 # define WORD_ALIGN Align_64 00061 00062 # elif defined(_TARGET32) 00063 00064 # define TARGET_CHARS_PER_WORD 4 /* Chars per word */ 00065 # define TARGET_BITS_PER_WORD 32 /* Bits per word */ 00066 # define TARGET_BYTES_PER_WORD 4 /* Bytes per word */ 00067 00068 # define TARGET_BYTES_TO_WORDS(BYTE_SIZE) (((BYTE_SIZE)+3) >> 2) 00069 # define TARGET_BITS_TO_WORDS(BIT_SIZE) (((BIT_SIZE)+31) >> 5) 00070 # define WORD_ALIGNED_BIT_LENGTH(BIT_SIZE) ((((BIT_SIZE) + 31) >> 5) << 5) 00071 00072 # define MAX_WORDS_FOR_INTEGER 2 00073 # define MAX_WORDS_FOR_NUMERIC 8 00074 # define MAX_SHORT_TYPELESS_BITS 256 00075 # define MAX_CHARS_IN_TYPELESS 32 00076 00077 # define WORD_ALIGN Align_32 00078 00079 # endif 00080 00081 # if defined(_TARGET64) 00082 # define MAX_DV_EL_LEN 4611686018427387904 /* 2**62 bits */ 00083 # elif defined(_TARGET32) 00084 # define MAX_DV_EL_LEN 1073741823 /* (2**30) -1 bits */ 00085 # endif 00086 00087 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00088 # define UNNAMED_PROGRAM_NAME "MAIN__" 00089 # define UNNAMED_PROGRAM_NAME_LEN 6 00090 # define BLANK_COMMON_NAME "_BLNK__" 00091 # define BLANK_COMMON_NAME_LEN 7 00092 # else 00093 # define UNNAMED_PROGRAM_NAME "$MAIN" 00094 # define UNNAMED_PROGRAM_NAME_LEN 5 00095 # define BLANK_COMMON_NAME "//" 00096 # define BLANK_COMMON_NAME_LEN 2 00097 # endif 00098 00099 # if 0 00100 /* This is the string that gives unique names to module and internal procs. */ 00101 # endif 00102 00103 # if defined(_TARGET_OS_UNICOS) || defined(_TARGET_OS_MAX) 00104 # define UNIQUE_PROC_CONNECTOR "_in_" 00105 # define UNIQUE_PROC_LEN 4 00106 # else 00107 # define UNIQUE_PROC_CONNECTOR "_in_" 00108 # define UNIQUE_PROC_LEN 4 00109 # endif 00110 00111 # if 0 00112 /* On Cray systems, the environment variable CRAYLIBS is used as the path to */ 00113 /* libmodules.a. The file libmodules.a contains optional system modules. */ 00114 /* On IRIX systems, the system modules are not built into a library and the */ 00115 /* CRAYLIBS environment variable is not used; environment variable */ 00116 /* FTN_SYSTEM_MODULES is used instead as the path and the modules are */ 00117 /* individually available in the specified directory. Some time in the */ 00118 /* future, Cray systems should probably also phase over to using */ 00119 /* FTN_SYSTEM_MODULES so the location of the system modules can be decoupled */ 00120 /* from the location of the Cray libs. */ 00121 /* Module processing checks these system modules after searching user */ 00122 /* specified paths and the current directory. If the shell variable is */ 00123 /* unset, the compiler will just not look there. No message is issued. */ 00124 /* The MODULE_USE_SYSTEM_PATH stuff should be phased out. */ 00125 # endif 00126 00127 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) 00128 # define MODULE_USE_SYSTEM_PATH_VAR "FTN_SYSTEM_MODULES" 00129 # else 00130 # define MODULE_USE_SYSTEM_PATH_VAR "CRAYLIBS" 00131 # define MODULE_USE_SYSTEM_FILE "libmodules.a" 00132 # endif 00133 00134 # define SYSTEM_MODULE_USE_VAR "FORTRAN_SYSTEM_MODULES" 00135 00136 00137 # if defined(_HOST_OS_MAX) || defined(_HOST_OS_UNICOS) 00138 # define MAX_FILE_NAME_SIZE PATH_MAX+1 00139 # define MAX_PATH_NAME_SIZE PATH_MAX+1 00140 # define MACHINENAMELEN 65 00141 00142 # elif (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) || defined(_HOST_OS_SOLARIS) 00143 /* Irix: Filename limit defined in /usr/include/limits.h as "FILENAME_MAX" */ 00144 # define MAX_FILE_NAME_SIZE 1025 00145 # define MAX_PATH_NAME_SIZE 1025 00146 # define MACHINENAMELEN 65 00147 00148 # else 00149 /* Linux: */ 00150 /* 27Dec00[sos]: PV 764378 -- increase to match _POSIX_PATH_MAX as defined */ 00151 /* in /usr/include/bits/posix1_lim.h (included by */ 00152 /* /usr/include/limits.h). */ 00153 # define MAX_FILE_NAME_SIZE 256 00154 # define MAX_PATH_NAME_SIZE 256 00155 # define MACHINENAMELEN 65 00156 # endif 00157 00158 00159 # if defined(_HOST32) && defined(_TARGET64) 00160 # define LEX_STRTOL strtoll 00161 00162 # else 00163 # define LEX_STRTOL strtol 00164 # endif 00165 00166 # if 0 00167 /* Hard code for now, as gcc can't seem to get it correct. */ 00168 # endif 00169 00170 # if defined(_TARGET_SV2) 00171 # define OUR_LONG_MAX 2147483647 00172 # else 00173 # define OUR_LONG_MAX LONG_MAX 00174 # endif 00175 00176 00177 # if 0 00178 /* Used to fill in the large word for table searches */ 00179 # endif 00180 00181 # if defined(_HOST_LITTLE_ENDIAN) 00182 00183 /* Initialize byte storage with long data, swap it (without assuming */ 00184 /* any particular representation) - else symbol table lookups will fail */ 00185 00186 # ifdef _HOST64 00187 # define LARGE_WORD_FOR_TBL_SRCH \ 00188 ( (LONG_MAX & 0xffUL) << 56) \ 00189 |( (LONG_MAX & 0xff00UL) << 40) \ 00190 |( (LONG_MAX & 0xff0000UL) << 24) \ 00191 |( (LONG_MAX & 0xff000000UL) << 8) \ 00192 |( (LONG_MAX >> 8) & 0xff000000UL) \ 00193 |( (LONG_MAX >> 24) & 0x00ff0000UL) \ 00194 |( (LONG_MAX >> 40) & 0x0000ff00UL) \ 00195 |( (LONG_MAX >> 56) & 0x000000ffUL) 00196 # else 00197 # define LARGE_WORD_FOR_TBL_SRCH \ 00198 ( (LONG_MAX & 0xffUL) << 24) \ 00199 |( (LONG_MAX & 0xff00UL) << 8) \ 00200 |( (LONG_MAX >> 8) & 0xff00UL) \ 00201 |( (LONG_MAX >> 24) & 0x00ffUL) 00202 # endif 00203 00204 # else 00205 # define LARGE_WORD_FOR_TBL_SRCH OUR_LONG_MAX 00206 # endif 00207 00208 # if 0 00209 /* TYPE - defaults. Please see type.h. */ 00210 /* CG_LOGICAL_DEFAULT_TYPE is the compiler generated logical type. */ 00211 # endif 00212 00213 # define LARGEST_INTEGER_TYPE Integer_8 00214 00215 # if defined(_TARGET32) || defined(_WHIRL_HOST64_TARGET64) 00216 # define CG_LOGICAL_DEFAULT_TYPE Logical_4 00217 # elif defined(_TARGET64) 00218 # define CG_LOGICAL_DEFAULT_TYPE Logical_8 00219 # endif 00220 00221 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00222 00223 # define SA_INTEGER_DEFAULT_TYPE ((cmd_line_flags.s_pointer8) ? \ 00224 Integer_8 : Integer_4) 00225 # elif defined(_TARGET_OS_MAX) 00226 # define SA_INTEGER_DEFAULT_TYPE CG_INTEGER_DEFAULT_TYPE 00227 # else 00228 # define SA_INTEGER_DEFAULT_TYPE INTEGER_DEFAULT_TYPE 00229 # endif 00230 00231 # define TARGET_MAX_HALF_WORD_STORAGE_TYPE(type_idx) \ 00232 ((TYP_LINEAR(type_idx) == Real_4) || \ 00233 (TYP_LINEAR(type_idx) == Integer_1) || \ 00234 (TYP_LINEAR(type_idx) == Integer_2) || \ 00235 (TYP_LINEAR(type_idx) == Integer_4) || \ 00236 (TYP_LINEAR(type_idx) == Logical_1) || \ 00237 (TYP_LINEAR(type_idx) == Logical_2) || \ 00238 (TYP_LINEAR(type_idx) == Logical_4)) 00239 00240 # define TARGET_32BIT_DOUBLE_WORD_STORAGE_TYPE(type_idx) \ 00241 ((TYP_LINEAR(type_idx) == Real_8) || \ 00242 (TYP_LINEAR(type_idx) == Real_16) || \ 00243 (TYP_LINEAR(type_idx) == Complex_8) || \ 00244 (TYP_LINEAR(type_idx) == Complex_16) || \ 00245 (TYP_LINEAR(type_idx) == Integer_8) || \ 00246 (TYP_LINEAR(type_idx) == Logical_8)) 00247 00248 # ifdef _TARGET_OS_UNICOS 00249 # define TRUE_VALUE true_value 00250 # define FALSE_VALUE 0 00251 # else 00252 # define TRUE_VALUE 1 00253 # define FALSE_VALUE 0 00254 # endif 00255 00256 00257 /* Used for machine characteristics call */ 00258 00259 # ifdef _TARGET_OS_UNICOS 00260 00261 # ifdef _HOST_OS_UNICOS 00262 # define MAX_STORAGE_SIZE_IN_WORDS target_machine.fld.mcmsz 00263 # else 00264 # define MAX_STORAGE_SIZE_IN_WORDS 8388608 /* 2**23 */ 00265 # endif 00266 00267 # elif (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00268 # undef MAX_STORAGE_SIZE_IN_WORDS /* Hard coded inline. */ 00269 00270 # elif defined(_TARGET_OS_MAX) 00271 # define MAX_STORAGE_SIZE_IN_WORDS target_machine.fld.mcmsz 00272 # elif defined(_TARGET32) 00273 # define MAX_STORAGE_SIZE_IN_WORDS 67108864-1 /* 2**26 */ 00274 # else 00275 # define MAX_STORAGE_SIZE_IN_WORDS 8388608 /* 2**23 */ 00276 # endif 00277 00278 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00279 # define ISSUE_STORAGE_SIZE_EXCEEDED_MSG(ATTR_IDX, ERR_LVL) \ 00280 PRINTMSG(AT_DEF_LINE(ATTR_IDX), 1435, ERR_LVL, \ 00281 AT_DEF_COLUMN(ATTR_IDX), \ 00282 AT_OBJ_NAME_PTR(ATTR_IDX), \ 00283 (cmd_line_flags.s_pointer8) ? \ 00284 "9,007,199,254,740,992" : "536,870,912"); 00285 00286 00287 # define ISSUE_EXPR_SIZE_EXCEEDED_MSG(LINE, COLUMN, ERR_LVL) \ 00288 PRINTMSG(LINE, 1434, ERR_LVL, COLUMN, \ 00289 (cmd_line_flags.s_pointer8) ? \ 00290 "9,007,199,254,740,992" : "536,870,912"); 00291 # else 00292 # define ISSUE_STORAGE_SIZE_EXCEEDED_MSG(ATTR_IDX, ERR_LVL) \ 00293 PRINTMSG(AT_DEF_LINE(ATTR_IDX), 614, ERR_LVL, \ 00294 AT_DEF_COLUMN(ATTR_IDX), \ 00295 AT_OBJ_NAME_PTR(ATTR_IDX), \ 00296 MAX_STORAGE_SIZE_IN_WORDS); 00297 00298 # define ISSUE_EXPR_SIZE_EXCEEDED_MSG(LINE, COLUMN, ERR_LVL) \ 00299 PRINTMSG(LINE, 615, ERR_LVL, COLUMN, \ 00300 MAX_STORAGE_SIZE_IN_WORDS); 00301 # endif 00302 00303 /* Used for IO processing */ 00304 00305 # if defined(_TARGET_OS_UNICOS) || defined(_TARGET_OS_MAX) 00306 # define MAX_NUM_CILIST_WORDS 7 00307 # else 00308 # define MAX_NUM_CILIST_WORDS 8 00309 # endif 00310 00311 /* Used to set ATP_EXT_NAME_IDX */ 00312 00313 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00314 # define MAKE_EXTERNAL_NAME(ATTR_IDX, NAME_IDX, NAME_LEN) \ 00315 make_external_name(ATTR_IDX, NAME_IDX, NAME_LEN); 00316 # else 00317 # define MAKE_EXTERNAL_NAME(ATTR_IDX, NAME_IDX, NAME_LEN) \ 00318 ATP_EXT_NAME_IDX(ATTR_IDX) = NAME_IDX; \ 00319 ATP_EXT_NAME_LEN(ATTR_IDX) = NAME_LEN; 00320 # endif 00321 00322 00323 /* Following are commandline options and directives that are not accepted */ 00324 /* on all supported platforms. undef is not accepted, defined is accepted. */ 00325 /* If a commandline option or a directive is added (or changed) so that it */ 00326 /* is not accepted on one or more platforms, it should be added here and */ 00327 /* the new ifdef used where ever platform dependent code is found. */ 00328 00329 /* NOTE: The PDGCS interface makes -ef/-df and -k mutually exclusive. */ 00330 /* NOTE: On UNICOS, the unroll commandline options are not accepted, but */ 00331 /* the directives are accepted. */ 00332 00333 # if defined(_TARGET_SV2) 00334 # define _INLINE_INTRINSICS TRUE 00335 00336 # undef _ACCEPT_BL 00337 # define _ACCEPT_FLOW TRUE 00338 # define _ACCEPT_INLINE TRUE 00339 # define _ACCEPT_MIC_SEND TRUE 00340 # define _ACCEPT_MIC_WAIT TRUE 00341 # define _ACCEPT_PATTERN TRUE 00342 # undef _ACCEPT_SHORTCIRCUIT 00343 # undef _ACCEPT_SPLIT 00344 # define _ACCEPT_STREAM TRUE 00345 # undef _ACCEPT_TASK 00346 # define _ACCEPT_VECTOR TRUE 00347 # define _ACCEPT_VSEARCH TRUE 00348 00349 # undef _ACCEPT_CMD_align 00350 # undef _ACCEPT_CMD_a_static_threadprivate 00351 # undef _ACCEPT_CMD_a_dalign 00352 # undef _ACCEPT_CMD_a_pad 00353 # undef _ACCEPT_CMD_k 00354 # undef _ACCEPT_CMD_Gd 00355 # define _ACCEPT_CMD_J TRUE 00356 # undef _ACCEPT_CMD_P 00357 # define _ACCEPT_CMD_s_cf77types TRUE 00358 # undef _ACCEPT_CMD_s_32 00359 # define _ACCEPT_CMD_s_64 TRUE 00360 # undef _ACCEPT_CMD_X 00361 00362 # define _ACCEPT_CMD_ed_g TRUE 00363 00364 # if defined(_INTEGER_1_AND_2) 00365 # define _ACCEPT_CMD_ed_h TRUE 00366 # else 00367 # undef _ACCEPT_CMD_ed_h 00368 # endif 00369 # define _ACCEPT_CMD_ed_i TRUE 00370 # define _ACCEPT_CMD_ed_j TRUE 00371 # define _ACCEPT_CMD_ed_r TRUE 00372 # undef _ACCEPT_CMD_ed_z 00373 # undef _ACCEPT_CMD_ed_A 00374 # undef _ACCEPT_CMD_ed_C 00375 # define _ACCEPT_CMD_ed_D TRUE 00376 # undef _ACCEPT_CMD_ed_U 00377 # define _ACCEPT_CMD_ed_X TRUE 00378 # define _ACCEPT_CMD_ed_0 TRUE 00379 00380 # define _ACCEPT_CMD_O_FASTINT TRUE 00381 # define _ACCEPT_CMD_O_FUSION TRUE 00382 # define _ACCEPT_CMD_O_JUMP TRUE 00383 # define _ACCEPT_CMD_O_LOOPALIGN TRUE 00384 # undef _ACCEPT_CMD_O_MATMUL_INLINE 00385 # define _ACCEPT_CMD_O_OPT_INFO TRUE 00386 # undef _ACCEPT_CMD_O_PIPELINE 00387 # undef _ACCEPT_CMD_O_RESHAPE 00388 # undef _ACCEPT_CMD_O_UNROLL 00389 # define _ACCEPT_CMD_O_ZEROINC TRUE 00390 00391 # undef _ACCEPT_DIR_SHORTLOOP128 00392 00393 # elif defined(_TARGET_OS_UNICOS) 00394 # define _INLINE_INTRINSICS TRUE 00395 00396 # define _ACCEPT_BL TRUE 00397 # define _ACCEPT_FLOW TRUE 00398 # define _ACCEPT_INLINE TRUE 00399 # define _ACCEPT_MIC_SEND TRUE 00400 # define _ACCEPT_MIC_WAIT TRUE 00401 # define _ACCEPT_PATTERN TRUE 00402 # undef _ACCEPT_SHORTCIRCUIT 00403 # undef _ACCEPT_SPLIT 00404 # define _ACCEPT_STREAM TRUE 00405 # define _ACCEPT_TASK TRUE 00406 # define _ACCEPT_VECTOR TRUE 00407 # define _ACCEPT_VSEARCH TRUE 00408 00409 # undef _ACCEPT_CMD_align 00410 # undef _ACCEPT_CMD_a_static_threadprivate 00411 # undef _ACCEPT_CMD_a_dalign 00412 # undef _ACCEPT_CMD_a_pad 00413 # undef _ACCEPT_CMD_k 00414 # undef _ACCEPT_CMD_Gd 00415 # define _ACCEPT_CMD_J TRUE 00416 # undef _ACCEPT_CMD_P 00417 # define _ACCEPT_CMD_s_cf77types TRUE 00418 # undef _ACCEPT_CMD_s_32 00419 # undef _ACCEPT_CMD_s_64 00420 # undef _ACCEPT_CMD_X 00421 00422 # define _ACCEPT_CMD_ed_g TRUE 00423 00424 # if defined(_INTEGER_1_AND_2) 00425 # define _ACCEPT_CMD_ed_h TRUE 00426 # else 00427 # undef _ACCEPT_CMD_ed_h 00428 # endif 00429 # define _ACCEPT_CMD_ed_i TRUE 00430 # define _ACCEPT_CMD_ed_j TRUE 00431 # define _ACCEPT_CMD_ed_r TRUE 00432 # undef _ACCEPT_CMD_ed_z 00433 # undef _ACCEPT_CMD_ed_A 00434 # undef _ACCEPT_CMD_ed_C 00435 # define _ACCEPT_CMD_ed_D TRUE 00436 # undef _ACCEPT_CMD_ed_U 00437 # define _ACCEPT_CMD_ed_X TRUE 00438 # define _ACCEPT_CMD_ed_0 TRUE 00439 00440 # define _ACCEPT_CMD_O_FASTINT TRUE 00441 # undef _ACCEPT_CMD_O_FUSION 00442 # undef _ACCEPT_CMD_O_JUMP 00443 # define _ACCEPT_CMD_O_LOOPALIGN TRUE 00444 # undef _ACCEPT_CMD_O_MATMUL_INLINE 00445 # define _ACCEPT_CMD_O_OPT_INFO TRUE 00446 # undef _ACCEPT_CMD_O_PIPELINE 00447 # undef _ACCEPT_CMD_O_RESHAPE 00448 # undef _ACCEPT_CMD_O_UNROLL 00449 # define _ACCEPT_CMD_O_ZEROINC TRUE 00450 00451 # define _ACCEPT_DIR_SHORTLOOP128 TRUE 00452 00453 # elif defined(_TARGET_OS_MAX) 00454 # define _INLINE_INTRINSICS TRUE 00455 00456 # define _ACCEPT_BL TRUE 00457 # undef _ACCEPT_FLOW 00458 # define _ACCEPT_INLINE TRUE 00459 # undef _ACCEPT_MIC_SEND 00460 # undef _ACCEPT_MIC_WAIT 00461 # define _ACCEPT_PATTERN TRUE 00462 # define _ACCEPT_SPLIT TRUE 00463 # undef _ACCEPT_SHORTCIRCUIT 00464 # undef _ACCEPT_STREAM 00465 # undef _ACCEPT_TASK 00466 # define _ACCEPT_VECTOR TRUE 00467 # undef _ACCEPT_VSEARCH 00468 00469 # undef _ACCEPT_CMD_align 00470 # undef _ACCEPT_CMD_a_dalign 00471 # undef _ACCEPT_CMD_a_static_threadprivate 00472 # define _ACCEPT_CMD_a_pad TRUE 00473 # undef _ACCEPT_CMD_k 00474 # define _ACCEPT_CMD_s_cf77types TRUE 00475 # define _ACCEPT_CMD_s_32 TRUE 00476 # undef _ACCEPT_CMD_s_64 00477 # undef _ACCEPT_CMD_Gd 00478 # define _ACCEPT_CMD_J TRUE 00479 # undef _ACCEPT_CMD_P 00480 # define _ACCEPT_CMD_X TRUE 00481 00482 # undef _ACCEPT_CMD_ed_g 00483 # undef _ACCEPT_CMD_ed_h 00484 # define _ACCEPT_CMD_ed_i TRUE 00485 # undef _ACCEPT_CMD_ed_j 00486 # undef _ACCEPT_CMD_ed_r 00487 # undef _ACCEPT_CMD_ed_z 00488 # define _ACCEPT_CMD_ed_A TRUE 00489 # define _ACCEPT_CMD_ed_C TRUE 00490 # define _ACCEPT_CMD_ed_D TRUE 00491 # undef _ACCEPT_CMD_ed_U 00492 # undef _ACCEPT_CMD_ed_X 00493 # define _ACCEPT_CMD_ed_0 TRUE 00494 00495 # undef _ACCEPT_CMD_O_FASTINT 00496 # define _ACCEPT_CMD_O_FUSION TRUE 00497 # define _ACCEPT_CMD_O_JUMP TRUE 00498 # undef _ACCEPT_CMD_O_LOOPALIGN 00499 # undef _ACCEPT_CMD_O_MATMUL_INLINE 00500 # define _ACCEPT_CMD_O_PIPELINE TRUE 00501 # define _ACCEPT_CMD_O_RESHAPE TRUE 00502 # define _ACCEPT_CMD_O_OPT_INFO TRUE 00503 # define _ACCEPT_CMD_O_UNROLL TRUE 00504 # define _ACCEPT_CMD_O_ZEROINC TRUE 00505 00506 # undef _ACCEPT_DIR_SHORTLOOP128 00507 00508 # elif (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00509 # define _INLINE_INTRINSICS TRUE 00510 00511 # undef _ACCEPT_BL 00512 # undef _ACCEPT_FLOW 00513 # define _ACCEPT_INLINE TRUE 00514 # undef _ACCEPT_MIC_SEND 00515 # undef _ACCEPT_MIC_WAIT 00516 # undef _ACCEPT_PATTERN 00517 # undef _ACCEPT_SPLIT 00518 # define _ACCEPT_SHORTCIRCUIT TRUE 00519 # undef _ACCEPT_STREAM 00520 # define _ACCEPT_TASK TRUE 00521 # undef _ACCEPT_VECTOR 00522 # undef _ACCEPT_VSEARCH 00523 00524 # define _ACCEPT_CMD_align TRUE 00525 # define _ACCEPT_CMD_a_dalign TRUE 00526 # define _ACCEPT_CMD_a_static_threadprivate TRUE 00527 # undef _ACCEPT_CMD_a_pad 00528 # define _ACCEPT_CMD_k TRUE 00529 # undef _ACCEPT_CMD_s_cf77types 00530 # undef _ACCEPT_CMD_s_32 00531 # define _ACCEPT_CMD_s_64 TRUE 00532 # define _ACCEPT_CMD_Gd TRUE 00533 # undef _ACCEPT_CMD_J 00534 # define _ACCEPT_CMD_P TRUE 00535 # undef _ACCEPT_CMD_X 00536 00537 # define _ACCEPT_CMD_ed_g TRUE 00538 # undef _ACCEPT_CMD_ed_h 00539 # undef _ACCEPT_CMD_ed_i 00540 # define _ACCEPT_CMD_ed_j TRUE 00541 # undef _ACCEPT_CMD_ed_r 00542 # define _ACCEPT_CMD_ed_z TRUE 00543 # undef _ACCEPT_CMD_ed_A 00544 # undef _ACCEPT_CMD_ed_C 00545 # undef _ACCEPT_CMD_ed_D 00546 # define _ACCEPT_CMD_ed_U TRUE 00547 # define _ACCEPT_CMD_ed_X TRUE 00548 # undef _ACCEPT_CMD_ed_0 00549 00550 # undef _ACCEPT_CMD_O_FASTINT 00551 # undef _ACCEPT_CMD_O_FUSION 00552 # undef _ACCEPT_CMD_O_JUMP 00553 # undef _ACCEPT_CMD_O_LOOPALIGN 00554 # define _ACCEPT_CMD_O_MATMUL_INLINE TRUE 00555 # undef _ACCEPT_CMD_O_OPT_INFO 00556 # undef _ACCEPT_CMD_O_PIPELINE 00557 # undef _ACCEPT_CMD_O_RESHAPE 00558 # define _ACCEPT_CMD_O_UNROLL TRUE 00559 # define _ACCEPT_CMD_O_ZEROINC TRUE 00560 00561 # undef _ACCEPT_DIR_SHORTLOOP128 00562 00563 # elif defined(_TARGET_OS_SOLARIS) 00564 # define _INLINE_INTRINSICS TRUE 00565 00566 # undef _ACCEPT_BL 00567 # undef _ACCEPT_FLOW 00568 # undef _ACCEPT_INLINE 00569 # undef _ACCEPT_MIC_SEND 00570 # undef _ACCEPT_MIC_WAIT 00571 # define _ACCEPT_PATTERN TRUE 00572 # undef _ACCEPT_SPLIT 00573 # undef _ACCEPT_SHORTCIRCUIT 00574 # undef _ACCEPT_STREAM 00575 # define _ACCEPT_TASK TRUE 00576 # undef _ACCEPT_VECTOR 00577 # undef _ACCEPT_VSEARCH 00578 00579 # undef _ACCEPT_CMD_align 00580 # define _ACCEPT_CMD_a_dalign TRUE 00581 # undef _ACCEPT_CMD_a_static_threadprivate 00582 # undef _ACCEPT_CMD_a_pad 00583 # define _ACCEPT_CMD_k TRUE 00584 # undef _ACCEPT_CMD_s_cf77types 00585 # undef _ACCEPT_CMD_s_32 00586 # define _ACCEPT_CMD_s_64 TRUE 00587 # undef _ACCEPT_CMD_Gd 00588 # undef _ACCEPT_CMD_J 00589 # define _ACCEPT_CMD_P TRUE 00590 # undef _ACCEPT_CMD_X 00591 00592 # define _ACCEPT_CMD_ed_g TRUE 00593 # undef _ACCEPT_CMD_ed_h 00594 # undef _ACCEPT_CMD_ed_i 00595 # define _ACCEPT_CMD_ed_j TRUE 00596 # undef _ACCEPT_CMD_ed_r 00597 # undef _ACCEPT_CMD_ed_z 00598 # undef _ACCEPT_CMD_ed_A 00599 # undef _ACCEPT_CMD_ed_C 00600 # undef _ACCEPT_CMD_ed_D 00601 # define _ACCEPT_CMD_ed_U TRUE 00602 # define _ACCEPT_CMD_ed_X TRUE 00603 # undef _ACCEPT_CMD_ed_0 00604 00605 # undef _ACCEPT_CMD_O_FASTINT 00606 # undef _ACCEPT_CMD_O_FUSION 00607 # undef _ACCEPT_CMD_O_JUMP 00608 # undef _ACCEPT_CMD_O_LOOPALIGN 00609 # undef _ACCEPT_CMD_O_MATMUL_INLINE 00610 # undef _ACCEPT_CMD_O_OPT_INFO 00611 # undef _ACCEPT_CMD_O_PIPELINE 00612 # undef _ACCEPT_CMD_O_RESHAPE 00613 # define _ACCEPT_CMD_O_UNROLL TRUE 00614 # define _ACCEPT_CMD_O_ZEROINC TRUE 00615 00616 # undef _ACCEPT_DIR_SHORTLOOP128 00617 00618 # else 00619 # undef _INLINE_INTRINSICS 00620 00621 # undef _ACCEPT_BL 00622 # undef _ACCEPT_FLOW 00623 # undef _ACCEPT_INLINE 00624 # undef _ACCEPT_MIC_SEND 00625 # undef _ACCEPT_MIC_WAIT 00626 # undef _ACCEPT_PATTERN 00627 # undef _ACCEPT_TASK 00628 # undef _ACCEPT_STREAM 00629 # undef _ACCEPT_VECTOR 00630 # undef _ACCEPT_VSEARCH 00631 00632 # undef _ACCEPT_CMD_align 00633 # undef _ACCEPT_CMD_a_dalign 00634 # undef _ACCEPT_CMD_a_static_threadprivate 00635 # undef _ACCEPT_CMD_a_pad 00636 # undef _ACCEPT_CMD_k 00637 # undef _ACCEPT_CMD_s_32 00638 # undef _ACCEPT_CMD_s_64 00639 # undef _ACCEPT_CMD_Gd 00640 # undef _ACCEPT_CMD_J 00641 # undef _ACCEPT_CMD_P 00642 # undef _ACCEPT_CMD_X 00643 00644 # define _ACCEPT_CMD_ed_g TRUE 00645 # undef _ACCEPT_CMD_ed_h 00646 # define _ACCEPT_CMD_ed_i TRUE 00647 # define _ACCEPT_CMD_ed_j TRUE 00648 # define _ACCEPT_CMD_ed_r TRUE 00649 # undef _ACCEPT_CMD_ed_z 00650 # undef _ACCEPT_CMD_ed_A 00651 # undef _ACCEPT_CMD_ed_C 00652 # define _ACCEPT_CMD_ed_X TRUE 00653 # undef _ACCEPT_CMD_ed_0 00654 00655 # undef _ACCEPT_CMD_O_FASTINT 00656 # undef _ACCEPT_CMD_O_FUSION 00657 # undef _ACCEPT_CMD_O_JUMP 00658 # undef _ACCEPT_CMD_O_LOOPALIGN 00659 # undef _ACCEPT_CMD_O_MATMUL_INLINE 00660 # undef _ACCEPT_CMD_O_OPT_INFO 00661 # undef _ACCEPT_CMD_O_PIPELINE 00662 # undef _ACCEPT_CMD_O_RESHAPE 00663 # undef _ACCEPT_CMD_O_UNROLL 00664 # define _ACCEPT_CMD_O_ZEROINC TRUE 00665 00666 # undef _ACCEPT_DIR_SHORTLOOP128 00667 00668 # endif 00669 00670 00671 /* The following directive acceptance is based on command line */ 00672 /* option acceptance and other ifdefs. */ 00673 00674 # if defined(_ACCEPT_BL) 00675 # define CDIR_BL TRUE 00676 # else 00677 # define CDIR_BL FALSE 00678 # endif 00679 00680 # if defined(_ACCEPT_FLOW) 00681 # define CDIR_FLOW TRUE 00682 # else 00683 # define CDIR_FLOW FALSE 00684 # endif 00685 00686 # if defined(_ACCEPT_INLINE) 00687 # define CDIR_INLINE TRUE 00688 # else 00689 # define CDIR_INLINE FALSE 00690 # endif 00691 00692 # if defined(_ACCEPT_STREAM) 00693 # define CDIR_STREAM TRUE 00694 # else 00695 # define CDIR_STREAM FALSE 00696 # endif 00697 00698 # if defined(_ACCEPT_PATTERN) 00699 # define CDIR_PATTERN TRUE 00700 # else 00701 # define CDIR_PATTERN FALSE 00702 # endif 00703 00704 # if defined(_ACCEPT_SPLIT) 00705 # define CDIR_SPLIT TRUE 00706 # else 00707 # define CDIR_SPLIT FALSE 00708 # endif 00709 00710 # if defined(_ACCEPT_TASK) 00711 # define CDIR_TASK TRUE 00712 # else 00713 # define CDIR_TASK FALSE 00714 # endif 00715 00716 # if defined(_ACCEPT_VECTOR) 00717 # define CDIR_VECTOR TRUE 00718 # else 00719 # define CDIR_VECTOR FALSE 00720 # endif 00721 00722 # if defined(_ACCEPT_VSEARCH) 00723 # define CDIR_VSEARCH TRUE 00724 # else 00725 # define CDIR_VSEARCH FALSE 00726 # endif 00727 00728 # if defined(_TASK_COMMON_EXTENSION) 00729 # define CDIR_TASKCOMMON TRUE 00730 # else 00731 # define CDIR_TASKCOMMON FALSE 00732 # endif 00733 00734 00735 /* Directive acceptance for each platform */ 00736 00737 # if defined(_TARGET_SV2) 00738 00739 # define CDIR_ALIGN FALSE 00740 # define CDIR_AUXILIARY FALSE 00741 # define CDIR_BLOCKABLE TRUE 00742 # define CDIR_CACHE_ALIGN FALSE 00743 # define CDIR_CACHE_BLOCK TRUE 00744 # define CDIR_CACHE_BYPASS FALSE 00745 # define CDIR_CACHE_NOALLOCATE TRUE 00746 # define CDIR_CONCURRENT TRUE 00747 # define CDIR_COPY_ASSUMED_SHAPE TRUE 00748 # define CDIR_INTERCHANGE TRUE 00749 # define CDIR_IVDEP TRUE 00750 # define CDIR_NOSIDEEFFECTS TRUE 00751 # define CDIR_PREFERTASK TRUE 00752 # define CDIR_PREFERVECTOR TRUE 00753 # define CDIR_RECURRENCE TRUE 00754 # define CDIR_SHORTLOOP TRUE 00755 # define CDIR_STACK TRUE 00756 # define CDIR_SUPPRESS TRUE 00757 # define CDIR_SYMMETRIC FALSE 00758 # define CDIR_UNROLL TRUE 00759 # define CDIR_USES_EREGS FALSE 00760 # define CDIR_VFUNCTION TRUE 00761 00762 # elif defined(_TARGET_OS_UNICOS) 00763 00764 # define CDIR_ALIGN TRUE 00765 # define CDIR_AUXILIARY TRUE 00766 # define CDIR_BLOCKABLE TRUE 00767 # define CDIR_CACHE_ALIGN FALSE 00768 # define CDIR_CACHE_BLOCK TRUE 00769 # define CDIR_CACHE_BYPASS FALSE 00770 # define CDIR_CACHE_NOALLOCATE FALSE 00771 # define CDIR_CONCURRENT TRUE 00772 # define CDIR_COPY_ASSUMED_SHAPE TRUE 00773 # define CDIR_INTERCHANGE TRUE 00774 # define CDIR_IVDEP TRUE 00775 # define CDIR_NOSIDEEFFECTS TRUE 00776 # define CDIR_PREFERTASK TRUE 00777 # define CDIR_PREFERVECTOR TRUE 00778 # define CDIR_RECURRENCE TRUE 00779 # define CDIR_SHORTLOOP TRUE 00780 # define CDIR_STACK TRUE 00781 # define CDIR_SUPPRESS TRUE 00782 # define CDIR_SYMMETRIC FALSE 00783 # define CDIR_UNROLL TRUE 00784 # define CDIR_USES_EREGS FALSE 00785 # define CDIR_VFUNCTION TRUE 00786 00787 # elif defined(_TARGET_OS_MAX) 00788 00789 # define CDIR_ALIGN FALSE 00790 # define CDIR_AUXILIARY FALSE 00791 # define CDIR_BLOCKABLE TRUE 00792 # define CDIR_CACHE_ALIGN TRUE 00793 # define CDIR_CACHE_BLOCK TRUE 00794 # define CDIR_CACHE_BYPASS TRUE 00795 # define CDIR_CACHE_NOALLOCATE FALSE 00796 # define CDIR_CONCURRENT TRUE 00797 # define CDIR_COPY_ASSUMED_SHAPE TRUE 00798 # define CDIR_INTERCHANGE TRUE 00799 # define CDIR_IVDEP TRUE 00800 # define CDIR_NOSIDEEFFECTS FALSE 00801 # define CDIR_PREFERTASK FALSE 00802 # define CDIR_PREFERVECTOR FALSE 00803 # define CDIR_RECURRENCE TRUE 00804 # define CDIR_SHORTLOOP TRUE 00805 # define CDIR_STACK TRUE 00806 # define CDIR_SUPPRESS TRUE 00807 # define CDIR_SYMMETRIC TRUE 00808 # define CDIR_UNROLL TRUE 00809 # define CDIR_USES_EREGS TRUE 00810 # define CDIR_VFUNCTION FALSE 00811 00812 # elif (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) 00813 # define CDIR_ALIGN FALSE 00814 # define CDIR_AUXILIARY FALSE 00815 # define CDIR_BLOCKABLE FALSE 00816 # define CDIR_CACHE_ALIGN FALSE 00817 # define CDIR_CACHE_BLOCK FALSE 00818 # define CDIR_CACHE_BYPASS FALSE 00819 # define CDIR_CACHE_NOALLOCATE FALSE 00820 # define CDIR_CONCURRENT FALSE 00821 # define CDIR_COPY_ASSUMED_SHAPE FALSE 00822 # define CDIR_INTERCHANGE FALSE 00823 # define CDIR_IVDEP TRUE 00824 # define CDIR_NOSIDEEFFECTS TRUE 00825 # define CDIR_PREFERTASK TRUE 00826 # define CDIR_PREFERVECTOR FALSE 00827 # define CDIR_RECURRENCE FALSE 00828 # define CDIR_SHORTLOOP FALSE 00829 # define CDIR_STACK FALSE 00830 # define CDIR_SUPPRESS FALSE 00831 # define CDIR_SYMMETRIC FALSE 00832 # define CDIR_UNROLL TRUE 00833 # define CDIR_USES_EREGS FALSE 00834 # define CDIR_VFUNCTION FALSE 00835 00836 # elif defined(_TARGET_OS_SOLARIS) 00837 00838 # define CDIR_ALIGN FALSE 00839 # define CDIR_AUXILIARY FALSE 00840 # define CDIR_BLOCKABLE FALSE 00841 # define CDIR_CACHE_ALIGN FALSE 00842 # define CDIR_CACHE_BLOCK FALSE 00843 # define CDIR_CACHE_BYPASS FALSE 00844 # define CDIR_CACHE_NOALLOCATE FALSE 00845 # define CDIR_CONCURRENT FALSE 00846 # define CDIR_COPY_ASSUMED_SHAPE FALSE 00847 # define CDIR_INTERCHANGE FALSE 00848 # define CDIR_IVDEP FALSE 00849 # define CDIR_NOSIDEEFFECTS FALSE 00850 # define CDIR_PREFERTASK TRUE 00851 # define CDIR_PREFERVECTOR FALSE 00852 # define CDIR_RECURRENCE TRUE 00853 # define CDIR_SHORTLOOP FALSE 00854 # define CDIR_STACK TRUE 00855 # define CDIR_SUPPRESS TRUE 00856 # define CDIR_SYMMETRIC FALSE 00857 # define CDIR_UNROLL TRUE 00858 # define CDIR_USES_EREGS FALSE 00859 # define CDIR_VFUNCTION FALSE 00860 00861 # endif 00862 00863 #define _ACCEPT_CMD_J TRUE /*temp use for co-array ----fzhao*/