Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
i_cvrt.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 # ifdef __cplusplus
00037 extern "C" {
00038 # endif
00039 
00040 /* USMID:  "\n@(#)5.0_pl/headers/i_cvrt.h       5.24    10/21/99 15:46:35\n" */
00041 
00042 
00043 typedef long long int          INT64;
00044 typedef int                    INT32;
00045 typedef unsigned long          INTPTR;
00046 
00047 #define PDGCS_MPP_INIT_APPRENTICE        0
00048 #define PDGCS_MPP_INIT_S2P_COERCE        1
00049 #define PDGCS_MPP_INIT_CCG_JUMPS         2
00050 
00051 #define FEI_TASK_SAVELAST                0
00052 #define FEI_TASK_AUTOSCOPE               1
00053 
00054 #define FEI_MIF_TYPE_TABLE               0
00055 #define FEI_MIF_OBJ_TABLE                1
00056 #define FEI_MIF_TYPE_TABLE_MEM           2
00057 
00058 #define STATIC_SUBSCRIPT_SIZE 7
00059 #define IRIX_FILE_NAME_SIZE   129
00060 
00061 #define WRITE_STMT      0
00062 #define READ_STMT       1
00063 #define WRITE_NML_STMT  2
00064 #define READ_NML_STMT   3
00065 
00066 #define FEI_DV_HDR_BASE_ADDR   1
00067 #define FEI_DV_HDR_EL_LEN      2
00068 #define FEI_DV_HDR_ASSOC       3
00069 #define FEI_DV_HDR_PTR_ALLOC   4
00070 #define FEI_DV_HDR_P_OR_A      5
00071 #define FEI_DV_HDR_A_CONTIG    6
00072 #define FEI_DV_HDR_N_DIM       7
00073 #define FEI_DV_HDR_TYP_CODE    8
00074 #define FEI_DV_HDR_ORIG_BASE   9
00075 #define FEI_DV_HDR_ORIG_SIZE  10
00076 
00077 #define MIPS_ASSERT_ARGUMENTALIASING                     1
00078 #define MIPS_ASSERT_NOARGUMENTALIASING                   2
00079 #define MIPS_ASSERT_BOUNDSVIOLATIONS                     3
00080 #define MIPS_ASSERT_NOBOUNDSVIOLATIONS                   4
00081 #define MIPS_ASSERT_CONCURRENTCALL                       5
00082 #define MIPS_ASSERT_NOCONCURRENTCALL                     6
00083 #define MIPS_ASSERT_NORECURRENCE                         7
00084 #define MIPS_ASSERT_DOPREFER                             8
00085 #define MIPS_ASSERT_EQUIVALENCEHAZARD                    9
00086 #define MIPS_ASSERT_NOEQUIVALENCEHAZARD                 10
00087 #define MIPS_ASSERT_LASTVALUENEEDED                     11
00088 #define MIPS_ASSERT_LASTVALUESNEEDED                    12
00089 #define MIPS_ASSERT_NOLASTVALUENEEDED                   13
00090 #define MIPS_ASSERT_NOLASTVALUESNEEDED                  14
00091 #define MIPS_ASSERT_PERMUTATION                         15
00092 #define MIPS_ASSERT_RELATION                            16
00093 #define MIPS_ASSERT_NOSYNC                              17
00094 #define MIPS_ASSERT_TEMPORARIESFORCONSTANTARGUMENTS     18
00095 #define MIPS_ASSERT_NOTEMPORARIESFORCONSTANTARGUMENTS   19
00096 #define MIPS_ASSERT_DO                                  20
00097 #define MIPS_ASSERT_BENIGN                              21
00098 #define MIPS_ASSERT_DEPENDENCE                          22
00099 #define MIPS_ASSERT_FREQUENCY                           23
00100 #define MIPS_ASSERT_IGNOREANYDEPENDENCES                24
00101 #define MIPS_ASSERT_IGNOREANYDEPENDENCE                 25
00102 #define MIPS_ASSERT_IGNOREASSUMEDDEPENDENCES            26
00103 #define MIPS_ASSERT_IGNOREASSUMEDDEPENDENCE             27
00104 #define MIPS_ASSERT_NOINTERCHANGE                       28
00105 #define MIPS_ASSERT_USECOMPRESS                         29
00106 #define MIPS_ASSERT_USEEXPAND                           30
00107 #define MIPS_ASSERT_USECONTROLLEDSTORE                  31
00108 #define MIPS_ASSERT_USEGATHER                           32
00109 #define MIPS_ASSERT_USESCATTER                          33
00110 
00111 #define FEI_PROC_VFUNC                                   0
00112 #define FEI_PROC_INLINE                                  1
00113 #define FEI_PROC_TASKHD                                  2
00114 #define FEI_PROC_UNIQMEM                                 3
00115 #define FEI_PROC_CNGA                                    4
00116 #define FEI_PROC_CNAA                                    5
00117 #define FEI_PROC_CNGO                                    6 
00118 #define FEI_PROC_RNGO                                    7 
00119 #define FEI_PROC_NOIO                                    8
00120 #define FEI_PROC_ERRNO                                   9
00121 #define FEI_PROC_NOCALLS                                10 
00122 #define FEI_PROC_SCHEDULE                               11
00123 #define FEI_PROC_DNDA                                   12
00124 #define FEI_PROC_FAAT                                   13
00125 #define FEI_PROC_RECURSE                                14
00126 #define FEI_PROC_SHORTSEQ                               15
00127 #define FEI_PROC_TASKABLE                               16
00128 #define FEI_PROC_MICROTASK                              17
00129 #define FEI_PROC_BUFIN                                  18
00130 #define FEI_PROC_BUFOUT                                 19
00131 #define FEI_PROC_SCALAR                                 20
00132 #define FEI_PROC_VECTOR                                 21
00133 #define FEI_PROC_PARALLEL                               22
00134 #define FEI_PROC_SERIAL                                 23
00135 #define FEI_PROC_TASKINNER                              24
00136 #define FEI_PROC_NOTHRESHOLDS                           25
00137 #define FEI_PROC_DEFINITION                             26
00138 #define FEI_PROC_PARENT                                 27
00139 #define FEI_PROC_IMPORTED                               28
00140 
00141 /* I need this bit -fzhao #define FEI_PROC_UNUSED_29    29 */
00142 #define FEI_PROC_MODULE                                 29
00143 
00144 /* #define FEI_PROC_UNUSED_30                           30 */
00145 #define FEI_PROC_IN_INTERFACE                           30 
00146 
00147 /*#define FEI_PROC_UNUSED_31                            31*/
00148 #define FEI_PROC_M_IMPORTED                             31
00149 
00150 #define FEI_PROC_PASARG                                 32
00151 #define FEI_PROC_LIMHEAP                                33
00152 #define FEI_PROC_ENTRY                                  34
00153 #define FEI_PROC_HASRSLT                                35
00154 #define FEI_PROC_SOFTEXT                                36
00155 #define FEI_PROC_IMMORT                                 37
00156 #define FEI_PROC_DOFLOWTR                               38
00157 #define FEI_PROC_INDEFSTK                               39
00158 #define FEI_PROC_ALGNINST                               40
00159 #define FEI_PROC_VARIADIC                               41
00160 #define FEI_PROC_ZEROINC                                42
00161 #define FEI_PROC_TOGGLE                                 43
00162 #define FEI_PROC_SHARELM                                44
00163 #define FEI_PROC_LIMITLM                                45
00164 #define FEI_PROC_TOLERANT                               46
00165 #define FEI_PROC_STRROUND                               47
00166 #define FEI_PROC_TRUNCATE                               48
00167 #define FEI_PROC_FASTADDR                               49
00168 #define FEI_PROC_NCOADDR                                50
00169 #define FEI_PROC_SHAPECK                                51
00170 #define FEI_PROC_MOD_FIRST                              52
00171 #define FEI_PROC_MOD_JUST                               53
00172 #define FEI_PROC_MOD_LAST                               54
00173 #define FEI_PROC_PERM_NAME                              55
00174 #define FEI_PROC_ARG_CHECK                              56
00175 #define FEI_PROC_ZERO_INIT                              57
00176 #define FEI_PROC_ELEMENTAL                              58
00177 #define FEI_PROC_HAS_ALT_ENTRY                          59
00178 #define FEI_PROC_GLOBAL_INLINE                          60
00179 #define FEI_PROC_OPTIONAL_DIR                           61
00180 #define FEI_PROC_NOSIDE_EFFECTS                         62
00181 #define FEI_PROC_THISPTR                                63
00182 
00183 #define FEI_OBJECT_DUPLICATE                             0
00184 #define FEI_OBJECT_DEFINED                               1
00185 #define FEI_OBJECT_TARGET                                2
00186 #define FEI_OBJECT_EQUIV                                 3
00187 #define FEI_OBJECT_SAVED                                 4
00188 #define FEI_OBJECT_ALIASED                               5
00189 #define FEI_OBJECT_REGISTER                              6
00190 #define FEI_OBJECT_ASSUMED_SIZE                          7
00191 #define FEI_OBJECT_AUXILIARY                             8
00192 #define FEI_OBJECT_INITIALD                              9 
00193 #define FEI_OBJECT_OFF_ASSIGNED                         10 
00194 #define FEI_OBJECT_ALLOCATE                             11
00195 #define FEI_OBJECT_AUTOMATIC                            12
00196 #define FEI_OBJECT_ADDRTAKEN                            13
00197 #define FEI_OBJECT_SYMCON_OFFST                         14
00198 #define FEI_OBJECT_INNER_REF                            15
00199 #define FEI_OBJECT_INNER_DEF                            16
00200 #define FEI_OBJECT_WHERE_TEMP                           17
00201 #define FEI_OBJECT_CACHE_ALIGN                          18
00202 #define FEI_OBJECT_RESULT_TEMP                          19
00203 #define FEI_OBJECT_DV_IS_PTR                            20
00204 #define FEI_OBJECT_ASSUMD_SHAPE                         21
00205 #define FEI_OBJECT_IS_DOPE_VEC                          22
00206 #define FEI_OBJECT_DESC_DISTRIB                         23
00207 #define FEI_OBJECT_PERMUTATION                          24
00208 #define FEI_OBJECT_IS_CP_REF                            25
00209 #define FEI_OBJECT_TASK_STORE                           26
00210 #define FEI_OBJECT_SYMMETRIC                            27
00211 #define FEI_OBJECT_ACTUAL_ARG                           28
00212 #define FEI_OBJECT_PTR_ASSIGNED                         29
00213 #define FEI_OBJECT_SF_DARG                              30
00214 #define FEI_OBJECT_OPTIONAL                             31
00215 #define FEI_OBJECT_NAMELIST_ITEM                        32
00216 #define FEI_OBJECT_IN_COMMON                            33
00217 #define FEI_OBJECT_NOT_PT_TO_UNIQUE_MEM                 34
00218 #define FEI_OBJECT_READ_ONLY                            35
00219 
00220 
00221 #define FEI_OBJECT_DEFERRED_SHAPE                       36  
00222 #define FEI_OBJECT_IN_MODULE                            37  
00223 #define FEI_OBJECT_EXTERNAL                             38  
00224 #define FEI_OBJECT_PRIVATE                              39  
00225 #define FEI_OBJECT_PARAMETER                            40      
00226 
00227 #define FEI_ARRAY_DIMEN_VARY_LB                          0
00228 #define FEI_ARRAY_DIMEN_VARY_EXT                         1
00229 #define FEI_ARRAY_DIMEN_SCON_LB                          2
00230 #define FEI_ARRAY_DIMEN_SCON_EXT                         3
00231 #define FEI_ARRAY_DIMEN_HOSTED_TYPE                      4
00232 #define FEI_ARRAY_DIMEN_ONTO_EXPR                        5
00233 #define FEI_ARRAY_DIMEN_DIST_EXPR                        6
00234 #define FEI_ARRAY_DIMEN_DIST_RESHAPE                     7
00235 #define FEI_ARRAY_DIMENCOARRAY_FORTRAN_REMOTE            8
00236 #define FEI_ARRAY_DIMEN_VARY_UB                          9
00237 #define FEI_ARRAY_DIMEN_SCON_UB                          10
00238 #define FEI_ARRAY_DIMEN_FLOW_DEPENDENT                   11
00239 
00240 #define FEI_ARRAY_DIMEN_EMPTY_LB                         12 
00241 #define FEI_ARRAY_DIMEN_EMPTY_EXT                        13 
00242 #define FEI_ARRAY_DIMEN_EMPTY_UB                         14 
00243 #define FEI_ARRAY_DIMEN_STAR_UB                          15 
00244 
00245 /* for different kinds of array*/
00246 #define FEI_ASSUMED_SIZE_ARRAY                           16
00247 #define FEI_ASSUMD_SHAPE_ARRAY                           17
00248 #define FEI_DEFERRED_SHAPE_ARRAY                         18
00249 
00250 
00251 #define FEI_DESCRIPTOR_CONST_C                           0
00252 #define FEI_DESCRIPTOR_SIGN_C                            1
00253 #define FEI_DESCRIPTOR_VOLAT_C                           2
00254 #define FEI_DESCRIPTOR_AUTO_F                            3
00255 #define FEI_DESCRIPTOR_RESTR_C                           4
00256 #define FEI_DESCRIPTOR_SHRD_PTEE                         5
00257 #define FEI_DESCRIPTOR_SHORT_C                           7
00258 #define FEI_DESCRIPTOR_LONG_C                            8
00259 #define FEI_DESCRIPTOR_BITFLD_C                          9
00260 #define FEI_DESCRIPTOR_HOSTED_TYPE                      10
00261 
00262 #define FEI_LABEL_DEF_NAMED_IVDEP                        0
00263 #define FEI_LABEL_DEF_NAMED_NOREDUCE                     1
00264 #define FEI_LABEL_DEF_NAMED_NOVECTOR                     2
00265 #define FEI_LABEL_DEF_NAMED_SHORTLOOP                    3
00266 #define FEI_LABEL_DEF_NAMED_NOVSEARCH                    4
00267 #define FEI_LABEL_DEF_NAMED_SUPPRESS                     5
00268 #define FEI_LABEL_DEF_NAMED_LOOPCHK                      6
00269 #define FEI_LABEL_DEF_NAMED_DO_BL                        7
00270 #define FEI_LABEL_DEF_NAMED_NOSYNCBARR                   8
00271 #define FEI_LABEL_DEF_NAMED_EXTTABLES                    9
00272 #define FEI_LABEL_DEF_NAMED_EXTTIME                     10
00273 #define FEI_LABEL_DEF_NAMED_CONCCALLS                   11
00274 #define FEI_LABEL_DEF_NAMED_LPSPLITPOS                  12
00275 #define FEI_LABEL_DEF_NAMED_SPLIT_CALL                  13
00276 #define FEI_LABEL_DEF_NAMED_NOSAVELAST                  14
00277 #define FEI_LABEL_DEF_NAMED_PERMUTATION                 15
00278 #define FEI_LABEL_DEF_NAMED_MAXCPUS                     16
00279 #define FEI_LABEL_DEF_NAMED_TASKSYNC                    17
00280 #define FEI_LABEL_DEF_NAMED_EQUIVCHK                    18
00281 #define FEI_LABEL_DEF_NAMED_JUMP_INTO                   19
00282 #define FEI_LABEL_DEF_NAMED_NEXTSCALAR                  20
00283 #define FEI_LABEL_DEF_NAMED_SHORTLOOP128                21
00284 #define FEI_LABEL_DEF_NAMED_SELECT_VEC                  22
00285 #define FEI_LABEL_DEF_NAMED_SELECT_TASK                 23
00286 #define FEI_LABEL_DEF_NAMED_128VL                       24
00287 #define FEI_LABEL_DEF_NAMED_NOTASK                      25
00288 #define FEI_LABEL_DEF_NAMED_INTERNAL                    26 
00289 #define FEI_LABEL_DEF_NAMED_UNROLL                      27    
00290 #define FEI_LABEL_DEF_NAMED_STREAMSPLIT                 28    
00291 #define FEI_LABEL_DEF_NAMED_PATTERN                     29    
00292 #define FEI_LABEL_DEF_NAMED_CASE                        30    
00293 #define FEI_LABEL_DEF_NAMED_FISSIONABLE                 31   
00294 #define FEI_LABEL_DEF_NAMED_FUSABLE                     32   
00295 #define FEI_LABEL_DEF_NAMED_NOFISSION                   33   
00296 #define FEI_LABEL_DEF_NAMED_NOFUSION                    34   
00297 #define FEI_LABEL_DEF_NAMED_NOINTERCHANGE               35   
00298 #define FEI_LABEL_DEF_NAMED_NOBLOCKING                  36   
00299 #define FEI_LABEL_DEF_NAMED_AGGRESSIVEINNERLOOPFISSION  37   
00300 #define FEI_LABEL_DEF_NAMED_CONCURRENT                  38   
00301 #define FEI_LABEL_DEF_NAMED_NOT_REFERENCED              39   
00302 #define FEI_LABEL_DEF_NAMED_CONSTRUCTOR_LOOP            40
00303 #define FEI_LABEL_DEF_NAMED_FUSION                      41
00304 #define FEI_LABEL_DEF_NAMED_STREAM                      42
00305 #define FEI_LABEL_DEF_NAMED_PREFERSTREAM                43
00306 #define FEI_LABEL_DEF_NAMED_INFORM_ONLY                 44
00307 #define FEI_LABEL_DEF_NAMED_PSTREAM_NOCINV              45
00308 
00309 #define PDGCS_NEW_PROC_IGNORE_THROTTLE                   0
00310 #define PDGCS_NEW_PROC_ELIM_DEAD_CODE                    1
00311 #define PDGCS_NEW_PROC_PATTERN_MATCHING                  2
00312 #define PDGCS_NEW_PROC_TASK_INNER_LOOPS                  3
00313 #define PDGCS_NEW_PROC_IEEE_RECIPS                       4
00314 #define PDGCS_NEW_PROC_CONFORM_CHECK                     5
00315 #define PDGCS_NEW_PROC_IEEE_CONFORM                      6
00316 #define PDGCS_NEW_PROC_DO_UBD_ANALYSIS                   7
00317 
00318 #define FEI_SEG_MODULE                                   0
00319 #define FEI_SEG_SAVED                                    1
00320 #define FEI_SEG_SCON_LEN                                 2
00321 #define FEI_SEG_SHARED                                   3
00322 #define FEI_SEG_INLINED                                  4
00323 #define FEI_SEG_LOCAL_COMMON                             5
00324 #define FEI_SEG_EQUIVALENCED                             6
00325 #define FEI_SEG_EXTERNAL                                 7
00326 /* 7 is available */
00327 #define FEI_SEG_THREADPRIVATE                            8
00328 #define FEI_SEG_DUPLICATE                                9
00329 #define FEI_SEG_VOLATILE                                10
00330 
00331 #define FEI_DOPE_VECTOR_HOSTED_TYPE                      0
00332 #define FEI_DOPE_VECTOR_POINTER                          1
00333 
00334 #define FEI_NEXT_TYPE_IDX_HOSTED_TYPE                    0
00335 
00336 #define PDGCS_INITIALIZE_INITS_DONE                      0
00337 #define PDGCS_INITIALIZE_FLOWTRACE                       1
00338 #define PDGCS_INITIALIZE_PART_DEBUG                      2
00339 #define PDGCS_INITIALIZE_LOCSTATICS                      3
00340 #define PDGCS_INITIALIZE_ATEXPERT                        4
00341 #define PDGCS_INITIALIZE_NOFASTMD                        5
00342 #define PDGCS_INITIALIZE_KERNEL                          6
00343 #define PDGCS_INITIALIZE_DBG_TABLES                      7
00344 #define PDGCS_INITIALIZE_OBJ_FILE                        8
00345 #define PDGCS_INITIALIZE_TRUNCATE                        9
00346 #define PDGCS_INITIALIZE_NO_OPT_MSGS                    10
00347 #define PDGCS_INITIALIZE_MAX_VL64                       11
00348 #define PDGCS_INITIALIZE_CALL_ARG_CK                    12
00349 #define PDGCS_INITIALIZE_ENTRY_ARG_CK                   13
00350 #define PDGCS_INITIALIZE_EMA_ADDRESS                    14
00351 #define PDGCS_INITIALIZE_DOUBLE_ALIGN                   15
00352 #define PDGCS_INITIALIZE_ENABLE_FEAT                    16 
00353 #define PDGCS_INITIALIZE_MEM_HIER_OPT                   17
00354 #define PDGCS_INITIALIZE_SMALL_PIC                      18  
00355 #define PDGCS_INITIALIZE_BIG_PIC                        19  
00356 #define PDGCS_INITIALIZE_NO_NEG_MSGS                    20
00357 #define PDGCS_INITIALIZE_STREAMSPLIT                    21
00358 #define PDGCS_INITIALIZE_PIPELINE                       22  
00359 #define PDGCS_INITIALIZE_MP                             23  
00360 #define PDGCS_INITIALIZE_APPRENTICE                     24
00361 #define PDGCS_INITIALIZE_S2P_COERCE                     25
00362 #define PDGCS_INITIALIZE_CCG_JUMPS                      26
00363 #define PDGCS_INITIALIZE_OPT_DEBUG                      27
00364 #define PDGCS_INITIALIZE_OPT_INFO                       28
00365 #define PDGCS_INITIALIZE_INTEGER_1_2                    29
00366 
00367 #define FEI_LABEL_ALGNINST                               0
00368 #define FEI_LABEL_REFINNER                               1
00369 #define FEI_LABEL_ALGNLOOP                               2
00370 #define FEI_LABEL_ASSIGN                                 3
00371 
00372 #define FEI_STMT_ARY_BASE                                0
00373 #define FEI_STMT_ARY_SIZE                                1
00374 #define FEI_STMT_NO_BARRIER                              2
00375 #define FEI_STMT_ATOM_UPD                                3
00376 #define FEI_STMT_INTERNAL                                4
00377 
00378 #define FEI_CALL_DOES_NOT_RETURN                         0
00379 
00380 
00381 typedef enum {
00382         Dbgclass_None,
00383         Dbgclass_Statement,
00384         Dbgclass_Exitprogram,
00385         Dbgclass_Endprologue,
00386         Dbgclass_Startepilogue,
00387         Dbgclass_F90construct,
00388         Dbgclass_F90loop,
00389         Dbgclass_User
00390 } DBGCLASS;
00391 
00392 typedef enum {
00393         Dbgtyp_Const_F,
00394         Dbgtyp_Volatile_F
00395 } DTYPE_FLAGS_DBG;
00396 
00397 typedef enum {
00398         Dbgtyp_Void = 1,
00399         Dbgtyp_Typeless,
00400         Dbgtyp_Bool,
00401         Dbgtyp_Int,
00402         Dbgtyp_Float,
00403         Dbgtyp_Complex,
00404         Dbgtyp_Fchar,
00405         Dbgtyp_Qual,
00406         Dbgtyp_Enum,
00407         Dbgtyp_Array,
00408         Dbgtyp_Struct,
00409         Dbgtyp_Addr,
00410         Dbgtyp_Dope,
00411         Dbgtyp_Vector,
00412         Dbgtyp_Func,
00413         Dbgtyp_Code
00414 } DTYPE_CLASS_DBG;
00415 
00416 typedef enum {
00417         Dbgobj_Struct_F
00418 } DOBJ_FLAGS_DBG;
00419 
00420 typedef enum {
00421         Dbgobj_Class_C = 1
00422 } DOBJ_CLASS_DBG;
00423 
00424 typedef enum {
00425         Dbgvis_Public = 1,
00426         Dbgvis_Private,
00427         Dbgvis_Protect,
00428         Dbgvis_Virtual
00429 } DVISIBILITY_DBG;
00430 
00431 typedef enum {
00432         Dbgobjm_Friend_F,
00433         Dbgobjm_Virtual_F,
00434         Dbgobjm_Pure_F,
00435         Dbgobjm_Class_F,
00436         Dbgobjm_Func_F
00437 } DOBJMEM_FLAGS_DBG;
00438 
00439 typedef enum C_kinds {
00440     CK_NONE=0,
00441     CK_CHAR=1,
00442     CK_SMALL=17,
00443     CK_MED=18,
00444     CK_LARGE=19,
00445     CK_XLARGE=20
00446 } CKINDS;
00447 
00448 typedef enum {
00449     PDGCS_Intent_Unseen,
00450     PDGCS_Intent_In,
00451     PDGCS_Intent_Out,
00452     PDGCS_Intent_Inout
00453 } ARG_INTENT;
00454 
00455 typedef enum {
00456     PDGCS_Unknown_Shape,
00457     PDGCS_Explicit_Shape,
00458     PDGCS_Assumed_Size,
00459     PDGCS_Assumed_Shape,
00460     PDGCS_Deferred_Shape
00461 } ARRAY_CLASS;
00462 
00463 typedef enum {
00464     PDGCS_WorkDist_NONE             =  0,
00465     PDGCS_WorkDist_Single           =  1,
00466     PDGCS_WorkDist_Vector           =  2,
00467     PDGCS_WorkDist_Guided           =  3,
00468     PDGCS_WorkDist_Num_Chunks       =  4,
00469     PDGCS_WorkDist_Chunk_Size       =  5,
00470     PDGCS_WorkDist_NCPUS_Chunks     =  7,
00471 
00472     PDGCS_WorkDist_MPP_Uniform      = 11,
00473     PDGCS_WorkDist_MPP_Chunk_Size   = 12,
00474     PDGCS_WorkDist_MPP_Num_Chunks   = 13,
00475     PDGCS_WorkDist_MPP_Guided       = 14,
00476     PDGCS_WorkDist_MPP_Align        = 15,
00477     PDGCS_WorkDist_MPP_Asyn         = 16,
00478     PDGCS_WorkDist_MPP_Reduc_Sum    = 17,
00479     PDGCS_WorkDist_MPP_Reduc_Prod   = 18,
00480     PDGCS_WorkDist_MPP_Reduc_Max    = 19,
00481     PDGCS_WorkDist_MPP_Reduc_Min    = 20,
00482 
00483     PDGCS_WorkDist_OMP_None         = 22,
00484     PDGCS_WorkDist_OMP_Runtime      = 23,
00485     PDGCS_WorkDist_OMP_Static       = 24,
00486     PDGCS_WorkDist_OMP_Dynamic      = 25,
00487     PDGCS_WorkDist_OMP_Guided       = 26
00488 } WORK_DIST_TYPE;
00489 
00490 typedef enum {      
00491         Definition,
00492         Parent,
00493         Imported,
00494         In_Interface} PROC_CALLING_CLASS;
00495 
00496 typedef enum {
00497         No_Dist,     
00498         Block_Dist,
00499         Cyclic_Dist,    
00500         Star_Dist } DISTRIBUTION;
00501 
00502 typedef enum {
00503         Sym_Null,     
00504         Sym_Object,     
00505         Sym_Function,
00506         Sym_Unknown,
00507         Sym_Member,    
00508         Sym_Namelist } SYM_GROUP;
00509 
00510 typedef enum {
00511         Unknown_Return,
00512         Normal_Return,
00513         Void_Return,
00514         Alternate_Return } RETURN_CLASS;
00515 
00516 typedef enum {
00517         Unknown_Sym,
00518         User_Variable,
00519         Dummy_Arg,
00520         Function_Rslt,
00521         Compiler_Temp,
00522         CRI_Pointee,
00523         Component,
00524         Vector_Temp,
00525         Vector_Maskk,
00526         Vector_Iota,
00527         MPP_object,
00528         Call_Dummy,
00529         Dummy_Procedure,
00530         Hosted_User_Variable,
00531         Hosted_Dummy_Arg,
00532         Scratch_Symbol,
00533         Hosted_Dummy_Procedure,
00534         Hosted_Compiler_Temp,
00535         Name } OBJECT_SYM;
00536 
00537 typedef enum {
00538         Context_None,
00539         Context_Private,
00540         Context_Shared,
00541         Context_Value,
00542         Context_Iterate,
00543         Context_Getfirst,
00544         Context_Control,
00545         Context_Induction,
00546         Context_PE_Res_Func,
00547         Context_PE_Res_Loop,
00548         Context_Lastlocal,
00549         Context_Affinity,
00550         Context_Nest,
00551         Context_Lastthread,
00552         Context_Omp_Reduction_Max,
00553         Context_Omp_Reduction_Min,
00554         Context_Omp_Reduction_Band,
00555         Context_Omp_Reduction_Bor,
00556         Context_Omp_Reduction_Bneqv,
00557         Context_Omp_Reduction_Plus,
00558         Context_Omp_Reduction_Mult,
00559         Context_Omp_Reduction_Minus,
00560         Context_Omp_Reduction_And,
00561         Context_Omp_Reduction_Or,
00562         Context_Omp_Reduction_Eqv,
00563         Context_Omp_Reduction_Neqv,
00564         Context_Omp_Private,
00565         Context_Omp_Shared,
00566         Context_Omp_Firstprivate,
00567         Context_Omp_Lastprivate,
00568         Context_Omp_Copyprivate,
00569         Context_Omp_Copyin,
00570         Context_Omp_Affinity,
00571         Context_Omp_Nest,
00572 /* there is no FLUSH clause in OpenMP ([email protected]) */
00573 /* we fake this clause in order to treat FLUSH directive the same as the others */
00574         Context_Omp_Flush,
00575         
00576         /* eraxxon: OpenAD directive */
00577         Context_OpenAD_XXX,
00578         Context_OpenAD_Dependent,
00579         Context_OpenAD_Independent,
00580         Context_OpenAD_Simple } CONTEXT_TYPE;
00581 
00582 typedef enum {
00583         Unknown_Table,
00584         Basic,
00585         Pointer,
00586         Array,
00587         Func_tion } TABLE_TYPE;
00588 
00589 typedef enum {
00590         Unknown_Type,
00591         L_ogical,
00592         T_ypeless,
00593         V_oid,
00594         Char_Fortran,
00595         Char_C,
00596         S_tructure,
00597         U_nion,
00598         Integral,
00599         Floating_Pt,
00600         C_omplex,
00601         CRI_Pointer,
00602         CRI_Pointer_Char,
00603         BT_func_ptr,
00604         Vector_Mask } BASIC_TYPE;
00605 
00606 typedef enum {
00607         Seq_Unknown,
00608         Seq_None,
00609         Seq_Numeric,
00610         Seq_Char,
00611         Seq_Mixed } FORT_SEQUENCE;
00612 
00613 typedef enum {
00614         PDGCS_Proc_Unknown,
00615         PDGCS_Proc_Extern,
00616         PDGCS_Proc_Intern_Ref,
00617         PDGCS_Proc_Unused,
00618         PDGCS_Proc_Intern,
00619         PDGCS_Proc_Imported,
00620         PDGCS_Proc_Module,
00621         PDGCS_Proc_SrcIntrin,
00622         PDGCS_Proc_Host_Ref } PROC_CLASS;
00623 
00624 typedef enum {
00625         Unknown_Func,
00626         C_Function,
00627         C_Function_Proto,
00628         Fort_Function,
00629         Fort_Subroutine,
00630         Main_Pgm,
00631         Fort_Blockdata,
00632         F90_Module } FUNCTION_SYM;
00633 
00634 typedef enum {
00635         PDGCS_Lbl_Unknown,
00636         PDGCS_Lbl_User,
00637         PDGCS_Lbl_Format,
00638         PDGCS_Lbl_Internal,
00639         PDGCS_Lbl_Debug,
00640         PDGCS_Lbl_Cstrct,
00641         PDGCS_Lbl_LoopInternal } LABEL_SYM;
00642 
00643 typedef enum {
00644         Seg_Unknown,
00645         Seg_Static,
00646         Seg_Stack,
00647         Seg_Formal,
00648         Seg_Common,
00649         Seg_Extern,
00650         Seg_Exported,
00651         Seg_Task_Common,
00652         Seg_Soft_External,
00653         Seg_Global_Breg,
00654         Seg_Global_Treg,
00655         Seg_Static_Name,
00656         Seg_Based,
00657         Seg_Equivalenced,
00658         Seg_Restricted,
00659         Seg_Distributed,
00660         Seg_LM_Static,
00661         Seg_LM_Common,
00662         Seg_LM_Extern,
00663         Seg_Auxiliary,
00664         Seg_Static_Local,
00665         Seg_Non_Local_Stack,
00666         Seg_Non_Local_Formal,
00667         Seg_Hosted_Stack,
00668         Seg_Shared_Stack,
00669         Seg_Threadprivate,
00670         Seg_Module ,
00671         Seg_Coment   
00672          } SEGMENT_TYPE;
00673 
00674 typedef enum {
00675         Error_Align  =  0,
00676         Bit_Align    =  1,
00677         Byte_Align   =  8,
00678         Parcel_Align = 16,
00679         HWord_Align  = 32,
00680         Word_Align   = 64,
00681         DWord_Align  = 65,
00682         FWord_Align  = 128 } ALIGN_TYPE;
00683 
00684 typedef enum {
00685         No_Arg_Call,
00686         By_Value_Call,
00687         By_Addr_Call,
00688         By_Reg_Call,
00689         MPP_PAL_Call } CALL_TYPE;
00690 
00691 typedef enum {
00692         No_Const,
00693         Arith_Const,
00694         Addr_Const,
00695         Pattern_Const,
00696         Array_Const,
00697         Struct_Const,
00698         Null_Arg_Const,
00699         Vector_Mask_Const } CONSTANT_CLASS;
00700 
00701 typedef enum {
00702         Unknown_Lang,
00703         Ansi_C,
00704         Fortran_77,
00705         Fortran_90,
00706         Fortran_77_MPP,
00707         Fortran_90_MPP,
00708         Ansi_C_MPP,
00709         Other_Lang,
00710         C_pls_pls,
00711         C_pls_pls_MPP } LANG;
00712 
00713 
00714 /********************\
00715 |* TYPE DESCRIPTOR  *|
00716 \********************/
00717 
00718 typedef struct  type_descriptor  {
00719 
00720 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) || defined(_TARGET_MONGOOSE)
00721     unsigned     const_flag      :  1;
00722     unsigned     volatile_flag   :  1;
00723     unsigned     signed_flag     :  1;
00724     unsigned     automatic       :  1;
00725     unsigned     restricted      :  1;
00726     unsigned     short_flag      :  1;
00727     unsigned     long_flag       :  1;
00728     unsigned     bitfield        :  1;
00729     TABLE_TYPE   table_type      :  4;
00730     BASIC_TYPE   basic_type      :  5;
00731     unsigned     aux_info        : 15;
00732     unsigned     shrd_pointee    :  1;
00733     unsigned     table_index     : 31;
00734 # else
00735     unsigned     const_flag      :  1;
00736     unsigned     volatile_flag   :  1;
00737     unsigned     signed_flag     :  1;
00738     unsigned     restricted      :  1;
00739     unsigned     short_flag      :  1;
00740     unsigned     long_flag       :  1;
00741     unsigned     bitfield        :  1;
00742     TABLE_TYPE   table_type      :  3;
00743     BASIC_TYPE   basic_type      :  4;
00744     int          aux_info        : 18;
00745     signed       table_index     : 32;
00746 # endif
00747 
00748 } TYPE;
00749 
00750 
00751 /*
00752                      WARNING WARNING WARNING
00753 If the size of TYPE is changed, a joint integration will be required.
00754 Resizing, spliting or reordering bitfields may introduce unexpected
00755 padding thereby changing overall structure size.
00756 Be sure to verify that padding is not added when altering or adding
00757 a component of TYPE.
00758 */
00759 
00760 
00761 
00762 extern FILE  *init_debug_file             ( void );
00763 extern char  *global_to_local_file        ( INT32 );
00764 extern INT32  global_to_local_line_number ( INT32 );
00765 extern void   PDGCS_initialize            ( LANG  language,
00766                                             INT32 init_flags, 
00767                                             char  *cmp_name,
00768                                             char  *cmp_rel,
00769                                             char  *obj_file_name,
00770                                             char  *list_file_name,
00771                                             INT32 trunc_bits,
00772                                             INT32 debug_opts,
00773                                             char  *src_path_name,
00774                                             char  *cif_file_name,
00775                                             char  *debug_file_name,  
00776                                             FILE  *debug_file, 
00777                                             FILE  *cif_file, 
00778                                             char  *src_fname,
00779                                             char  *cwd, 
00780                                             INT32 n_pes, 
00781                                             INT32 meta_test );
00782 extern void  PDGCS_comp_unit              ( char  *comp_unit_name,
00783                                             INT32 module_node );
00784 extern void  PDGCS_new_proc               ( INT32 ir_count,
00785                                             INTPTR func_st_idx,
00786                                             INT32 alt_entry_count,
00787                                             INT32 scalar_opt_level,
00788                                             INT32 vector_opt_level,
00789                                             INT32 task_opt_level,
00790                                             INT32 opt_flags,
00791                                             INT32 user_mobes,
00792                                             INT32 user_sades,
00793                                             INT32 pipeline_opt_level,   
00794                                             INT32 stream_opt_level,
00795                                             INT32  ismodule); 
00796 extern void  PDGCS_do_proc                ( void );
00797 extern void  PDGCS_end_procs              ( INT32 *code_size,
00798                                             INT32 *data_size );
00799 extern void  PDGCS_end_comp_unit          ( void );
00800 extern void  PDGCS_terminate              ( void );
00801 extern void  PDGCS_debug_init             ( char  *org_file_name,
00802                                             char  *comp_gen_date );
00803 extern void  PDGCS_version_info           ( char  *cmp_rel, char  *cmp_ed );
00804 extern void  fei_module_file              ( char  *file_name );
00805 extern void  PDGCS_debug_gen_table        ( void );
00806 extern void  fei_smt_actual_to_generic    ( INT32 act_st_idx,
00807                                             char  *generic_name );
00808 extern void  fei_smt_original_to_qualified( INT32 qualified_st_idx,
00809                                             char  *original_name );
00810 extern void  fei_null_expr                ( void );
00811 extern void  fei_implicit_expr                ( void );   /* March */
00812 extern void  fei_member_ref               ( INT32 mem_idx );
00813 extern void  fei_object_ref               ( INTPTR sym_idx,    
00814                                             INT32 whole_subscript,
00815                                             INT32 whole_substring );
00816 extern void  fei_function_ref             ( INTPTR fnc_idx );
00817 extern INTPTR fei_constant                 ( TYPE  type,
00818                                             INT32 Class,
00819                                             char  *start,
00820                                             INT64 bitsize );
00821 extern INTPTR fei_arith_con               ( TYPE  type, 
00822                                             long  *start );
00823 extern void  fei_push_arith_con           ( INTPTR cdx );
00824 extern void  fei_push_pattern_con         ( INTPTR ndx );
00825 extern void  fei_add_use_path             ( INT32 st_idx,
00826                                             INT32 path_idx,
00827                                             INT32 module_idx );
00828 extern INTPTR fei_pattern_con             ( TYPE  type,
00829                                             char  *start,
00830                                             INT64 bitsize );
00831 extern INTPTR fei_smt_parameter           ( char  *name_string,
00832                                             TYPE  type,
00833                                             INTPTR con_idx,
00834                                             INT32 Class,
00835                                             INT32 line_num );
00836 extern void  fei_entry_pt                 ( INTPTR st_idx );
00837 extern void  fei_stmt                     ( INT32 lineno, INT32 flags );
00838 extern void  fei_min                      ( INT32 n_opnds, TYPE type );
00839 extern void  fei_max                      ( INT32 n_opnds, TYPE type );
00840 extern void  fei_list                     ( INT32 n_opnds );
00841 extern void  fei_concat                   ( INT32 n_opnds );
00842 extern void  fei_index                    ( void );
00843 extern void  fei_field_dot                ( TYPE  type );
00844 extern void  fei_field_arrow              ( TYPE  type );
00845 extern void  fei_deref                    ( TYPE  type );
00846 extern void  fei_paren                    ( TYPE  type ,INT32 processing_call);
00847 extern void  fei_cvtop                    ( TYPE  type );
00848 extern void  fei_substr                   ( INT32 bound_chk );
00849 extern void  fei_seq_subscr               ( TYPE  type,INT32 kidsnum );
00850 extern void  fei_nseq_subscr              ( TYPE  type );
00851 extern void  fei_subscr_size              ( TYPE  type, INT32 bounds_check );
00852 extern void  fei_subscr_triplet           ( TYPE  type );
00853 extern void  fei_subscr_src_triplet           ( TYPE  type );
00854 extern void  fei_dv_deref                 ( TYPE  type );
00855 extern void  fei_store                    ( TYPE  type );
00856 extern void  fei_pstore                    ( TYPE  type ); 
00857 extern void  fei_non_conform_store        ( TYPE  type );
00858 extern void  fei_as_ref                   ( TYPE  type );
00859 extern void  fei_return                   ( INT32 return_class, TYPE type );
00860 extern void  fei_stop                     ( void );
00861 extern void  fei_case                     ( INT32 case_follows );
00862 extern void  fei_switch                   ( INT32 num_cases, 
00863                                             INT32 default_lbl_idx );
00864 extern void  fei_static_begin             ( void );
00865 extern void  fei_static_init              ( INT32 st_idx,
00866                                             INT64 offset,
00867                                             INT64 size,
00868                                             INT64 dups,
00869                                             INT64 stride,
00870                                             INT32 string_literal );
00871 extern void  fei_static_reloc_init        ( INT32 st_idx,
00872                                             INT64 offset,
00873                                             INT64 size,
00874                                             INT64 dups,
00875                                             INT64 stride,
00876                                             INT64 relocbitoffset );
00877 extern void  fei_static_base              ( INTPTR st_idx );
00878 extern void  fei_static_subscripts        ( INT64 subscripts[] );
00879 extern void  fei_static_member            ( INT32 st_idx );
00880 extern void  fei_static_substr            ( INT32 start );
00881 extern void  fei_static_simple_init       ( INT64 dup_count,
00882                                             INT64 stride,
00883                                             INT32 ignore_types,
00884                                             INT32 string_literal );
00885 extern void  fei_static_next_simple_init  ( INT64 bit_increment, 
00886                                             INT64 dup_count,
00887                                             INT64 init_offset,
00888                                             INT32 string_literal );
00889 extern void  fei_static_simple_reloc_init ( INT64 bit_offset, 
00890                                             INT64 dup_count,
00891                                             INT64 stride,
00892                                             INT64 bit_size,
00893                                             INT32 ignore_types );
00894 extern void  fei_static_next_reloc_init   ( INT64 bit_offset, 
00895                                             INT64 bit_stride,
00896                                             INT64 dup_count,
00897                                             INT64 init_offset,
00898                                             INT64 bit_size );
00899 extern void  fei_static_end               ( void );
00900 extern void  fei_initializer              ( INT64 dup_count,
00901                                             INT64 stride,
00902                                             INT64 stride_precomputed );
00903 extern void  fei_init_reloc               ( INT64 bit_offset,
00904                                             INT64 dup_count,
00905                                             INT64 stride );
00906 extern void  fei_label_ref                ( INT32 lbl_idx );
00907 extern void  fei_label_def_named          ( INT32 lbl_idx,
00908                                             INT64 label_flag_word,
00909                                             INT32 lineno,
00910                                             INT32 sup_cnt,
00911                                             INT32 keepme,
00912                                             INT32 storage_seg,
00913                                             INT32 safevl,
00914                                             INT32 unroll_cnt,
00915                                             char  *mark_name,
00916                                             INT32 noncache_cnt,
00917                                             INT32 safedist,
00918                                             INT32 blockable_grp,
00919                                             INT32 interchange_grp,
00920                                             INT32 interchange_lvl);
00921 extern void  fei_call                     ( INT32 num_args,
00922                                             TYPE  type,
00923                                             INT32 call_type,
00924                                             INT32 alt_return_flag,  
00925                                             INT32 inline_setting,
00926                                             INT64 flags );
00927 extern void  fei_use           ( INT32 rename_only_num, INT32 onlyPredicate); 
00928 extern void  fei_arg_associate (INT32 association);
00929 extern void  fei_brtrue                   ( INT32 lbl_idx );
00930 extern void  fei_if                       ( void );
00931 extern void  fei_else                     ( void );
00932 extern void  fei_endif                    ( void );
00933 extern void  fei_goto                     ( INT32 lbl_idx );
00934 extern void  fei_label_addr               ( INT32 idx );
00935 extern void  fei_indirect_goto            ( INT32 num_labs,
00936                                             INT32 assign_goto_flag );
00937 extern void  fei_arith_goto               ( INT32 zero_lab,
00938                                             INT32 pos_lab,
00939                                             INT32 neg_lab );
00940 extern void  fei_proc_body                ( INT32 lineno );
00941 extern INT32 fei_get_segment              ( INT32 pdgcs_st_idx,
00942                                             INT32 *is_data_segment );
00943 extern INT32 fei_get_dist_info            ( INT32 seg_idx,
00944                                             INT32 dimension,
00945                                             INT32 *pe_type,
00946                                             INT32 *pe_val,
00947                                             INT32 *blk_type,
00948                                             INT32 *blk_val,
00949                                             INT32 *cycle_type,
00950                                             INT32 *cycle_val );
00951 extern INT32 fei_get_redist               ( INT32 arg_syx );
00952 extern void  fei_user_type                ( char  *name_string,
00953                                             INT32 nbr_components,
00954                                             INT64 size,
00955                                             INT32 sequence,
00956                                             INT32 st_idx,
00957                                             INT32 alignment,
00958                                             INTPTR modst_idx,
00959                                             INT32 definition_in_module );
00960 extern INT32 fei_imported_type           ( char *name_string,
00961                                            INTPTR modst_idx);
00962 extern TYPE fei_get_pdg_type             ( INT32 ty_idx,
00963                                            INT32 table_type,
00964                                            INT32 basic_type,
00965                                            INT32 nbr_components);
00966 extern void fei_gen_st_for_type          (  char *name_string ,
00967                                             TYPE type_idx ,
00968                                             INTPTR  modst_idx );        
00969 extern TYPE  fei_descriptor               ( INT32 flag_matrix,
00970                                             INT32 table_type,
00971                                             INTPTR table_index,
00972                                             INT32 basic_type,
00973                                             INT32 aux_info,
00974                                             INT32 alignment);
00975 extern INTPTR fei_name                    ( char  *name_string,
00976                                             INT32 st_grp,
00977                                             INTPTR st_idx,
00978                                             INT32 prev,
00979                                             INT32 idx );
00980 extern INT32 fei_next_name                ( INT32 increment );
00981 extern INT32 fei_next_type_idx            ( INT32 flag,   
00982                                             INT32 alignment );
00983 extern INTPTR fei_next_func_idx           ( INT32 pgm_unit,
00984                                             INT32 proc,
00985                                             INT32 alt_entry );
00986 extern INT32 fei_next_symbol              ( INT32 increment );
00987 extern void  fei_doacross                 ( INT32 task_if_idx,
00988                                             INT32 sched_type,
00989                                             INT32 thread_count,
00990                                             INT32 data_count,
00991                                             INT32 onto_count,
00992                                             INT32 reduction_count,
00993                                             INT32 chunk_count );
00994 extern void  fei_pdo                      ( INT32 sched_type,
00995                                             INT32 ordered,
00996                                             INT32 thread_count,
00997                                             INT32 data_count,
00998                                             INT32 onto_count,
00999                                             INT32 reduction_count,
01000                                             INT32 chunk_count );
01001 extern void  fei_paralleldo               ( INT32 task_if_idx,
01002                                             INT32 sched_type,
01003                                             INT32 thread_count,
01004                                             INT32 data_count,
01005                                             INT32 onto_count,
01006                                             INT32 reduction_count,
01007                                             INT32 chunk_count );
01008 extern void  fei_parallel                 ( INT32 task_if_idx );
01009 extern void  fei_singleprocess            ( void );
01010 extern void  fei_criticalsection          ( INT32 var_count );
01011 extern void  fei_endsingleprocess         ( INT32 nowait );
01012 extern void  fei_endpsection              ( INT32 nowait );
01013 extern void  fei_endpdo                   ( INT32 nowait );
01014 extern void  fei_endcriticalsection       ( void );
01015 extern void  fei_endparallel              ( void );
01016 extern void  fei_section                  ( void );
01017 extern void  fei_barrier                  ( void );
01018 extern void  fei_psection                 ( void );
01019 extern void  fei_regionend                ( void );
01020 extern void  fei_regionbegin              ( void );
01021 extern void  fei_interchange              ( INT32 expressions );
01022 extern void  fei_blockable                ( INT32 expressions );
01023 extern void  fei_fuse                     ( INT32 level );
01024 extern void  fei_flush                    ( INT32 list_count );
01025 extern void  fei_assert                   ( INT32 assertion, INT32 list_count );
01026 extern void  fei_fission                  ( void );
01027 extern void  fei_unroll                   ( void );
01028 extern void  fei_section_gp               ( INT32 list_count );
01029 extern void  fei_section_nongp            ( INT32 list_count );
01030 extern void  fei_blocking_size            ( void );
01031 extern void  fei_purple_conditional       ( void );
01032 extern void  fei_opaque                   ( void );
01033 extern void  fei_purple_unconditional     ( void );
01034 extern void  fei_copy_in                  ( INT32 list_count );
01035 extern void  fei_concurrentize            ( INT32 state );
01036 extern void  fei_seg_ref                  ( INT32 sb_idx );
01037 extern void  fei_page_place               ( void );
01038 extern void  fei_dynamic                  ( INT32 list_count );
01039 extern void  fei_fill_symbol              ( INT32 list_count, INT32 C_value );
01040 extern void  fei_align_symbol             ( INT32 list_count, INT32 C_value );
01041 extern void  fei_prefetch_ref_disable     ( INT32 array, INT32 size );
01042 extern void  fei_prefetch_ref             ( INT32 stride,
01043                                             INT32 level,
01044                                             INT32 kind,
01045                                             INT32 size );
01046 extern void  fei_redistribute             ( INT32 array,
01047                                             INT32 dim,
01048                                             INT32 distribution,
01049                                             INT32 cyclic_exists,
01050                                             INT32 onto_exists );
01051 extern void  fei_prefetch                 ( INT32 n1, INT32 n2 );
01052 extern void  fei_prefetch_manual          ( INT32 n );
01053 extern INTPTR fei_proc                    ( char  *name_string,
01054                                             INT32 lineno,
01055                                             INT32 sym_class,
01056                                             INT32 Class,
01057                                             INT32 num_dum_args,
01058                                             INT32 parent_stx,
01059                                             INT32 first_st_idx,
01060                                             INT32 aux_idx,
01061                                             TYPE  type,
01062                                             INT32 st_idx,   
01063                                             INT64 flags,
01064                                             INT32 in_interface,
01065                                             INT32 coarray_concurrent);
01066 extern INTPTR fei_seg                     ( char  *name_string,
01067                                             INT32 seg_type,
01068                                             INT32 owner,
01069                                             INT32 parent,
01070                                             INT32 aux_index,
01071                                             INT32 flag_bits,
01072                                             INT32 nest_level,
01073                                             INT64 block_length );
01074 extern INT32 fei_label                    ( char  *name_string,
01075                                             INT32 flag_bits,
01076                                             INT32 Class,
01077                                             char  *format_string, 
01078                                             INT32 debug_label_type );
01079 extern INT32 fei_member                   ( char  *name_string,
01080                                             TYPE  type,
01081                                             INT64 offset,
01082                                             INT64 size,
01083                                             INT32 alignment,
01084                                             INT32 line_num, 
01085                                             INT64 flag_bits,
01086                                             INT64 io_code );
01087 extern INTPTR fei_object                  ( char  *name_string,
01088                                             TYPE  type,
01089                                             INT64 flag_bits,
01090                                             INT32 sym_class,
01091                                             INTPTR storage_idx,
01092                                             INT32 derive_st_idx,
01093                                             INTPTR ptr_st_idx,
01094                                             INT64 offset,
01095                                             INT32 arg_intent,
01096                                             INT64 size,
01097                                             INT32 type_aux,
01098                                             INT32 alignment,
01099                                             INT32 distr_idx,
01100                                             INT32 node_1,
01101                                             INT32 node_2,
01102                                             INT32 line_num,
01103                                             INTPTR modst_idx );
01104 
01105 extern void fei_rename_list(char *name_string);
01106 
01107 extern INTPTR fei_array_dimen             ( INT32 flag_bits,
01108                                             INT64 low_bound,
01109                                             INT64 extent,
01110                                             INT32 rank,
01111                                             TYPE  span_type,
01112                                             INT64 bitsize,
01113                                             INT32 distribution,
01114                                             INT64 upper_bound );
01115 extern INTPTR fei_co_array_dimen             ( INT32 flag_bits,
01116                                             INT64 low_bound,
01117                                             INT64 extent,
01118                                             INT32 arraydims,
01119                                             INT32 rank,
01120                                             TYPE  span_type,
01121                                             INT64 bitsize,
01122                                             INT32 distribution,
01123                                             INT64 upper_bound );
01124 
01125 extern INT32 fei_pointee                  ( TYPE  pointee_type );
01126 extern INT32 fei_parallel_region          ( INT32 ifexpr,
01127                                             INT32 maxcpus,
01128                                             INT32 context_start,
01129                                             INT32 context_end,
01130                                             INT32 lineno,
01131                                             INT32 flags );
01132 extern void  fei_endparallel_region       ( INT32 task_x, INT32 lineno );
01133 extern void  fei_doall                    ( INT32 ifexpr,
01134                                             INT32 maxcpus,
01135                                             INT32 context_start,
01136                                             INT32 context_end,
01137                                             INT32 induc_symx,
01138                                             INT32 work_dist,
01139                                             INT32 work_dist_opnd,
01140                                             INT32 flags,
01141                                             INT32 lineno );
01142 extern INT32 fei_doparallel               ( INT32 induc_symx,
01143                                             INT32 work_dist,
01144                                             INT32 work_dist_opnd,
01145                                             INT32 lineno );
01146 extern void  fei_task_endloop             ( INT32 taskloop_x, 
01147                                             INT32 lineno,
01148                                             INT32 nowait );
01149 extern INT32 fei_doall_wave               ( INT32 ifexpr,
01150                                             INT32 maxcpus,
01151                                             INT32 context_start,
01152                                             INT32 context_end,
01153                                             INT32 iter_start,
01154                                             INT32 iter_end,
01155                                             INT32 lineno );
01156 extern INT32 fei_doparallel_wave          ( INT32 iter_start,
01157                                             INT32 iter_end,
01158                                             INT32 lineno );
01159 extern void  fei_par_body                 ( INT32 taskloop_x, INT32 lineno );
01160 extern void  fei_endpar_body              ( INT32 taskloop_x, INT32 lineno );
01161 extern INT32 fei_par_case                 ( INT32 task_x, INT32 lineno );
01162 extern void  fei_par_endcase              ( INT32 task_x, INT32 lineno );
01163 extern void  fei_numcpus                  ( INT32 lineno );
01164 extern INT32 fei_guard                    ( INT32 guard_num, INT32 lineno );
01165 extern void  fei_endguard                 ( INT32 task_x,
01166                                             INT32 guard_num,
01167                                             INT32 lineno );
01168 extern INTPTR fei_task_var                ( INTPTR sym_idx, INT32 context );
01169 extern INT32 fei_task_wait                ( INT32 point, INT32 span );
01170 extern INT32 fei_task_send                ( INT32 point, INT32 task_if_idx );
01171 extern INT32 fei_mpp_master               ( INT32 lineno );
01172 extern void  fei_mpp_symmetric_alloc      ( void );
01173 extern void  fei_mpp_symmetric_free       ( void );
01174 extern INT32 fei_mpp_parallel             ( INT32 all_flg,
01175                                             INT32 first_ctxt_x,
01176                                             INT32 last_ctxt_x,
01177                                             INT32 lineno );
01178 extern void  fei_mpp_endmaster            ( INT32 task_x,
01179                                             INT32 first_ctxt_x,
01180                                             INT32 last_ctxt_x,
01181                                             INT32 lineno );
01182 extern void  fei_mpp_endparallel          ( INT32 task_x, INT32 lineno );
01183 extern void  fei_mpp_doshared             ( INT32 first_induc_x,
01184                                             INT32 last_induc_x,
01185                                             INT32 work_dist,
01186                                             INT32 random_flg,
01187                                             INT32 nobarrier_flg,
01188                                             INT32 lineno );
01189 extern void  fei_mpp_barrier              ( INT32 lineno );
01190 extern INT32 fei_mpp_critical             ( INT32 lineno );
01191 extern void  fei_mpp_endcritical          ( INT32 task_x, INT32 lineno );
01192 extern INT32 fei_mpp_distrib_dim          ( INT32 prev_distrib_x,
01193                                             INT32 distrib_type,
01194                                             INT64 blk_sz,
01195                                             INT32 pe_ratio,
01196                                             INT32 orig_ext,
01197                                             INT32 flags );
01198 extern void  cwh_add_to_used_files_table  ( char  *name, INT32  copy_name );
01199 extern void  fei_critical_open_mp         ( char  *name );
01200 extern void  fei_endcritical_open_mp      ( char  *name );
01201 extern void  fei_parallelsections_open_mp ( INT32 task_if_idx, INT32 defaultt );
01202 extern void  fei_paralleldo_open_mp       ( INT32 task_if_idx,
01203                                             INT32 defaultt,
01204                                             INT32 ordered,
01205                                             INT32 scheduletype,
01206                                             INT32 schedulechunck,
01207                                             INT32 threadcount,
01208                                             INT32 datacount,
01209                                             INT32 ontocount );
01210 extern void  fei_parallelworkshare_open_mp( INT32 task_if_idx, INT32 defaultt );
01211 extern void  fei_single_open_mp           ( void );
01212 extern void  fei_sections_open_mp         ( void );
01213 extern void  fei_workshare_open_mp        ( void );
01214 extern void  fei_do_open_mp               ( INT32 ordered,
01215                                             INT32 scheduletype,
01216                                             INT32 schedulechunck,
01217                                             INT32 threadcount,
01218                                             INT32 datacount,
01219                                             INT32 ontocount );
01220 extern void  fei_parallel_open_mp         ( INT32 task_if_idx, INT32 defaultt );
01221 extern void  fei_barrier_open_mp          ( void );
01222 extern void  fei_section_open_mp          ( void );
01223 extern void  fei_master_open_mp           ( void );
01224 extern void  fei_endmaster_open_mp        ( void );
01225 extern void  fei_ordered_open_mp          ( void );
01226 extern void  fei_endsingle_open_mp        ( INT32 nowait );
01227 extern void  fei_enddo_open_mp            ( INT32 nowait );
01228 extern void  fei_endsections_open_mp      ( INT32 nowait );
01229 extern void  fei_endworkshare_open_mp     ( INT32 nowait );
01230 extern void  fei_flush_open_mp            ( void );
01231 extern void  fei_endordered_open_mp       ( void );
01232 extern void  fei_endparalleldo_open_mp    ( void );
01233 extern void  fei_endparallel_open_mp      ( void );
01234 extern void  fei_atomic_open_mp           ( void );
01235 extern void  fei_endparallelsections_open_mp( void );
01236 extern void  fei_endparallelworkshare_open_mp( void );
01237 extern void  fei_xxx_openad               ( char *str ); /* eraxxon: OpenAD */
01238 extern void  fei_dependent_independent_openad( void );   /* eraxxon: OpenAD */
01239 extern void  fei_fetch_and_add            ( TYPE type );
01240 extern void  fei_fetch_and_sub            ( TYPE type );
01241 extern void  fei_fetch_and_xor            ( TYPE type );
01242 extern void  fei_fetch_and_nand           ( TYPE type );
01243 extern void  fei_fetch_and_or             ( TYPE type );
01244 extern void  fei_fetch_and_and            ( TYPE type );
01245 extern void  fei_add_and_fetch            ( TYPE type );
01246 extern void  fei_sub_and_fetch            ( TYPE type );
01247 extern void  fei_xor_and_fetch            ( TYPE type );
01248 extern void  fei_nand_and_fetch           ( TYPE type );
01249 extern void  fei_or_and_fetch             ( TYPE type );
01250 extern void  fei_and_and_fetch            ( TYPE type );
01251 extern void  fei_lock_test_and_set        ( TYPE type );
01252 extern void  fei_compare_and_swap         ( TYPE type );
01253 extern void  fei_lock_release             ( void );
01254 extern void  fei_omp_set_lock             ( void );
01255 extern void  fei_omp_unset_lock           ( void );
01256 extern void  fei_omp_test_lock            ( void );
01257 extern void  fei_synchronize              ( void );
01258 extern void  fei_shloc                    ( void );
01259 extern void  fei_shmalloc                 ( INT32 nargs );
01260 extern void  fei_shfree                   ( void );
01261 extern void  fei_user_code_start          ( void );
01262 extern void  fei_start_ioblock            ( void );
01263 extern void  fei_end_ioblock              ( void );
01264 extern void  fei_namelist_ref             ( INTPTR sym_idx );
01265 extern void  fei_formatted_read           ( void );
01266 extern void  fei_unformatted_read         ( void );
01267 extern void  fei_namelist_read            ( void );
01268 extern void  fei_formatted_write          ( void );
01269 extern void  fei_unformatted_write        ( void );
01270 extern void  fei_namelist_write           ( void );
01271 extern void  fei_control_list             ( INT32 io_type );
01272 extern void  fei_IO_list                  ( INT32 n_opnds, INT32 io_type );
01273 extern void  fei_implied_do               ( void );
01274 extern void  fei_noio_implied_do               ( void );
01275 extern void  fei_iolength                 ( void );
01276 extern void  fei_bit_len                  ( void );
01277 extern void  fei_where                    ( INT32 defined_asg, 
01278                                             INT32 inline_state );
01279 extern void  fei_ceiling                  ( TYPE type );
01280 extern void  fei_exponent                 ( TYPE type );
01281 extern void  fei_floor                    ( TYPE type );
01282 extern void  fei_getpos                   ( void );
01283 extern void  fei_length                   ( void );
01284 extern void  fei_array_construct         ( INT32 nlist,TYPE type);
01285 extern void  fei_nearest                  ( void );
01286 extern void  fei_near                     ( TYPE type);
01287 extern void  fei_present                  ( void );
01288 extern void  fei_rrspacing                ( void );
01289 extern void  fei_spacing                  ( void );
01290 extern void  fei_unit                     ( void );
01291 extern void  fei_ridiv                    ( void );
01292 extern void  fei_addr_con                 ( TYPE type );
01293 extern void  fei_ex                       ( INT32 nargs );
01294 extern void  fei_chanDI                   ( void );
01295 extern void  fei_chanEI                   ( void );
01296 extern void  fei_push_npex_expr           ( INT32 npdx );
01297 extern void  fei_my_pe                    ( void );
01298 extern void  fei_n_pes                    ( void );
01299 extern void  fei_symmetric_alloc          ( void );
01300 extern void  fei_symmetric_free           ( void );
01301 extern void  fei_blkct                    ( void );
01302 extern void  fei_lowidx                   ( void );
01303 extern void  fei_hiidx                    ( void );
01304 extern void  fei_home                     ( void );
01305 extern void  fei_pes                      ( void );
01306 extern void  fei_geommap                  ( void );
01307 extern void  fei_taskmap                  ( void );
01308 extern void  fei_isshared                 ( void );
01309 extern void  fei_iscanon                  ( void );
01310 extern void  fei_inpar                    ( void );
01311 extern void  fei_indoshrd                 ( void );
01312 extern void  fei_mpp_sdd_read_base        ( void );
01313 extern void  fei_mpp_sdd_write_base       ( void );
01314 extern void  fei_mpp_sdd_read_offset      ( void );
01315 extern void  fei_mpp_sdd_write_offset     ( void );
01316 extern void  fei_mpp_sdd_read_canon       ( void );
01317 extern void  fei_mpp_sdd_write_canon      ( void );
01318 extern void  fei_mpp_sdd_read_blk_ebp     ( void );
01319 extern void  fei_mpp_sdd_write_blk_ebp    ( void );
01320 extern void  fei_mpp_sdd_read_pe_bcnt     ( void );
01321 extern void  fei_mpp_sdd_write_pe_bcnt    ( void );
01322 extern void  fei_mpp_sdd_read_cyc_ebp     ( void );
01323 extern void  fei_mpp_sdd_write_cyc_ebp    ( void );
01324 extern void  fei_cached_read              ( void );
01325 extern void  fei_atomic_swap              ( TYPE type );
01326 extern void  fei_set_cache_inv            ( void );
01327 extern void  fei_clr_cache_inv            ( void );
01328 extern void  fei_partition_type           ( void );
01329 extern void  fei_get_bsr0                 ( void );
01330 extern void  fei_put_bsr0                 ( void );
01331 extern void  fei_loc_cmr                  ( void );
01332 extern void  fei_rem_cmr                  ( void );
01333 extern void  fei_wmb                      ( void );
01334 extern void  fei_read_unkn                ( void );
01335 extern void  fei_write_unkn               ( void );
01336 extern void  fei_read_fpcr                ( void );
01337 extern void  fei_write_fpcr               ( void );
01338 /* extern void  fei_len                   ( TYPE type ); */
01339 extern void  fei_len                      ( void );
01340 extern void  fei_fraction                 ( void );
01341 extern void  fei_len_trim                 ( void );
01342 extern void  fei_trunc                    ( TYPE type );
01343 extern void  fei_round                    ( TYPE type );
01344 extern void  fei_pos_diff                 ( TYPE type );
01345 extern void  fei_sign_xfer                ( TYPE type );
01346 extern void  fei_ieee_sign_xfer           ( TYPE type );
01347 extern void  fei_rtc                      ( TYPE type );
01348 extern void  fei_copyin                   ( void );
01349 extern void  fei_copyout                  ( void );
01350 extern void  fei_conjg                    ( TYPE type );
01351 extern void  fei_cot                      ( TYPE type );
01352 extern void  fei_atan2                    ( TYPE type );
01353 extern void  fei_atan2d                   ( TYPE type );
01354 extern void  fei_coss                     ( void );
01355 extern void  fei_ranf                     ( TYPE type );
01356 extern void  fei_wclrsm                   ( void );
01357 extern void  fei_getvl                    ( void );
01358 extern void  fei_setvl                    ( void );
01359 extern void  fei_setcln                   ( void );
01360 extern void  fei_rjump                    ( void );
01361 extern void  fei_setca                    ( void );
01362 extern void  fei_pci                      ( void );
01363 extern void  fei_cci                      ( void );
01364 extern void  fei_eci                      ( void );
01365 extern void  fei_dci                      ( void );
01366 extern void  fei_eciv                     ( void );
01367 extern void  fei_dciv                     ( void );
01368 extern void  fei_multiply_high            ( TYPE type );
01369 extern void  fei_mc                       ( void );
01370 extern void  fei_di                       ( void );
01371 extern void  fei_ei                       ( void );
01372 extern void  fei_emi                      ( void );
01373 extern void  fei_dmi                      ( void );
01374 extern void  fei_setbp                    ( void );
01375 extern void  fei_esi                      ( void );
01376 extern void  fei_clrci                    ( void );
01377 extern void  fei_loadrt                   ( void );
01378 extern void  fei_readca                   ( void );
01379 extern void  fei_readce                   ( void );
01380 extern void  fei_readci                   ( void );
01381 extern void  fei_setcl                    ( void );
01382 extern void  fei_setip                    ( void );
01383 extern void  fei_clearip                  ( void );
01384 extern void  fei_setxa                    ( void );
01385 extern void  fei_slm                      ( void );
01386 extern void  fei_rlm                      ( void );
01387 extern void  fei_wlm                      ( void );
01388 extern void  fei_err                      ( void );
01389 extern void  fei_writebp                  ( void );
01390 extern void  fei_cmr                      ( void );
01391 extern void  fei_tsetsm                   ( void );
01392 extern void  fei_clrsm                    ( void );
01393 extern void  fei_setsm                    ( void );
01394 extern void  fei_getvm                    ( void );
01395 extern void  fei_setvm                    ( void );
01396 extern void  fei_jts                      ( void );
01397 extern void  fei_readb                    ( void );
01398 extern void  fei_writeb                   ( void );
01399 extern void  fei_readsb                   ( void );
01400 extern void  fei_readsbi                  ( void );
01401 extern void  fei_writesb                  ( void );
01402 extern void  fei_readst                   ( void );
01403 extern void  fei_writest                  ( void );
01404 extern void  fei_readsr                   ( void );
01405 extern void  fei_writesr                  ( void );
01406 extern void  fei_fincsr                   ( void );
01407 extern void  fei_getsem                   ( void );
01408 extern void  fei_numwords                 ( void );
01409 extern void  fei_argchk                   ( void );
01410 extern void  fei_argloc                   ( void );
01411 extern void  fei_readsm                   ( void );
01412 extern void  fei_writesm                  ( void );
01413 extern void  fei_mbclr                    ( void );
01414 extern void  fei_mbld                     ( void );
01415 extern void  fei_mbmx                     ( void );
01416 extern void  fei_mbmxl                    ( void );
01417 extern void  fei_mbul                     ( void );
01418 extern void  fei_abs                      ( TYPE type );
01419 extern void  fei_acos                     ( TYPE type );
01420 extern void  fei_acosd                    ( TYPE type );
01421 extern void  fei_asin                     ( TYPE type );
01422 extern void  fei_asind                    ( TYPE type );
01423 extern void  fei_atan                     ( TYPE type );
01424 extern void  fei_atand                    ( TYPE type );
01425 extern void  fei_cos                      ( TYPE type );
01426 extern void  fei_cosd                     ( TYPE type );
01427 extern void  fei_cosh                     ( TYPE type );
01428 extern void  fei_exp                      ( TYPE type );
01429 extern void  fei_log                      ( TYPE type );
01430 extern void  fei_log10                    ( TYPE type );
01431 extern void  fei_sin                      ( TYPE type );
01432 extern void  fei_sind                     ( TYPE type );
01433 extern void  fei_sinh                     ( TYPE type );
01434 extern void  fei_sqrt                     ( TYPE type );
01435 extern void  fei_tan                      ( TYPE type );
01436 extern void  fei_tand                     ( TYPE type );
01437 extern void  fei_tanh                     ( TYPE type );
01438 extern void  fei_mask                     ( TYPE type );
01439 extern void  fei_readxa                   ( void );
01440 extern void  fei_readea                   ( void );
01441 extern void  fei_setea                    ( void );
01442 extern void  fei_esc                      ( void );
01443 extern void  fei_dsc                      ( void );
01444 extern void  fei_alloc                    ( void );
01445 extern void  fei_free                     ( void );
01446 extern void  fei_allocate                 ( INT32 nargs );
01447 extern void  fei_deallocate               ( INT32 nargs );
01448 extern void  fei_ssd_alloc                ( void );
01449 extern void  fei_ssd_free                 ( void );
01450 extern void  fei_readbpc                  ( void );
01451 extern void  fei_arg_addr                 ( TYPE type );
01452 extern void  fei_addr                     ( TYPE type );
01453 extern void  fei_real                     ( TYPE type );
01454 extern void  fei_imag                     ( TYPE type );
01455 extern void  fei_bneg                     ( TYPE type );
01456 extern void  fei_lneg                     ( TYPE type );
01457 extern void  fei_uminus                   ( TYPE type );
01458 extern void  fei_mult                     ( TYPE type );
01459 extern void  fei_plus                     ( TYPE type );
01460 extern void  fei_minus                    ( TYPE type );
01461 extern void  fei_div                      ( TYPE type );
01462 extern void  fei_mod                      ( TYPE type );
01463 extern void  fei_lt                       ( TYPE type );
01464 extern void  fei_eqv                      ( TYPE type );
01465 extern void  fei_leqv                     ( TYPE type );
01466 extern void  fei_eq                       ( TYPE type );
01467 extern void  fei_gt                       ( TYPE type );
01468 extern void  fei_or                       ( TYPE type );
01469 extern void  fei_lor                      ( TYPE type );
01470 extern void  fei_ge                       ( TYPE type );
01471 extern void  fei_ne                       ( TYPE type );
01472 extern void  fei_le                       ( TYPE type );
01473 extern void  fei_xor                      ( TYPE type );
01474 extern void  fei_lxor                     ( TYPE type );
01475 extern void  fei_and                      ( TYPE type );
01476 extern void  fei_land                     ( TYPE type );
01477 extern void  fei_lshift                   ( TYPE type );
01478 extern void  fei_rshift                   ( TYPE type );
01479 extern void  fei_ashift                   ( TYPE type );
01480 extern void  fei_hw_rshift                ( TYPE type );
01481 extern void  fei_hw_lshift                ( TYPE type );
01482 extern void  fei_exponentiate             ( TYPE type );
01483 extern void  fei_complex                  ( TYPE type );
01484 extern void  fei_select                   ( TYPE type );
01485 extern void  fei_mbits                    ( TYPE type );
01486 extern void  fei_dshiftl                  ( TYPE type );
01487 extern void  fei_dshiftr                  ( TYPE type );
01488 extern void  fei_ranf                     ( TYPE type );
01489 extern void  fei_ranget                   ( TYPE type );
01490 extern void  fei_ranset                   ( TYPE type );
01491 extern void  fei_leadz                    ( TYPE type, TYPE arg );
01492 extern void  fei_poppar                   ( TYPE type, TYPE arg );
01493 extern void  fei_popcnt                   ( TYPE type, TYPE arg );
01494 extern void  fei_new_binop_cshift         ( TYPE type );
01495 extern void  fei_mvbits                   ( TYPE type );
01496 extern void  fei_ishftc                   ( TYPE type );
01497 extern void  fei_ibits                    ( TYPE type );
01498 extern void  fei__maxloc                  ( TYPE type );
01499 extern void  fei__minloc                  ( TYPE type );
01500 extern void  fei_backspace                ( void );
01501 extern void  fei_close                    ( void );
01502 extern void  fei_endfile                  ( void );
01503 extern void  fei_inquire                  ( void );
01504 extern void  fei_open                     ( void );
01505 extern void  fei_rewind                   ( void );
01506 extern void  fei_iotype                   ( void );
01507 extern void  fei_malloc                   ( void );
01508 extern void  fei_mfree                    ( void );
01509 extern INTPTR fei_namelist                ( char   *name_string,
01510                                             INT32  nitems,
01511                                             INTPTR idx ,
01512                                             INT32  in_model);
01513 
01514 extern INTPTR fei_interface               ( char   *name_string,
01515                                             INT32   nitems,
01516                                             INT32    kind_interface,
01517                                             INT32  is_imported);
01518 
01519 extern void  fei_gen_func_entry           (INTPTR   idx);
01520 
01521 extern void  fei_fcd                      ( TYPE type );
01522 extern void  fei_rrspace                  ( TYPE type );
01523 extern void  fei_modulo                   ( TYPE type );
01524 extern void  fei_scale                    ( TYPE type );
01525 extern void  fei_scan                     ( TYPE type );
01526 extern void  fei_set_exponent             ( TYPE type );
01527 extern void  fei_verify                   ( TYPE type );
01528 extern void  fei_space                    ( TYPE type );
01529 extern void  fei_adjustl                  ( TYPE type );
01530 extern void  fei_adjustr                  ( TYPE type );
01531 extern void  fei_doloop                   ( INT32 line );
01532 extern void  fei_dowhile                  ( void );
01533 extern void  fei_doforever                ( void );
01534 extern void  fei_enddo                    ( void );
01535 extern void  fei_new_select_case          ( INT64 low_value_pres,
01536                                             INT64 high_value_pres,
01537                                             INT32 case_follows );
01538 extern void  fei_new_select               ( INT32 num_cases,
01539                                             INT32 default_label_idx,
01540                                             INT32 last_label_idx );
01541 extern TYPE  fei_dope_vector              ( INT32 num_dims, 
01542                                             TYPE  base_type,
01543                                             INT32 flags );
01544 extern void  fei_dv_ptr_asg               ( void );
01545 extern void  fei_set_dv_hdr_fld           ( INT32 field );
01546 extern void  fei_get_dv_hdr_fld           ( INT32 field );
01547 extern void  fei_set_dv_low_bnd           ( INT32 dim );
01548 extern void  fei_set_dv_extent            ( INT32 dim );
01549 extern void  fei_set_dv_str_mult          ( INT32 dim );
01550 extern void  fei_get_dv_low_bnd           ( INT32 dim, INT32 expand );
01551 extern void  fei_get_dv_extent            ( INT32 dim, INT32 expand );
01552 extern void  fei_get_dv_str_mult          ( INT32 dim, INT32 expand );
01553 extern void  fei_dv_def                   ( INT32 num_dims );
01554 extern void  fei_all                      ( TYPE type );
01555 extern void  fei_any                      ( TYPE type );
01556 extern void  fei_count                    ( TYPE type );
01557 extern void  fei_cshift                   ( TYPE type );
01558 extern void  fei_dot_product              ( TYPE type );
01559 extern void  fei_dot_product_logical      ( TYPE type );
01560 extern void  fei_eoshift                  ( TYPE type );
01561 extern void  fei_matmul                   ( TYPE type );
01562 extern void  fei_maxloc                   ( TYPE type );
01563 extern void  fei_maxval                   ( TYPE type );
01564 extern void  fei_merge                    ( void );
01565 extern void  fei_minloc                   ( TYPE type );
01566 extern void  fei_minval                   ( TYPE type );
01567 extern void  fei_pack                     ( TYPE type );
01568 extern void  fei_premaxval                ( void );
01569 extern void  fei_preminval                ( void );
01570 extern void  fei_preproduct               ( void );
01571 extern void  fei_presum                   ( void );
01572 extern void  fei_product                  ( TYPE type );
01573 extern void  fei_reshape                  ( TYPE type );
01574 extern void  fei_scanmaxval               ( void );
01575 extern void  fei_scanminval               ( void );
01576 extern void  fei_scanproduct              ( void );
01577 extern void  fei_scansum                  ( void );
01578 extern void  fei_spread                   ( TYPE type );
01579 extern void  fei_sum                      ( TYPE type );
01580 extern void  fei_transpose                ( TYPE type );
01581 extern void  fei_unpack                   ( TYPE type );
01582 extern void  fei_fpclass                  ( TYPE type );
01583 extern void  fei_signbit                  ( void );
01584 extern void  fei_isfinite                 ( TYPE type );
01585 extern void  fei_isnormal                 ( void );
01586 extern void  fei_isnan                    ( TYPE type );
01587 extern void  fei_isgreater                ( void );
01588 extern void  fei_isgeq                    ( void );
01589 extern void  fei_isless                   ( void );
01590 extern void  fei_isleq                    ( void );
01591 extern void  fei_islg                     ( TYPE type );
01592 extern void  fei_isunordered              ( TYPE type );
01593 extern void  fei_get_all_estat            ( void );
01594 extern void  fei_set_all_estat            ( void );
01595 extern void  fei_test_estat               ( void );
01596 extern void  fei_set_estat                ( void );
01597 extern void  fei_get_interupt             ( void );
01598 extern void  fei_set_interupt             ( void );
01599 extern void  fei_test_interupt            ( void );
01600 extern void  fei_enbl_interupt            ( void );
01601 extern void  fei_dsbl_interupt            ( void );
01602 extern void  fei_get_rmode                ( void );
01603 extern void  fei_set_rmode                ( void );
01604 extern void  fei_scalb                    ( TYPE type );
01605 extern void  fei_nextafter                ( TYPE type );
01606 extern void  fei_set_ieee_stat            ( void );
01607 extern void  fei_remainder                ( TYPE type );
01608 extern void  fei_logb                     ( TYPE type );
01609 extern void  fei_ieee_round               ( TYPE type );
01610 extern void  fei_ieee_trunc               ( TYPE type );
01611 extern void  fei_fort_reset               ( void );
01612 extern void  fei_copyin_bound             ( INTPTR sym_idx );
01613 extern INT32 eval_npex                    ( INT32 npdx, INT32 n_pes_val );
01614 extern void  npex_constant                ( INT32 cdx );
01615 extern void  npex_div                     ( void );
01616 extern INT32 npex_end                     ( void );
01617 extern void  npex_init                    ( void );
01618 extern void  npex_minus                   ( void );
01619 extern void  npex_mult                    ( void );
01620 extern void  npex_npes                    ( void );
01621 extern void  npex_plus                    ( void );
01622 extern void  npex_shiftl                  ( void );
01623 extern void  npex_shiftr                  ( void );
01624 extern void  npex_mod                     ( void );
01625 extern void  npex_min                     ( void );
01626 extern void  npex_max                     ( void );
01627 extern void  npex_uminus                  ( void );
01628 extern INT32 npex_to_dex                  ( INT32 npdx );
01629 extern void  npex_to_expr                 ( INT32 npdx );
01630 extern void  npex_dex_sync                ( void );
01631 extern void  npex_print                   ( INT32 npdx );
01632 extern void  npex_paren                   ( void );
01633 extern void  npex_push                    ( INT32 npdx );
01634 extern void  fei_numargs                  ( TYPE  type );
01635 const  char *opt_vers_name                ( void );
01636 const  char *opt_vers_ID                  ( void );
01637 const  char *opt_vers_number              ( void );
01638 
01639 
01640 extern void  fei_debug_mif_type_idx       ( INT32 st_idx, 
01641                                             INT32 mif_type_idx,
01642                                             INT32 mif_table_type );
01643 extern void  fei_debug_obj                ( INT32 idx, 
01644                                             INT32 flags,
01645                                             INT32 classs, 
01646                                             char *name,
01647                                             INT32 insttype, 
01648                                             INT32 members,
01649                                             INT32 numinherit,
01650                                             INT32 firstobj );
01651 extern void  fei_debug_objmem             ( INT32 idx, 
01652                                             INT32 flags,
01653                                             INT32 visibility, 
01654                                             INT32 next,
01655                                             char *name );
01656 
01657 extern INT32 fei_debug_obj_inherit        ( INT32 objidx,
01658                                             INT32 visibility );
01659 
01660 extern void  fei_debug_scope_info         ( INT32 seg_idx, 
01661                                             INT32 start_line,
01662                                             INT32 end_line );
01663 
01664 extern void  fei_debug_type               ( INT32 idx, 
01665                                             INT32 flags,
01666                                             INT32 classs, 
01667                                             INT32 base,
01668                                             INT32 list, 
01669                                             char *name );
01670 
01671 extern void  fei_debug_sym2               ( INT32 idx, 
01672                                             char *name,
01673                                             INT32 next, 
01674                                             INT64 evalue );
01675 
01676 extern void fei_return_addr               ( TYPE result_type );
01677 
01678 extern void PDGCS_mpp_init                ( char        *src_fname,
01679                                             char  *cwd,
01680                                             FILE        *cif_ptr,
01681                                             char        *cmd_line,
01682                                             INT32        mpp_info_flgs,
01683                                             INT32        n_pes_val,
01684                                             INT32        num_barriers,
01685                                             INT32        num_eurekas,
01686                                             INT32        partition_type );
01687 extern void fei_nullify (INT32 listnum);
01688 
01689 extern void fei_init_global_vars();
01690 extern void fei_set_in_interface_processing();
01691 extern void fei_reset_in_interface_processing();
01692 
01693 typedef struct          type_descriptor pdg_type_tbl_type;
01694 
01695 
01696 
01697 # ifdef __cplusplus
01698 }
01699 # endif 
01700 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines