Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
defines.h
Go to the documentation of this file.
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 /*****************************************************************************/
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines