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 00036 /* USMID: "\n@(#)5.0_pl/headers/defines.h 5.17 10/20/99 17:17:46\n" */ 00037 00038 /*****************************************************************************/ 00039 /*****************************************************************************/ 00040 /* */ 00041 /* This file is used to convert commandline definitions into internal */ 00042 /* compiler definitions. (Note: Also check cmd_line.h and type.h) */ 00043 /* */ 00044 /* The possible commandline defines are : */ 00045 /* */ 00046 /* _PVP_PVP Host CRAY to CRAY */ 00047 /* _PVP_MPP Host CRAY - target MPP */ 00048 /* _MPP_MPP Host MPP - target MPP */ 00049 /* _SGI_SGI Host SGI - target SGI */ 00050 /* _SGI_SV2 Host SGI - target SV2 */ 00051 /* _SOLARIS_SOLARIS Host solaris - target solaris */ 00052 /* _LINUX_LINUX Host linux - target_linux (assume intel for */ 00053 /* now) This will change to a more meaningful name */ 00054 /* once we figure out what that will be. */ 00055 /* */ 00056 /* _EXPR_EVAL Can be specified with one of the above. This */ 00057 /* creates a frontend that can be used as the */ 00058 /* expression evaluator for the debugger. */ 00059 /* */ 00060 /* _DEBUG Builds a DEBUG version of the frontend. */ 00061 /* */ 00062 /* */ 00063 /*****************************************************************************/ 00064 /* */ 00065 /* Internal defines are: */ 00066 /* */ 00067 /* Choose 1: */ 00068 /* _ENABLE_FEI Activates functional interface */ 00069 /* */ 00070 /* Choose 1: */ 00071 /* _HOST32 Host bit size is 32 bits */ 00072 /* _HOST64 Host bit size is 64 bits */ 00073 /* */ 00074 /* Choose 1: */ 00075 /* _TARGET32 Target bit size is 32 bits. */ 00076 /* _TARGET64 Target bit size is 64 bits. */ 00077 /* */ 00078 /* */ 00079 /* When adding a new set of host and target macros, don't forget to go */ 00080 /* into ntr_const_tbl and use them to determine when numeric constant */ 00081 /* searches can be optimized. See the comments in ntr_const_tbl. */ 00082 /* */ 00083 /* Choose 1: */ 00084 /* _HOST_OS_MAX Host operating system is MAX. */ 00085 /* _HOST_OS_SOLARIS Host operating system is SOLARIS. */ 00086 /* _HOST_OS_UNICOS Host operating system is UNICOS. */ 00087 /* _HOST_OS_IRIX Host operating system is IRIX. */ 00088 /* _HOST_OS_LINUX Host operating system is LINUX. */ 00089 /* */ 00090 /* Choose 1: */ 00091 /* _TARGET_OS_MAX Target operating system is MAX */ 00092 /* _TARGET_OS_SOLARIS Target operating system is SOLARIS */ 00093 /* _TARGET_OS_UNICOS Target operating system is UNICOS */ 00094 /* _TARGET_OS_IRIX Target operating system is IRIX. */ 00095 /* _TARGET_OS_LINUX Target operating system is LINUX. */ 00096 /* */ 00097 /* Choose 1: */ 00098 /* _TARGET_IEEE IEEE */ 00099 /* */ 00100 /* Choose 1: */ 00101 /* _TARGET_SV2 SV2 */ 00102 /* */ 00103 /* Choose 1: */ 00104 /* _TARGET_LITTLE_ENDIAN LITTLE ENDIAN */ 00105 /* */ 00106 /* Choose 1: */ 00107 /* _HOST_LITTLE_ENDIAN LITTLE ENDIAN */ 00108 /* */ 00109 /* Choose 1: */ 00110 /* _TARGET_BYTE_ADDRESS Addressing is done by bytes on the target. */ 00111 /* _TARGET_WORD_ADDRESS Addressing is done by words on the target. */ 00112 /* */ 00113 /* Choose 1: */ 00114 /* _HEAP_REQUEST_IN_BYTES Heap requests are in bytes. */ 00115 /* _HEAP_REQUEST_IN_WORDS Heap requests are in words. */ 00116 /* */ 00117 /* Choose 1: */ 00118 /* _MODULE_TO_DOT_o If file being compiled is called name.f, */ 00119 /* then the module information tables will be */ 00120 /* sent to the name.o (binary) file via the */ 00121 /* interface. A tmp file name is sent through */ 00122 /* the interface. The backend is required to */ 00123 /* put it where it wants it in the .o and then */ 00124 /* delete the file. A mechanism has to be */ 00125 /* implemented to find the module files again. */ 00126 /* This frontend supports Cray loader tables */ 00127 /* and SUN ELF files. */ 00128 /* The current naming scheme for the tmp files */ 00129 /* is .filename.MODULENAME.m */ 00130 /* If -dm is specified, this is the default. */ 00131 /* -em (module to dot mod) overrides this. */ 00132 /* _MODULE_TO_DOT_M If file being compiled is called name.f, */ 00133 /* then the module information tables will be */ 00134 /* sent to name.M directly using fprintf */ 00135 /* statements. When searching for modules, */ 00136 /* the compiler will look for .M files. If a */ 00137 /* user specified -p name.o, the file -p name.M */ 00138 /* will be when resolving USE statements. */ 00139 /* If -dm is specified, this is the default. */ 00140 /* -em (module to dot mod) overrides this. */ 00141 /* */ 00142 /* MODULE NOTE: Check MODULE_USE_SYSTEM_FILE and */ 00143 /* MODULE_USE_SYSTEM_PATH_VAR for information */ 00144 /* on setting a system file for the compiler to */ 00145 /* search when resolving USE statements. */ 00146 /* */ 00147 /* Misc: */ 00148 /* _DEBUG Builds a DEBUG version of the frontend. */ 00149 /* Set on the build commandline. */ 00150 /* _ALIGN_REAL16_TO_16_BYTES */ 00151 /* Align real(kind=16) and compilex(kind=16) */ 00152 /* to a 16 byte boundary. */ 00153 /* _ALLOCATE_IS_CALL ALLOCATE stmt stays as user library call */ 00154 /* otherwise it is an operator. */ 00155 /* _ALLOW_DATA_INIT_OF_COMMON Issue an ANSI message if a common block */ 00156 /* is initialized outside of a blockdata. If */ 00157 /* this is not specified, a warning is issued. */ 00158 /* _ALTERNATIVE_INTERFACE_FOR_POINTEES */ 00159 /* A different interface to describe pointees */ 00160 /* to the backend. */ 00161 /* _ARITH_H Needed if arith.h is used. */ 00162 /* _ARITH_INPUT_CONV Use arith to do input conversion */ 00163 /* otherwise use libc input conversion. */ 00164 /* _ASSIGN_OFFSETS_TO_HOSTED_STACK True means assign offets to host */ 00165 /* associated stack variables, move hosted */ 00166 /* equiv groups into the host associated stack */ 00167 /* and generate a temp at the end of the hosted */ 00168 /* stack for each child that uses the hosted */ 00169 /* stack. False means we assign no offsets to */ 00170 /* this block we generate no temp and hosted */ 00171 /* stack equiv items are put in their own */ 00172 /* stack block, but marked as host associated. */ 00173 /* _CHAR_IS_ALIGN_8 We attach an alignment enum to all variables */ 00174 /* which is used on some platforms. If the type*/ 00175 /* is character, the alignment is set to Align_8*/ 00176 /* If this is not set, alignment is Align_Bit */ 00177 /* _CHAR_LEN_IN_BYTES Character length in in bytes. If this is not*/ 00178 /* defined, character length is in bits. */ 00179 /* _CHECK_MAX_MEMORY Check for objects bigger than memory size. */ 00180 /* _D_LINES_SUPPORTED 'd' in column one is either comment or blank */ 00181 /* depending on command line option. */ 00182 /* _DOPE_VECTOR_32_OR_64 Use a switchable dope vector based on the */ 00183 /* -s pointer8 commandline option. */ 00184 /* _ERROR_DUPLICATE_GLOBALS An error message will be issued if their */ 00185 /* are duplicate global or common entries found */ 00186 /* during compilation. If this is not defined */ 00187 /* caution level messages will be issued. */ 00188 /* _EXTENDED_CRI_CHAR_POINTER turns on code to allow array character */ 00189 /* pointees and other char pointer changes. */ 00190 /* COARRAY_FORTRAN Used to allow F-- syntax. (processor */ 00191 /* dimension syntax array(1:10)[2,3] ) */ 00192 /* _FILE_IO_OPRS If this is set, OPEN,CLOSE,INQUIRE,BACKSPACE,*/ 00193 /* BUFFER IO, ENDFILE, and REWIND stmts leave */ 00194 /* the frontend as operators rather than calls. */ 00195 /* _FRONTEND_CONDITIONAL_COMP This turns on the conditional */ 00196 /* compilation support within the frontend. It */ 00197 /* is not used at this time on any platforms. */ 00198 /* Gpp (or an equivalent preprocessor) is being */ 00199 /* used instead. */ 00200 /* _FRONTEND_INLINER This enables the frontend inliner. */ 00201 /* _GEN_LOOPS_FOR_DV_WHOLE_DEF Generate explicit loops for compiler */ 00202 /* generated Dv_Def_Asg_Opr for arrays. */ 00203 /* _GETPMC_AVAILABLE Library routine GETPMC is available for */ 00204 /* picking up machine characteristics. */ 00205 /* _HIGH_LEVEL_DO_LOOP_FORM Leave the IR of DO loops (particularly */ 00206 /* iterative DO loops) in a high-level form (do */ 00207 /* not generate all the tests and branches */ 00208 /* normally required for an iterative DO loop). */ 00209 /* _HIGH_LEVEL_IF_FORM Leave the IR of IF's in a high-level form. */ 00210 /* Do not generate all the tests and branches */ 00211 /* normally required for an IF. */ 00212 /* _INIT_RELOC_BASE_OFFSET Translate Init_Reloc_Opr into base + offset. */ 00213 /* _INTEGER_1_AND_2 support 8 and 16 bit integer and logical. */ 00214 /* There is a commandline option that controls */ 00215 /* this underneath the define. Check ACCEPT in */ 00216 /* target.m for _ed_h. This must be set TRUE */ 00217 /* and the cmdline option used or always set on.*/ 00218 /* _NAME_SUBSTITUTION_INLINING */ 00219 /* This is a form of inlining that does complete*/ 00220 /* name substitution for array mappings. */ 00221 /* _NEED_AT_SIGN_INTRINSICSThe system needs versions of intrinsics that */ 00222 /* are suffixed with an @. This is necessary */ 00223 /* to support the multi-processing source to */ 00224 /* source pre-processor. */ 00225 /* _NO_AT_SIGN_IN_NAMES The GNU assembler will not accept @ in names.*/ 00226 /* When this is in effect, @'s will not be gen'd*/ 00227 /* in external names. */ 00228 /* _NO_BINARY_OUTPUT Generated code is an assembly listing coming */ 00229 /* out of the backend. This is necessary for */ 00230 /* a functional compiler, so that the frontend */ 00231 /* can tell the backend whether to do binary or */ 00232 /* assembly output. For error purposes the */ 00233 /* frontend will act like binary output is */ 00234 /* default. We just need to switch to assembly */ 00235 /* at the interface. */ 00236 /* _NO_CRAY_CHARACTER_PTR Cray character pointer is not allowed. Issue*/ 00237 /* error if seen. */ 00238 /* _NO_IO_ALTERNATE_RETURN Do not generate the alternate return branch */ 00239 /* operation for END=, ERR=, EOF= in io stmts. */ 00240 /* The labels are sent as arguments 11,12,13 of */ 00241 /* io fei_control_list(). */ 00242 /* _POINTEES_CAN_BE_STRUCT Allow CRI pointers to point to structures. */ 00243 /* ie: Pointees can be typed as structure. */ 00244 /* _QUAD_PRECISION Quad precision ia accepted. */ 00245 /* _SAVE_IO_STMT Used to save the original I/O statement as a */ 00246 /* Fortran character literal. Operators are */ 00247 /* inserted to start and end the expanded I/O */ 00248 /* with the character literal attached to the */ 00249 /* 'start io' operator. */ 00250 /* _SEPARATE_DEALLOCATES Generate seperate calls to DEALLOCATE */ 00251 /* routines. */ 00252 /* _SEPARATE_FUNCTION_RETURNS If more than one entry in function, */ 00253 /* there is a return opr for each entry, */ 00254 /* otherwise there is only one return opr. */ 00255 /* _SEPARATE_NONCOMMON_EQUIV_GROUPS If set, then static, hosted_static*/ 00256 /* and hosted_stack equivalence groups each get */ 00257 /* their own storage group. */ 00258 /* _SINGLE_ALLOCS_FOR_AUTOMATIC Each automatic gets its own allocate */ 00259 /* call, rather than one allocate for all autos.*/ 00260 /* _SM_UNIT_IS_ELEMENT The unit for stride multipliers is in terms */ 00261 /* of elements, rather than words, half words, */ 00262 /* bytes */ 00263 /* _SPLIT_STATIC_STORAGE_M only split static module storage into */ 00264 /* initialized vs uninitialized storage. */ 00265 /* _SPLIT_STATIC_STORAGE_2 split static storage into initialized vs */ 00266 /* uninitialized storage. */ 00267 /* _SPLIT_STATIC_STORAGE_3 split static storage into initialized vs */ 00268 /* uninitialized storage. Uninitialized is */ 00269 /* further split into scalar vs aggregate. */ 00270 /* _STOP_IS_OPR Do not lower STOP to a call. */ 00271 /* _TARGET_DOUBLE_ALIGN Double word types on will have their offsets */ 00272 /* aligned on double word boudaries */ 00273 /* _TARGET_HAS_FAST_INTEGER */ 00274 /* Fast integer is available on this target. */ 00275 /* (46 bit integer) */ 00276 /* _TARGET_PACK_HALF_WORD_TYPES On a 64 bit machine, 32 bit types will*/ 00277 /* be packed on 32 bit boundaries. Complex and */ 00278 /* double precision will always be aligned on 64*/ 00279 /* _TASK_COMMON_EXTENSION Support the TASK COMMON extension. */ 00280 /* _THREE_CALL_IO Split io stmt completely into a 3 call model.*/ 00281 /* _TMP_GIVES_COMMON_LENGTH Used for Cray backends only. Currently */ 00282 /* they need a temp generated at the end of a */ 00283 /* common block so that Cray backends can */ 00284 /* determine the length of a common block when */ 00285 /* it is partially host associated or use */ 00286 /* associated. For non-Cray use the correct */ 00287 /* block length is available when the block is */ 00288 /* described using the interfaces. */ 00289 /* _TRANSFORM_CHAR_SEQUENCE transform character sequence derived */ 00290 /* type references to overindexed substring */ 00291 /* references of the first character component. */ 00292 /* This is necessary for word addressable */ 00293 /* machines and any compiler that uses pdgcs. */ 00294 /* _TWO_WORD_FCD The Fortran Character Descriptor is 2 words. */ 00295 /* _USE_FOLD_DOT_f Use the set of Fortran routines for compile */ 00296 /* time folding. */ 00297 /* _WARNING_FOR_NUMERIC_INPUT_ERROR */ 00298 /* Make all numeric input conversion Errors */ 00299 /* come out as Warnings. */ 00300 /* */ 00301 /* */ 00302 /* */ 00303 /*****************************************************************************/ 00304 /*****************************************************************************/ 00305 00306 00307 /*****************************************************************************/ 00308 00309 # ifdef _PVP_PVP 00310 # define _ENABLE_FEI 1 00311 # define _HOST64 1 00312 # define _TARGET64 1 00313 # define _HOST_OS_UNICOS 1 00314 # define _TARGET_OS_UNICOS 1 00315 # define _HEAP_REQUEST_IN_WORDS 1 00316 # define _TARGET_WORD_ADDRESS 1 00317 # define _MODULE_TO_DOT_o 1 00318 # define _ARITH_H 1 00319 # define _ARITH_INPUT_CONV 1 00320 # define _ALLOW_DATA_INIT_OF_COMMON 1 00321 # define _ASSIGN_OFFSETS_TO_HOSTED_STACK 1 00322 # define _CHECK_MAX_MEMORY 1 00323 # define _EXTENDED_CRI_CHAR_POINTER 1 00324 # define COARRAY_FORTRAN 1 00325 # define _FRONTEND_CONDITIONAL_COMP 1 00326 # define _GETPMC_AVAILABLE 1 00327 # define _NEED_AT_SIGN_INTRINSICS 1 00328 # define _POINTEES_CAN_BE_STRUCT 1 00329 # define _SPLIT_STATIC_STORAGE_3 1 00330 # define _TARGET_HAS_FAST_INTEGER 1 00331 # define _TASK_COMMON_EXTENSION 1 00332 # define _TRANSFORM_CHAR_SEQUENCE 1 00333 # define _TMP_GIVES_COMMON_LENGTH 1 00334 # define _FRONTEND_INLINER 1 00335 # define _D_LINES_SUPPORTED 1 00336 # endif 00337 00338 /*****************************************************************************/ 00339 00340 # ifdef _MPP_MPP 00341 # define _ENABLE_FEI 1 00342 # define _HOST64 1 00343 # define _TARGET64 1 00344 # define _HOST_OS_MAX 1 00345 # define _TARGET_OS_MAX 1 00346 # define _TARGET_IEEE 1 00347 # define _TARGET_BYTE_ADDRESS 1 00348 # define _HEAP_REQUEST_IN_WORDS 1 00349 # define _MODULE_TO_DOT_o 1 00350 # define _ARITH_H 1 00351 # define _ARITH_INPUT_CONV 1 00352 # define _ALLOW_DATA_INIT_OF_COMMON 1 00353 # define _ASSIGN_OFFSETS_TO_HOSTED_STACK 1 00354 # define _CHECK_MAX_MEMORY 1 00355 # define _ERROR_DUPLICATE_GLOBALS 1 00356 # define _EXTENDED_CRI_CHAR_POINTER 1 00357 # define COARRAY_FORTRAN 1 00358 # define _FRONTEND_CONDITIONAL_COMP 1 00359 # define _GETPMC_AVAILABLE 1 00360 # define _POINTEES_CAN_BE_STRUCT 1 00361 # define _SPLIT_STATIC_STORAGE_3 1 00362 # define _TARGET_PACK_HALF_WORD_TYPES 1 00363 # define _TMP_GIVES_COMMON_LENGTH 1 00364 # define _TRANSFORM_CHAR_SEQUENCE 1 00365 # define _TWO_WORD_FCD 1 00366 # define _FRONTEND_INLINER 1 00367 # define _INIT_RELOC_BASE_OFFSET 1 00368 # define _D_LINES_SUPPORTED 1 00369 # endif 00370 00371 /*****************************************************************************/ 00372 00373 # ifdef _SGI_SV2 00374 # define _ENABLE_FEI 1 00375 # define _HOST32 1 00376 # define _TARGET32 1 00377 # define _HOST_OS_IRIX 1 00378 # define _TARGET_OS_UNICOS 1 00379 # define _TARGET_IEEE 1 00380 # define _TARGET_SV2 1 00381 # define _DOPE_VECTOR_32_OR_64 1 00382 # define _TARGET_BYTE_ADDRESS 1 00383 # define _HEAP_REQUEST_IN_BYTES 1 00384 # define _MODULE_TO_DOT_o 1 00385 # define _ARITH_H 1 00386 # define _ARITH_INPUT_CONV 1 00387 # define _ALLOW_DATA_INIT_OF_COMMON 1 00388 # define _ASSIGN_OFFSETS_TO_HOSTED_STACK 1 00389 # define _CHAR_LEN_IN_BYTES 1 00390 # define _CHECK_MAX_MEMORY 1 00391 # define _ERROR_DUPLICATE_GLOBALS 1 00392 # define COARRAY_FORTRAN 1 00393 # define _FRONTEND_CONDITIONAL_COMP 1 00394 # define _INTEGER_1_AND_2 1 00395 # define _POINTEES_CAN_BE_STRUCT 1 00396 # define _QUAD_PRECISION 1 00397 # define _SPLIT_STATIC_STORAGE_M 1 00398 # define _TARGET_DOUBLE_ALIGN 1 00399 # define _TMP_GIVES_COMMON_LENGTH 1 00400 # define _TWO_WORD_FCD 1 00401 # define _FRONTEND_INLINER 1 00402 # define _SM_UNIT_IS_ELEMENT 1 00403 # define _D_LINES_SUPPORTED 1 00404 # endif 00405 00406 /*****************************************************************************/ 00407 00408 /* Because on source level most things are platform independent add 00409 * _SOLARIS_SOLARIS here [email protected] */ 00410 00411 # if (defined(_SGI_SGI) || defined(_SOLARIS_SOLARIS)) 00412 # define _ENABLE_FEI 1 00413 # define _HOST32 1 00414 # define _TARGET32 1 00415 /* # define _HOST_OS_IRIX 1*/ 00416 # define _TARGET_OS_IRIX 1 00417 # define _TARGET_IEEE 1 00418 # define _DOPE_VECTOR_32_OR_64 1 00419 # define _TARGET_BYTE_ADDRESS 1 00420 # define _HEAP_REQUEST_IN_BYTES 1 00421 # define _ARITH_H 1 00422 # define _ARITH_INPUT_CONV 1 00423 # define _ALIGN_REAL16_TO_16_BYTES 1 00424 # define _CHAR_IS_ALIGN_8 1 00425 # define _CHAR_LEN_IN_BYTES 1 00426 # define _CHECK_MAX_MEMORY 1 00427 # define _ERROR_DUPLICATE_GLOBALS 1 00428 # define COARRAY_FORTRAN 1 00429 # define _FILE_IO_OPRS 1 00430 # define _FRONTEND_CONDITIONAL_COMP 1 00431 # define _GEN_LOOPS_FOR_DV_WHOLE_DEF 1 00432 # define _HIGH_LEVEL_DO_LOOP_FORM 1 00433 # define _HIGH_LEVEL_IF_FORM 1 00434 # define _INTEGER_1_AND_2 1 00435 # define _NAME_SUBSTITUTION_INLINING 1 00436 # define _NO_CRAY_CHARACTER_PTR 1 00437 # define _NO_IO_ALTERNATE_RETURN 1 00438 # define _POINTEES_CAN_BE_STRUCT 1 00439 # define _QUAD_PRECISION 1 00440 # define _SAVE_IO_STMT 1 00441 # define _SEPARATE_NONCOMMON_EQUIV_GROUPS 1 00442 # define _SPLIT_STATIC_STORAGE_M 1 00443 # define _SINGLE_ALLOCS_FOR_AUTOMATIC 1 00444 # define _TARGET_DOUBLE_ALIGN 1 00445 # define _TWO_WORD_FCD 1 00446 # define _WARNING_FOR_NUMERIC_INPUT_ERROR 1 00447 # define _ALTERNATIVE_INTERFACE_FOR_POINTEES 1 00448 # define _SEPARATE_DEALLOCATES 1 00449 # define _STOP_IS_OPR 1 00450 # define _TYPE_CODE_64_BIT 1 00451 # define _D_LINES_SUPPORTED 1 00452 # define GENERATE_WHIRL 1 00453 # endif 00454 00455 # if (defined(_SGI_SGI)) 00456 # define _HOST_OS_IRIX 1 00457 # endif 00458 00459 # if (defined(_SOLARIS_SOLARIS)) 00460 # define _HOST_OS_SOLARIS 1 00461 # endif 00462 00463 /*****************************************************************************/ 00464 00465 # ifdef _PVP_MPP 00466 # define _ENABLE_FEI 1 00467 # define _HOST64 1 00468 # define _TARGET64 1 00469 # define _HOST_OS_UNICOS 1 00470 # define _TARGET_OS_MAX 1 00471 # define _TARGET_IEEE 1 00472 # define _TARGET_BYTE_ADDRESS 1 00473 # define _HEAP_REQUEST_IN_WORDS 1 00474 # define _MODULE_TO_DOT_o 1 00475 # define _ARITH_H 1 00476 # define _ARITH_INPUT_CONV 1 00477 # define _ALLOW_DATA_INIT_OF_COMMON 1 00478 # define _ASSIGN_OFFSETS_TO_HOSTED_STACK 1 00479 # define _CHECK_MAX_MEMORY 1 00480 # define _ERROR_DUPLICATE_GLOBALS 1 00481 # define COARRAY_FORTRAN 1 00482 # define _FRONTEND_CONDITIONAL_COMP 1 00483 # define _GETPMC_AVAILABLE 1 00484 # define _POINTEES_CAN_BE_STRUCT 1 00485 # define _SPLIT_STATIC_STORAGE_3 1 00486 # define _TARGET_PACK_HALF_WORD_TYPES 1 00487 # define _TRANSFORM_CHAR_SEQUENCE 1 00488 # define _TMP_GIVES_COMMON_LENGTH 1 00489 # define _TWO_WORD_FCD 1 00490 # define _FRONTEND_INLINER 1 00491 # define _INIT_RELOC_BASE_OFFSET 1 00492 # define _D_LINES_SUPPORTED 1 00493 # endif 00494 00495 /*****************************************************************************/ 00496 00497 /* For compilation on linux. Also, for now, we piggyback an alpha 00498 * port upon 64 bit Linux. */ 00499 00500 # if defined(_LINUX_LINUX) || defined(__alpha) 00501 # define _LITTLE_ENDIAN 1 /* for an include file */ 00502 # define _GNU_SOURCE 1 00503 # define _NO_XOPEN4 1 00504 # define _HOST_LITTLE_ENDIAN 1 00505 # define _TARGET_LITTLE_ENDIAN 1 00506 # define _ENABLE_FEI 1 00507 # if defined(_LP64) || defined(__alpha) 00508 # define _HOST64 1 00509 # define _TARGET64 1 00510 # define _WHIRL_HOST64_TARGET64 1 00511 # define _TARGET_PACK_HALF_WORD_TYPES 1 00512 # else 00513 # define _HOST32 1 00514 # define _TARGET32 1 00515 # define _DOPE_VECTOR_32_OR_64 1 00516 # define _TARGET_DOUBLE_ALIGN 1 00517 # endif /* _LP64 */ 00518 # define _HOST_OS_LINUX 1 00519 # define _TARGET_OS_LINUX 1 00520 # define _TARGET_IEEE 1 00521 # define _TARGET_BYTE_ADDRESS 1 00522 # define _HEAP_REQUEST_IN_BYTES 1 00523 # define _ARITH_H 1 00524 # define _ALIGN_REAL16_TO_16_BYTES 1 00525 # define _CHAR_IS_ALIGN_8 1 00526 # define _CHAR_LEN_IN_BYTES 1 00527 # define _CHECK_MAX_MEMORY 1 00528 # define _ERROR_DUPLICATE_GLOBALS 1 00529 # define COARRAY_FORTRAN 1 00530 # define _FILE_IO_OPRS 1 00531 # define _FRONTEND_CONDITIONAL_COMP 1 00532 # define _GEN_LOOPS_FOR_DV_WHOLE_DEF 1 00533 # define _HIGH_LEVEL_DO_LOOP_FORM 1 00534 # define _HIGH_LEVEL_IF_FORM 1 00535 # define _INTEGER_1_AND_2 1 00536 # define _NAME_SUBSTITUTION_INLINING 1 00537 # define _NO_AT_SIGN_IN_NAMES 1 00538 # define _NO_CRAY_CHARACTER_PTR 1 00539 # define _NO_IO_ALTERNATE_RETURN 1 00540 # define _POINTEES_CAN_BE_STRUCT 1 00541 # define _QUAD_PRECISION 1 00542 # define _SAVE_IO_STMT 1 00543 # define _SEPARATE_NONCOMMON_EQUIV_GROUPS 1 00544 # define _SPLIT_STATIC_STORAGE_M 1 00545 # define _SINGLE_ALLOCS_FOR_AUTOMATIC 1 00546 # define _TWO_WORD_FCD 1 00547 # define _USE_FOLD_DOT_f 1 00548 # define _WARNING_FOR_NUMERIC_INPUT_ERROR 1 00549 # define _ALTERNATIVE_INTERFACE_FOR_POINTEES 1 00550 # define _SEPARATE_DEALLOCATES 1 00551 # define _STOP_IS_OPR 1 00552 # define _TYPE_CODE_64_BIT 1 00553 # define _SEPARATE_FUNCTION_RETURNS 1 00554 # define _D_LINES_SUPPORTED 1 00555 # define GENERATE_WHIRL 1 00556 # endif 00557 00558 # if (defined(__alpha)) 00559 /* # undef _HOST_OS_LINUX */ 00560 /* # define _HOST_OS_TRU64 1 */ 00561 # endif 00562 00563 /*****************************************************************************/ 00564 00565 # define _ALLOCATE_IS_CALL 00566 # define SOURCE_TO_SOURCE 1 00567 00568 /*****************************************************************************/