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