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
00044
00045
00046
00047
00048
00049
00050
00051 enum addr_mode_values {Addr_Full,
00052 Addr_Fast };
00053
00054 enum comp_phase_values {Cmdline_Parsing,
00055 Pass1_Parsing,
00056 Lex_Parsing,
00057 Decl_Semantics,
00058 Pass2_Semantics,
00059 Inlining,
00060 Pdg_Conversion
00061 };
00062
00063 enum convert_to_string_values {Dont_Care,
00064 Binary_Fmt,
00065 Octal_Fmt,
00066 Hex_Fmt,
00067 Character_Fmt
00068 };
00069
00070 enum basic_type_values {Integer,
00071 Logical,
00072 Real,
00073 Complex,
00074 CRI_Ptr,
00075 CRI_Parcel_Ptr,
00076 CRI_Ch_Ptr,
00077 Typeless,
00078 Character,
00079 Structure,
00080 Num_Basic_Types,
00081 Last_Linear_Type = CRI_Ch_Ptr
00082 };
00083
00084 enum debug_lvl_values {Debug_Lvl_0,
00085 Debug_Lvl_1,
00086 Debug_Lvl_2,
00087 Debug_Lvl_3,
00088 No_Debugging
00089 };
00090
00091 enum expr_mode_values {Initialization_Expr,
00092 Specification_Expr,
00093 Stmt_Func_Expr,
00094 Data_Stmt_Target,
00095 Data_Stmt_Target_Expr,
00096 Restricted_Imp_Do_Target,
00097 Restricted_Imp_Do_Expr,
00098 Regular_Expr
00099 };
00100
00101 enum fld_values {NO_Tbl_Idx,
00102 CN_Tbl_Idx,
00103 SB_Tbl_Idx,
00104 IL_Tbl_Idx,
00105 AT_Tbl_Idx,
00106 SH_Tbl_Idx,
00107 IR_Tbl_Idx
00108 };
00109
00110 enum fortran_type_values {Fortran_Integer,
00111 Fortran_Logical,
00112 Fortran_Real,
00113 Fortran_Double,
00114 Fortran_Complex,
00115 Fortran_Double_Complex,
00116 Fortran_Character,
00117 Fortran_Typeless,
00118 Num_Fortran_Types
00119 };
00120
00121 enum tasking_scope_values {Priv, Shared};
00122 typedef enum tasking_scope_values task_scope_type;
00123
00124
00125
00126
00127
00128
00129
00130 enum forward_ref_values {From_Assign_Stmt,
00131 From_Do_Stmt,
00132 To_Format_Stmt
00133 };
00134
00135
00136
00137
00138
00139
00140 enum glb_tbl_idx_values {Allocate_Attr_Idx,
00141 Argchck_Attr_Idx,
00142 Backspace_Attr_Idx,
00143 Buffer_In_Attr_Idx,
00144 Buffer_Out_Attr_Idx,
00145 Close_Attr_Idx,
00146 Dealloc_Attr_Idx,
00147 Deallocate_Attr_Idx,
00148 End_Attr_Idx,
00149 Endfile_Attr_Idx,
00150 Inquire_Attr_Idx,
00151 Main_Attr_Idx,
00152 Open_Attr_Idx,
00153 Pause_Attr_Idx,
00154 Realloc_Attr_Idx,
00155 Rewind_Attr_Idx,
00156 Stop_Attr_Idx,
00157 Conform_Attr_Idx,
00158 Bounds_Attr_Idx,
00159 Rbounds_Attr_Idx,
00160 Sbounds_Attr_Idx,
00161 Ptr_Chk_Attr_Idx,
00162 Pe_Offset_Attr_Idx,
00163 Set_Numthreads_Attr_Idx,
00164 #ifdef KEY
00165 Copyin_Attr_Idx,
00166 Copyout_Attr_Idx,
00167 #endif
00168 #ifdef KEY
00169 Ieee_Save_Attr_Idx,
00170 Ieee_Restore_Attr_Idx,
00171 #endif
00172 #ifdef KEY
00173 Assign_Allocatable_Idx,
00174 #endif
00175 Num_Glb_Tbl_Idxs
00176 };
00177
00178
00179 enum inline_lvl_values {Inline_Lvl_0,
00180 Inline_Lvl_1,
00181 Inline_Lvl_2,
00182 Inline_Lvl_3,
00183 Inline_Lvl_4,
00184 Inline_Lvl_Err };
00185
00186 enum short_circuit_lvl_values {Short_Circuit_Off,
00187 Short_Circuit_Present,
00188 Short_Circuit_Left_Right,
00189 Short_Circuit_Functions};
00190
00191 typedef enum short_circuit_lvl_values short_circuit_lvl_type;
00192
00193 enum sgi_inline_state_values {Not_Specified_Sgi,
00194 Inline_Sgi,
00195 Noinline_Sgi };
00196
00197 typedef enum sgi_inline_state_values sgi_inline_state_type;
00198
00199 #ifdef KEY
00200
00201
00202 enum intrinsic_family {
00203 EVERY_FAMILY = 1,
00204 ANSI_FAMILY = 2,
00205 PGI_FAMILY = 4,
00206 G77_FAMILY = 8,
00207 OMP_FAMILY = 16,
00208 TRADITIONAL_FAMILY = 32
00209 };
00210
00211
00212 typedef struct {
00213 char *name;
00214 unsigned mask;
00215 } intrin_family_t;
00216 extern intrin_family_t intrin_families[];
00217 extern int SIZEOF_INTRIN_FAMILIES;
00218 #endif
00219
00220 enum intrinsic_values {Unknown_Intrinsic,
00221 Abs_Intrinsic,
00222 Achar_Intrinsic,
00223 Acos_Intrinsic,
00224 Acosd_Intrinsic,
00225 Add_And_Fetch_Intrinsic,
00226 Adjustl_Intrinsic,
00227 Adjustr_Intrinsic,
00228 Aimag_Intrinsic,
00229 Aint_Intrinsic,
00230 All_Intrinsic,
00231 Allocated_Intrinsic,
00232 Alog_Intrinsic,
00233 Alog10_Intrinsic,
00234 Amax0_Intrinsic,
00235 Amax1_Intrinsic,
00236 Amin0_Intrinsic,
00237 Amin1_Intrinsic,
00238 Amod_Intrinsic,
00239 And_Intrinsic,
00240 And_And_Fetch_Intrinsic,
00241 Anint_Intrinsic,
00242 Any_Intrinsic,
00243 Asin_Intrinsic,
00244 Asind_Intrinsic,
00245 Associated_Intrinsic,
00246 Atan_Intrinsic,
00247 Atan2_Intrinsic,
00248 Atan2d_Intrinsic,
00249 Atand_Intrinsic,
00250 Bitest_Intrinsic,
00251 Bit_Size_Intrinsic,
00252 Bjtest_Intrinsic,
00253 Bktest_Intrinsic,
00254 Btest_Intrinsic,
00255 Cabs_Intrinsic,
00256 Ccos_Intrinsic,
00257 Cdabs_Intrinsic,
00258 Cdcos_Intrinsic,
00259 Cdexp_Intrinsic,
00260 Cdlog_Intrinsic,
00261 Cdsin_Intrinsic,
00262 Cdsqrt_Intrinsic,
00263 Ceiling_Intrinsic,
00264 Cexp_Intrinsic,
00265 Char_Intrinsic,
00266 Clear_Ieee_Exception_Intrinsic,
00267 Cloc_Intrinsic,
00268 Clock_Intrinsic,
00269 Clog_Intrinsic,
00270 Cmplx_Intrinsic,
00271 Compare_And_Swap_Intrinsic,
00272 Compl_Intrinsic,
00273 Conjg_Intrinsic,
00274 Cos_Intrinsic,
00275 Cosd_Intrinsic,
00276 Cosh_Intrinsic,
00277 Cot_Intrinsic,
00278 Count_Intrinsic,
00279 Cputime_Intrinsic,
00280 Cqabs_Intrinsic,
00281 Cqcos_Intrinsic,
00282 Cqexp_Intrinsic,
00283 Cqlog_Intrinsic,
00284 Cqsin_Intrinsic,
00285 Cqsqrt_Intrinsic,
00286 Cshift_Intrinsic,
00287 Csin_Intrinsic,
00288 Csmg_Intrinsic,
00289 Csqrt_Intrinsic,
00290 Cvmgm_Intrinsic,
00291 Cvmgn_Intrinsic,
00292 Cvmgp_Intrinsic,
00293 Cvmgt_Intrinsic,
00294 Cvmgz_Intrinsic,
00295 #ifdef KEY
00296 C_F_Pointer_Intrinsic,
00297 C_F_Procpointer_Intrinsic,
00298 C_Funloc_Intrinsic,
00299 C_Loc_Iso_Intrinsic,
00300 #endif
00301 C_Loc_Intrinsic,
00302 Dabs_Intrinsic,
00303 Dacos_Intrinsic,
00304 Dacosd_Intrinsic,
00305 Dasin_Intrinsic,
00306 Dasind_Intrinsic,
00307 Datan_Intrinsic,
00308 Datan2_Intrinsic,
00309 Datan2d_Intrinsic,
00310 Datand_Intrinsic,
00311 Date_Intrinsic,
00312 Date_And_Time_Intrinsic,
00313 Dble_Intrinsic,
00314 Dbleq_Intrinsic,
00315 Dcmplx_Intrinsic,
00316 Dconjg_Intrinsic,
00317 Dcos_Intrinsic,
00318 Dcosd_Intrinsic,
00319 Dcosh_Intrinsic,
00320 Dcot_Intrinsic,
00321 Ddim_Intrinsic,
00322 #ifdef KEY
00323 Derf_Intrinsic,
00324 Derfc_Intrinsic,
00325 #endif
00326 Dexp_Intrinsic,
00327 Dfloat_Intrinsic,
00328 Dfloati_Intrinsic,
00329 Dfloatj_Intrinsic,
00330 Dfloatk_Intrinsic,
00331 Digits_Intrinsic,
00332 Dim_Intrinsic,
00333 Dimag_Intrinsic,
00334 Dint_Intrinsic,
00335 Disable_Ieee_Interrupt_Intrinsic,
00336 Dlog_Intrinsic,
00337 Dlog10_Intrinsic,
00338 Dmax1_Intrinsic,
00339 Dmin1_Intrinsic,
00340 Dmod_Intrinsic,
00341 Dnint_Intrinsic,
00342 Dot_Product_Intrinsic,
00343 Dprod_Intrinsic,
00344 Dreal_Intrinsic,
00345 Dshiftl_Intrinsic,
00346 Dshiftr_Intrinsic,
00347 Dsign_Intrinsic,
00348 Dsin_Intrinsic,
00349 Dsind_Intrinsic,
00350 Dsinh_Intrinsic,
00351 DSM_Chunksize_Intrinsic,
00352 DSM_Distribution_Block_Intrinsic,
00353 DSM_Distribution_Cyclic_Intrinsic,
00354 DSM_Distribution_Star_Intrinsic,
00355 DSM_Isdistributed_Intrinsic,
00356 DSM_Isreshaped_Intrinsic,
00357 DSM_Numchunks_Intrinsic,
00358 DSM_Numthreads_Intrinsic,
00359 DSM_Rem_Chunksize_Intrinsic,
00360 DSM_This_Chunksize_Intrinsic,
00361 DSM_This_Startingindex_Intrinsic,
00362 DSM_This_Threadnum_Intrinsic,
00363 Dsqrt_Intrinsic,
00364 Dtan_Intrinsic,
00365 Dtand_Intrinsic,
00366 Dtanh_Intrinsic,
00367 # ifdef KEY
00368 Dtime_Intrinsic,
00369 # endif
00370 Enable_Ieee_Interrupt_Intrinsic,
00371 Eoshift_Intrinsic,
00372 Epsilon_Intrinsic,
00373 Eqv_Intrinsic,
00374 #ifdef KEY
00375 Erf_Intrinsic,
00376 Erfc_Intrinsic,
00377 #endif
00378 #ifdef KEY
00379 Etime_Intrinsic,
00380 #endif
00381 Exit_Intrinsic,
00382 Exp_Intrinsic,
00383 Exponent_Intrinsic,
00384 Fcd_Intrinsic,
00385 # ifdef KEY
00386 Fdate_Intrinsic,
00387 # endif
00388 Fetch_And_Add_Intrinsic,
00389 Fetch_And_And_Intrinsic,
00390 Fetch_And_Nand_Intrinsic,
00391 Fetch_And_Or_Intrinsic,
00392 Fetch_And_Sub_Intrinsic,
00393 Fetch_And_Xor_Intrinsic,
00394 Float_Intrinsic,
00395 Floati_Intrinsic,
00396 Floatj_Intrinsic,
00397 Floatk_Intrinsic,
00398 Floor_Intrinsic,
00399 # ifdef KEY
00400 Fnum_Intrinsic,
00401 # endif
00402 Fp_Class_Intrinsic,
00403 Fraction_Intrinsic,
00404 Free_Intrinsic,
00405 #ifdef KEY
00406 Fstat_Intrinsic,
00407 #endif
00408 Getpos_Intrinsic,
00409 Get_Ieee_Exceptions_Intrinsic,
00410 Get_Ieee_Interrupts_Intrinsic,
00411 Get_Ieee_Rounding_Mode_Intrinsic,
00412 Get_Ieee_Status_Intrinsic,
00413 Huge_Intrinsic,
00414 Iabs_Intrinsic,
00415 Iachar_Intrinsic,
00416 Iand_Intrinsic,
00417 Ibchng_Intrinsic,
00418 Ibclr_Intrinsic,
00419 Ibits_Intrinsic,
00420 Ibset_Intrinsic,
00421 Ichar_Intrinsic,
00422 Idate_Intrinsic,
00423 Idim_Intrinsic,
00424 Idint_Intrinsic,
00425 Idnint_Intrinsic,
00426 Ieee_Binary_Scale_Intrinsic,
00427 Ieee_Class_Intrinsic,
00428 Ieee_Copy_Sign_Intrinsic,
00429 Ieee_Exponent_Intrinsic,
00430 Ieee_Finite_Intrinsic,
00431 Ieee_Int_Intrinsic,
00432 Ieee_Is_Nan_Intrinsic,
00433 Ieee_Next_After_Intrinsic,
00434 Ieee_Real_Intrinsic,
00435 Ieee_Remainder_Intrinsic,
00436 Ieee_Unordered_Intrinsic,
00437 Ieor_Intrinsic,
00438 Ifix_Intrinsic,
00439 Iiabs_Intrinsic,
00440 Iiand_Intrinsic,
00441 Iibchng_Intrinsic,
00442 Iibclr_Intrinsic,
00443 Iibits_Intrinsic,
00444 Iibset_Intrinsic,
00445 Iidim_Intrinsic,
00446 Iidint_Intrinsic,
00447 Iieor_Intrinsic,
00448 Iifix_Intrinsic,
00449 Iint_Intrinsic,
00450 Iior_Intrinsic,
00451 Iiqint_Intrinsic,
00452 Iisha_Intrinsic,
00453 Iishc_Intrinsic,
00454 Iishft_Intrinsic,
00455 Iishftc_Intrinsic,
00456 Iishl_Intrinsic,
00457 Iisign_Intrinsic,
00458 Ilen_Intrinsic,
00459 Imag_Intrinsic,
00460 Imod_Intrinsic,
00461 Imvbits_Intrinsic,
00462 Index_Intrinsic,
00463 Inint_Intrinsic,
00464 Inot_Intrinsic,
00465 Int_Intrinsic,
00466 Int1_Intrinsic,
00467 Int2_Intrinsic,
00468 Int4_Intrinsic,
00469 Int8_Intrinsic,
00470 Int_Mult_Upper_Intrinsic,
00471 Ior_Intrinsic,
00472 Iqint_Intrinsic,
00473 Iqnint_Intrinsic,
00474 Irtc_Intrinsic,
00475 Isha_Intrinsic,
00476 Ishc_Intrinsic,
00477 Ishft_Intrinsic,
00478 Ishftc_Intrinsic,
00479 Ishl_Intrinsic,
00480 Isign_Intrinsic,
00481 Isnan_Intrinsic,
00482 Jdate_Intrinsic,
00483 Jiabs_Intrinsic,
00484 Jiand_Intrinsic,
00485 Jibchng_Intrinsic,
00486 Jibclr_Intrinsic,
00487 Jibits_Intrinsic,
00488 Jibset_Intrinsic,
00489 Jidim_Intrinsic,
00490 Jidint_Intrinsic,
00491 Jieor_Intrinsic,
00492 Jifix_Intrinsic,
00493 Jint_Intrinsic,
00494 Jior_Intrinsic,
00495 Jiqint_Intrinsic,
00496 Jisha_Intrinsic,
00497 Jishc_Intrinsic,
00498 Jishft_Intrinsic,
00499 Jishftc_Intrinsic,
00500 Jishl_Intrinsic,
00501 Jisign_Intrinsic,
00502 Jmod_Intrinsic,
00503 Jmvbits_Intrinsic,
00504 Jnint_Intrinsic,
00505 Jnot_Intrinsic,
00506 Kiabs_Intrinsic,
00507 Kiand_Intrinsic,
00508 Kibchng_Intrinsic,
00509 Kibclr_Intrinsic,
00510 Kibits_Intrinsic,
00511 Kibset_Intrinsic,
00512 Kidim_Intrinsic,
00513 Kidint_Intrinsic,
00514 Kieor_Intrinsic,
00515 Kifix_Intrinsic,
00516 #ifdef KEY
00517 Kill_Intrinsic,
00518 #endif
00519 Kind_Intrinsic,
00520 Kint_Intrinsic,
00521 Kior_Intrinsic,
00522 Kiqint_Intrinsic,
00523 Kisha_Intrinsic,
00524 Kishc_Intrinsic,
00525 Kishft_Intrinsic,
00526 Kishftc_Intrinsic,
00527 Kishl_Intrinsic,
00528 Kisign_Intrinsic,
00529 Kmod_Intrinsic,
00530 Kmvbits_Intrinsic,
00531 Knint_Intrinsic,
00532 Knot_Intrinsic,
00533 Lbound_Intrinsic,
00534 Leadz_Intrinsic,
00535 Len_Intrinsic,
00536 Length_Intrinsic,
00537 Len_Trim_Intrinsic,
00538 Lge_Intrinsic,
00539 Lgt_Intrinsic,
00540 Lle_Intrinsic,
00541 Llt_Intrinsic,
00542 Loc_Intrinsic,
00543 Lock_Release_Intrinsic,
00544 Lock_Test_And_Set_Intrinsic,
00545 Log_Intrinsic,
00546 Log10_Intrinsic,
00547 Log2_Images_Intrinsic,
00548 Logical_Intrinsic,
00549 Long_Intrinsic,
00550 Lshift_Intrinsic,
00551 Mclr_Intrinsic,
00552 Mld_Intrinsic,
00553 Mldmx_Intrinsic,
00554 Mmx_Intrinsic,
00555 Mul_Intrinsic,
00556 Malloc_Intrinsic,
00557 Mask_Intrinsic,
00558 Matmul_Intrinsic,
00559 Max_Intrinsic,
00560 Max0_Intrinsic,
00561 Max1_Intrinsic,
00562 Maxexponent_Intrinsic,
00563 Maxloc_Intrinsic,
00564 Maxval_Intrinsic,
00565 Memory_Barrier_Intrinsic,
00566 Merge_Intrinsic,
00567 Min_Intrinsic,
00568 Min0_Intrinsic,
00569 Min1_Intrinsic,
00570 Minexponent_Intrinsic,
00571 Minloc_Intrinsic,
00572 Minval_Intrinsic,
00573 Mod_Intrinsic,
00574 Modulo_Intrinsic,
00575 Mvbits_Intrinsic,
00576 My_Pe_Intrinsic,
00577 Nand_And_Fetch_Intrinsic,
00578 Nearest_Intrinsic,
00579 Neqv_Intrinsic,
00580 Nint_Intrinsic,
00581 Not_Intrinsic,
00582 Null_Intrinsic,
00583 Numarg_Intrinsic,
00584 Num_Images_Intrinsic,
00585 #ifdef KEY
00586 Omp_Destroy_Lock_Intrinsic,
00587 Omp_Destroy_Nest_Lock_Intrinsic,
00588 #endif
00589 Omp_Get_Dynamic_Intrinsic,
00590 Omp_Get_Max_Threads_Intrinsic,
00591 Omp_Get_Nested_Intrinsic,
00592 Omp_Get_Num_Procs_Intrinsic,
00593 Omp_Get_Num_Threads_Intrinsic,
00594 Omp_Get_Thread_Num_Intrinsic,
00595 #ifdef KEY
00596 Omp_Get_Wtick_Intrinsic,
00597 Omp_Get_Wtime_Intrinsic,
00598 Omp_Init_Lock_Intrinsic,
00599 Omp_Init_Nest_Lock_Intrinsic,
00600 #endif
00601 Omp_In_Parallel_Intrinsic,
00602 Omp_Set_Lock_Intrinsic,
00603 #ifdef KEY
00604 Omp_Set_Nest_Lock_Intrinsic,
00605 #endif
00606 Omp_Test_Lock_Intrinsic,
00607 #ifdef KEY
00608 Omp_Test_Nest_Lock_Intrinsic,
00609 #endif
00610 Omp_Unset_Lock_Intrinsic,
00611 #ifdef KEY
00612 Omp_Unset_Nest_Lock_Intrinsic,
00613 #endif
00614 Or_Intrinsic,
00615 Or_And_Fetch_Intrinsic,
00616 Pack_Intrinsic,
00617 Popcnt_Intrinsic,
00618 Poppar_Intrinsic,
00619 Precision_Intrinsic,
00620 Present_Intrinsic,
00621 Product_Intrinsic,
00622 Qabs_Intrinsic,
00623 Qacos_Intrinsic,
00624 Qacosd_Intrinsic,
00625 Qasin_Intrinsic,
00626 Qasind_Intrinsic,
00627 Qatan_Intrinsic,
00628 Qatan2_Intrinsic,
00629 Qatan2d_Intrinsic,
00630 Qatand_Intrinsic,
00631 Qcmplx_Intrinsic,
00632 Qcos_Intrinsic,
00633 Qcosd_Intrinsic,
00634 Qcosh_Intrinsic,
00635 Qcot_Intrinsic,
00636 Qdim_Intrinsic,
00637 Qexp_Intrinsic,
00638 Qext_Intrinsic,
00639 Qfloat_Intrinsic,
00640 Qfloati_Intrinsic,
00641 Qfloatj_Intrinsic,
00642 Qfloatk_Intrinsic,
00643 Qimag_Intrinsic,
00644 Qint_Intrinsic,
00645 Qlog_Intrinsic,
00646 Qlog10_Intrinsic,
00647 Qmod_Intrinsic,
00648 Qnint_Intrinsic,
00649 Qprod_Intrinsic,
00650 Qreal_Intrinsic,
00651 Qsign_Intrinsic,
00652 Qsin_Intrinsic,
00653 Qsind_Intrinsic,
00654 Qsinh_Intrinsic,
00655 Qsqrt_Intrinsic,
00656 Qtan_Intrinsic,
00657 Qtand_Intrinsic,
00658 Qtanh_Intrinsic,
00659 Radix_Intrinsic,
00660 Ran_Intrinsic,
00661 Random_Number_Intrinsic,
00662 Random_Seed_Intrinsic,
00663 Randu_Intrinsic,
00664 Ranf_Intrinsic,
00665 Range_Intrinsic,
00666 Ranget_Intrinsic,
00667 Ranset_Intrinsic,
00668 Readsm_Intrinsic,
00669 Real_Intrinsic,
00670 Remote_Write_Barrier_Intrinsic,
00671 Rem_Images_Intrinsic,
00672 Repeat_Intrinsic,
00673 Reshape_Intrinsic,
00674 Rrspacing_Intrinsic,
00675 Rshift_Intrinsic,
00676 Rtc_Intrinsic,
00677 Scale_Intrinsic,
00678 Scan_Intrinsic,
00679 SIK_Intrinsic,
00680 SRK_Intrinsic,
00681 Set_Exponent_Intrinsic,
00682 Set_Ieee_Exception_Intrinsic,
00683 Set_Ieee_Exceptions_Intrinsic,
00684 Set_Ieee_Interrupts_Intrinsic,
00685 Set_Ieee_Rounding_Mode_Intrinsic,
00686 Set_Ieee_Status_Intrinsic,
00687 Shape_Intrinsic,
00688 Shift_Intrinsic,
00689 Shifta_Intrinsic,
00690 Shiftl_Intrinsic,
00691 Shiftr_Intrinsic,
00692 Short_Intrinsic,
00693 Sign_Intrinsic,
00694 #ifdef KEY
00695 Signal_Intrinsic,
00696 #endif
00697 Sin_Intrinsic,
00698 Sind_Intrinsic,
00699 Sinh_Intrinsic,
00700 Size_Intrinsic,
00701 Sizeof_Intrinsic,
00702 Sngl_Intrinsic,
00703 Snglq_Intrinsic,
00704 Spacing_Intrinsic,
00705 Spread_Intrinsic,
00706 Sqrt_Intrinsic,
00707 #ifdef KEY
00708 Stat_Intrinsic,
00709 #endif
00710 Sub_And_Fetch_Intrinsic,
00711 Sum_Intrinsic,
00712 Synchronize_Intrinsic,
00713 Sync_Images_Intrinsic,
00714 System_Clock_Intrinsic,
00715 Tan_Intrinsic,
00716 Tand_Intrinsic,
00717 Tanh_Intrinsic,
00718 Test_Ieee_Exception_Intrinsic,
00719 Test_Ieee_Interrupt_Intrinsic,
00720 This_Image_Intrinsic,
00721 Time_Intrinsic,
00722 #ifdef KEY
00723 Time4_Intrinsic,
00724 Time8_Intrinsic,
00725 #endif
00726 Tiny_Intrinsic,
00727 Transfer_Intrinsic,
00728 Transpose_Intrinsic,
00729 Trim_Intrinsic,
00730 Ubound_Intrinsic,
00731 Unit_Intrinsic,
00732 Unpack_Intrinsic,
00733 Verify_Intrinsic,
00734 Write_Memory_Barrier_Intrinsic,
00735 Xor_Intrinsic,
00736 Xor_And_Fetch_Intrinsic,
00737 # ifdef KEY
00738 Zabs_Intrinsic,
00739 Zcos_Intrinsic,
00740 Zexp_Intrinsic,
00741 Zlog_Intrinsic,
00742 Zsin_Intrinsic,
00743 Zsqrt_Intrinsic,
00744 # endif
00745 #ifdef KEY
00746 Pathf90_Intrinsic,
00747 #endif
00748 #ifdef KEY
00749 True_Intrinsic,
00750 Support_Uflow_Intrinsic,
00751 #endif
00752 #ifdef KEY
00753 Newline_Intrinsic
00754 #endif
00755 };
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767 enum linear_type_values {Err_Res,
00768 Type_Void = Err_Res,
00769 Short_Char_Const,
00770 Short_Typeless_Const,
00771 Typeless_1,
00772 Typeless_2,
00773 Typeless_4,
00774 Typeless_8,
00775 Long_Typeless,
00776 Integer_1,
00777 Integer_2,
00778 Integer_4,
00779 Integer_8,
00780 Real_4,
00781 Real_8,
00782 Real_16,
00783 Complex_4,
00784 Complex_8,
00785 Complex_16,
00786 CRI_Ptr_8,
00787 Logical_1,
00788 Logical_2,
00789 Logical_4,
00790 Logical_8,
00791 Character_1,
00792 Character_2,
00793 Character_4,
00794 CRI_Ch_Ptr_8,
00795 Structure_Type,
00796 CRI_Parcel_Ptr_8,
00797 Num_Linear_Types
00798 };
00799
00800 enum msg_lvl_values {Comment_Lvl,
00801 Note_Lvl,
00802 Caution_Lvl,
00803 Warning_Lvl,
00804 Error_Lvl };
00805
00806
00807
00808
00809
00810
00811
00812 #ifdef KEY
00813
00814 #include "printmsg.h"
00815 #else
00816 enum msg_severities {Comment, Note, Caution,
00817 Warning, Error, Internal,
00818 Vector, Scalar, Table,
00819 Ansi, Log_Warning, Inline,
00820 Info, Tasking, Limit,
00821 Log_Error, Log_Summary, F77_Ansi,
00822 Optimization, Stream, Unknown_Error };
00823 #endif
00824
00825
00826
00827
00828
00829
00830
00831
00832
00833
00834
00835
00836 enum obj_values {Obj_Assum_Type_Ch, Obj_Expl_Shp_Arr,
00837 Obj_Assum_Size_Arr, Obj_Defrd_Shp_Arr,
00838 Obj_Assum_Shp_Arr, Obj_Co_Array,
00839 Obj_Allocatable,
00840 #ifdef KEY
00841 Obj_Bind, Obj_Value,
00842 #endif
00843 Obj_Constant,
00844 Obj_Intent, Obj_Optional,
00845 Obj_Private, Obj_Public,
00846 Obj_Target, Obj_Equiv,
00847 Obj_Saved, Obj_Automatic,
00848 Obj_Pointer, Obj_Dcl_Extern,
00849 Obj_Dcl_Intrin, Obj_Data_Init,
00850 Obj_Typed, Obj_Volatile,
00851
00852 Obj_Copy_Assumed_Shape, Obj_Auxiliary,
00853 Obj_Vfunction, Obj_No_Side_Effects,
00854 Obj_Symmetric, Obj_Inline,
00855 Obj_Ipa, Obj_Align_Symbol,
00856 Obj_Fill_Symbol, Obj_Section_Gp,
00857 Obj_Section_Non_Gp, Obj_Ignore_TKR,
00858 Obj_Optional_Dir, Obj_Name,
00859
00860 Obj_Cri_Ptr, Obj_Cri_Pointee,
00861 Obj_Cri_Ch_Pointee,
00862 Obj_Ntry_Func_Result, Obj_Dummy_Arg,
00863 Obj_Common_Obj, Obj_Namelist_Obj,
00864 Obj_Module_Proc, Obj_Derived_Type,
00865 Obj_Generic_Interface, Obj_Namelist_Grp,
00866 Obj_Stmt_Func, Obj_Construct,
00867 Obj_Entry_Func, Obj_Entry_Subr,
00868 Obj_Intern_Func, Obj_Intern_Subr,
00869 Obj_Module_Func, Obj_Module_Subr,
00870 Obj_Sf_Darg,
00871 Obj_Name_Done = Obj_Sf_Darg,
00872
00873 Obj_Sf_Actual_Arg, Obj_Var_Len_Ch,
00874 Obj_Var_Len_Arr, Obj_Sym_Constant_Arr,
00875 Obj_Interface_Func, Obj_Interface_Subr,
00876 Obj_Use_Extern_Func, Obj_Use_Extern_Subr,
00877 Obj_Use_In_Expr, Obj_Use_Derived_Type,
00878 Obj_Use_Spec_Expr, Obj_Use_Init_Expr,
00879 Obj_Done };
00880
00881
00882
00883
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894 enum operator_values { Null_Opr,
00895
00896 Defined_Un_Opr,
00897
00898 Alloc_Opr,
00899 SSD_Alloc_Opr,
00900 Cvrt_Opr,
00901 Dealloc_Opr,
00902 Power_Opr,
00903 Mult_Opr,
00904 Div_Opr,
00905 Uplus_Opr,
00906 Uminus_Opr,
00907 Plus_Opr,
00908 Minus_Opr,
00909 Concat_Opr,
00910 Eq_Opr,
00911 Ne_Opr,
00912 Lt_Opr,
00913 Le_Opr,
00914 Gt_Opr,
00915 Ge_Opr,
00916 Not_Opr,
00917 Bnot_Opr,
00918 And_Opr,
00919 Or_Opr,
00920 Bor_Opr,
00921 Eqv_Opr,
00922
00923
00924
00925
00926
00927 Beqv_Opr,
00928 Neqv_Opr,
00929 Bneqv_Opr,
00930 Abs_Opr,
00931 Cos_Opr,
00932 Sin_Opr,
00933 Log_E_Opr,
00934 Log_10_Opr,
00935 Tan_Opr,
00936 Tanh_Opr,
00937 Sinh_Opr,
00938 Acos_Opr,
00939 Asin_Opr,
00940 Atan_Opr,
00941 Cosh_Opr,
00942 Atan2_Opr,
00943 Aimag_Opr,
00944 Sqrt_Opr,
00945 Cot_Opr,
00946 Exp_Opr,
00947 Int_Opr,
00948 Band_Opr,
00949 Mod_Opr,
00950 Anint_Opr,
00951 Nint_Opr,
00952
00953
00954
00955
00956
00957 Sign_Opr,
00958 Modulo_Opr,
00959 Shift_Opr,
00960 Shiftl_Opr,
00961 Shiftr_Opr,
00962 Leadz_Opr,
00963 Popcnt_Opr,
00964 Poppar_Opr,
00965 Aint_Opr,
00966 Dim_Opr,
00967 Ranget_Opr,
00968 Ranset_Opr,
00969 Ranf_Opr,
00970 Real_Opr,
00971 Dble_Opr,
00972 Mask_Opr,
00973 Conjg_Opr,
00974 Dprod_Opr,
00975 I24mult_Opr,
00976 Length_Opr,
00977 Getpos_Opr,
00978 Unit_Opr,
00979 Cmplx_Opr,
00980 Ichar_Opr,
00981 Char_Opr,
00982
00983
00984
00985
00986
00987 Lint_Opr,
00988 Index_Opr,
00989 Lge_Opr,
00990 Lgt_Opr,
00991 Lle_Opr,
00992 Llt_Opr,
00993 Fcd_Opr,
00994 Numarg_Opr,
00995 Rtc_Opr,
00996 Cvmgp_Opr,
00997 Cvmgm_Opr,
00998 Cvmgz_Opr,
00999 Cvmgn_Opr,
01000 Cvmgt_Opr,
01001 Csmg_Opr,
01002 Adjustl_Opr,
01003 Adjustr_Opr,
01004 Ceiling_Opr,
01005 Exponent_Opr,
01006 Floor_Opr,
01007 Fraction_Opr,
01008 Spacing_Opr,
01009 Logical_Opr,
01010 Nearest_Opr,
01011 Rrspacing_Opr,
01012
01013
01014
01015
01016
01017 Scale_Opr,
01018 Scan_Opr,
01019 Set_Exponent_Opr,
01020 Verify_Opr,
01021 Len_Trim_Opr,
01022 Dshiftl_Opr,
01023 Dshiftr_Opr,
01024 Mmx_Opr,
01025 Mldmx_Opr,
01026 Mld_Opr,
01027 Mul_Opr,
01028 Mcbl_Opr,
01029 Cshift_Opr,
01030 Dot_Product_Opr,
01031 Matmul_Opr,
01032 Spread_Opr,
01033 Transpose_Opr,
01034 All_Opr,
01035 Any_Opr,
01036 Count_Opr,
01037 Product_Opr,
01038 Sum_Opr,
01039 Eoshift_Opr,
01040 Maxval_Opr,
01041 Minval_Opr,
01042
01043
01044
01045
01046
01047 Maxloc_Opr,
01048 Minloc_Opr,
01049 Reshape_Opr,
01050 SRK_Opr,
01051 SIK_Opr,
01052 Repeat_Opr,
01053 Trim_Opr,
01054 Transfer_Opr,
01055
01056 Defined_Bin_Opr,
01057
01058 Asg_Opr,
01059 Call_Opr,
01060 Alt_Return_Opr,
01061 Case_Opr,
01062 Allocate_Opr,
01063 Deallocate_Opr,
01064 End_Opr,
01065 Entry_Opr,
01066 Nullify_Opr,
01067 Pause_Opr,
01068 Ptr_Asg_Opr,
01069 Flat_Array_Asg_Opr,
01070 Return_Opr,
01071 Select_Opr,
01072 Stmt_Func_Call_Opr,
01073 Stop_Opr,
01074
01075
01076
01077
01078
01079 Max_Opr,
01080 Min_Opr,
01081
01082 Read_Formatted_Opr,
01083 Read_Unformatted_Opr,
01084 Read_Namelist_Opr,
01085 Write_Formatted_Opr,
01086 Write_Unformatted_Opr,
01087 Write_Namelist_Opr,
01088 Inquire_Iolength_Opr,
01089
01090
01091
01092
01093
01094
01095
01096 Dv_Whole_Copy_Opr,
01097 Dv_Whole_Def_Opr,
01098 Dv_Def_Asg_Opr,
01099 Dv_Deref_Opr,
01100 Dv_Access_Base_Addr,
01101 Dv_Set_Base_Addr,
01102 Dv_Access_El_Len,
01103 Dv_Set_El_Len,
01104 Dv_Access_Assoc,
01105 Dv_Set_Assoc,
01106 Dv_Access_Ptr_Alloc,
01107 Dv_Set_Ptr_Alloc,
01108 Dv_Access_P_Or_A,
01109 Dv_Set_P_Or_A,
01110 Dv_Access_A_Contig,
01111 Dv_Set_A_Contig,
01112
01113
01114
01115
01116
01117 Dv_Access_N_Dim,
01118 Dv_Set_N_Dim,
01119 Dv_Access_Typ_Code,
01120 Dv_Set_Typ_Code,
01121 Dv_Access_Orig_Base,
01122 Dv_Set_Orig_Base,
01123 Dv_Access_Orig_Size,
01124 Dv_Set_Orig_Size,
01125
01126
01127
01128 Dv_Access_Low_Bound,
01129 Dv_Set_Low_Bound,
01130 Dv_Access_Extent,
01131 Dv_Set_Extent,
01132 Dv_Access_Stride_Mult,
01133 Dv_Set_Stride_Mult,
01134
01135 Br_Aif_Opr,
01136 Br_Asg_Opr,
01137 Br_Index_Opr,
01138 Br_True_Opr,
01139 Br_Uncond_Opr,
01140
01141 Case_Range_Opr,
01142 Implied_Do_Opr,
01143 Kwd_Opr,
01144 Percent_Val_Opr,
01145 Loc_Opr,
01146 Aloc_Opr,
01147
01148
01149
01150
01151
01152 Const_Tmp_Loc_Opr,
01153 Present_Opr,
01154 Argchck_Present_Opr,
01155 Argchck_Loc_Opr,
01156 Len_Opr,
01157 Clen_Opr,
01158 Paren_Opr,
01159 Struct_Opr,
01160 Struct_Construct_Opr,
01161 Array_Construct_Opr,
01162 Constant_Struct_Construct_Opr,
01163 Constant_Array_Construct_Opr,
01164 Subscript_Opr,
01165 Whole_Subscript_Opr,
01166 Section_Subscript_Opr,
01167 Alloc_Obj_Opr,
01168 Dealloc_Obj_Opr,
01169 Substring_Opr,
01170 Whole_Substring_Opr,
01171 Triplet_Opr,
01172 Label_Opr,
01173 Loop_Info_Opr,
01174 Loop_End_Opr,
01175 Init_Opr,
01176 Init_Reloc_Opr,
01177
01178
01179
01180
01181
01182 Use_Opr,
01183 Where_Opr,
01184 Real_Div_To_Int_Opr,
01185 Readsm_Opr,
01186 Memory_Barrier_Opr,
01187 Remote_Write_Barrier_Opr,
01188 Write_Memory_Barrier_Opr,
01189
01190 Suppress_Opr,
01191
01192 Align_Cdir_Opr,
01193 Bl_Cdir_Opr,
01194 Bounds_Cdir_Opr,
01195 Cachealign_Cdir_Opr,
01196 Inline_Cdir_Opr,
01197 Ivdep_Cdir_Opr,
01198 Nextscalar_Cdir_Opr,
01199 Nobl_Cdir_Opr,
01200 Nobounds_Cdir_Opr,
01201 Noinline_Cdir_Opr,
01202 Norecurrence_Cdir_Opr,
01203 Nosplit_Cdir_Opr,
01204 Notask_Cdir_Opr,
01205 Nounroll_Cdir_Opr,
01206 Novector_Cdir_Opr,
01207 Novsearch_Cdir_Opr,
01208 Prefertask_Cdir_Opr,
01209
01210
01211
01212
01213
01214 Prefervector_Cdir_Opr,
01215 Recurrence_Cdir_Opr,
01216 Shortloop_Cdir_Opr,
01217 Shortloop128_Cdir_Opr,
01218 Split_Cdir_Opr,
01219 Task_Cdir_Opr,
01220 Unroll_Cdir_Opr,
01221 Vector_Cdir_Opr,
01222 Vsearch_Cdir_Opr,
01223
01224 Case_Cmic_Opr,
01225 Endcase_Cmic_Opr,
01226 Cncall_Cmic_Opr,
01227 Continue_Cmic_Opr,
01228 Doall_Cmic_Opr,
01229 Doparallel_Cmic_Opr,
01230 Enddo_Cmic_Opr,
01231 Guard_Cmic_Opr,
01232 Endguard_Cmic_Opr,
01233 REMOVED_Opr,
01234 Numcpus_Cmic_Opr,
01235 Parallel_Cmic_Opr,
01236 Endparallel_Cmic_Opr,
01237 Permutation_Cmic_Opr,
01238 Taskcommon_Cmic_Opr,
01239 Wait_Cmic_Opr,
01240
01241
01242
01243
01244
01245 Send_Cmic_Opr,
01246
01247 My_Pe_Opr,
01248
01249 Ieee_Unordered_Opr,
01250 Ieee_Next_After_Opr,
01251 Ieee_Remainder_Opr,
01252 Ieee_Exponent_Opr,
01253 Ieee_Copy_Sign_Opr,
01254 Ieee_Int_Opr,
01255 Ieee_Real_Opr,
01256 Ieee_Finite_Opr,
01257 Ieee_Is_Nan_Opr,
01258 Ieee_Class_Opr,
01259 Ieee_Binary_Scale_Opr,
01260 Int_Mult_Upper_Opr,
01261 Get_Ieee_Status_Opr,
01262 Set_Ieee_Status_Opr,
01263 Get_Ieee_Exceptions_Opr,
01264 Set_Ieee_Exceptions_Opr,
01265 Get_Ieee_Interrupts_Opr,
01266 Set_Ieee_Interrupts_Opr,
01267 Get_Ieee_Rounding_Mode_Opr,
01268 Set_Ieee_Rounding_Mode_Opr,
01269 Test_Ieee_Interrupt_Opr,
01270 Test_Ieee_Exception_Opr,
01271 Set_Ieee_Exception_Opr,
01272
01273
01274
01275
01276
01277 Clear_Ieee_Exception_Opr,
01278 Enable_Ieee_Interrupt_Opr,
01279 Disable_Ieee_Interrupt_Opr,
01280
01281 Cvrt_Unsigned_Opr,
01282 SSD_Dealloc_Opr,
01283
01284
01285
01286 Symbolic_Mult_Opr,
01287 Symbolic_Div_Opr,
01288 Symbolic_Uplus_Opr,
01289 Symbolic_Uminus_Opr,
01290 Symbolic_Plus_Opr,
01291 Symbolic_Minus_Opr,
01292 Symbolic_Max_Opr,
01293
01294 Rep_Count_Opr,
01295 Lg_Opr,
01296 Shifta_Opr,
01297
01298 Symbolic_Mod_Opr,
01299 Symbolic_Shiftr_Opr,
01300 Symbolic_Shiftl_Opr,
01301 Symmetric_Alloc_Opr,
01302 Symmetric_Dealloc_Opr,
01303
01304 Copy_In_Opr,
01305 Copy_Out_Opr,
01306
01307 Pack_Opr,
01308 Unpack_Opr,
01309
01310 Local_Pe_Dim_Opr,
01311
01312
01313
01314
01315
01316 Start_Io_Opr,
01317 End_Io_Opr,
01318
01319 Dot_Product_Logical_Opr,
01320
01321 Symbolic_Min_Opr,
01322 Nopattern_Cdir_Opr,
01323 Pattern_Cdir_Opr,
01324 Mark_Cdir_Opr,
01325 Nomark_Cdir_Opr,
01326
01327 Backspace_Opr,
01328 Buffer_In_Opr,
01329 Buffer_Out_Opr,
01330 Close_Opr,
01331 Endfile_Opr,
01332 Inquire_Opr,
01333 Open_Opr,
01334 Rewind_Opr,
01335 Mvbits_Opr,
01336 Ishftc_Opr,
01337 Ibits_Opr,
01338
01339 False_Parm_Opr,
01340
01341 Aggressiveinnerloopfission_Opr,
01342 Blockable_Dir_Opr,
01343 Blockingsize_Dir_Opr,
01344 Fission_Star_Opr,
01345 Fissionable_Star_Opr,
01346
01347
01348
01349
01350
01351 Fuse_Star_Opr,
01352 Fusable_Star_Opr,
01353 Interchange_Dir_Opr,
01354 Nointerchange_Dir_Opr,
01355 Nofission_Star_Opr,
01356 Nofusion_Star_Opr,
01357 Noblocking_Dir_Opr,
01358 Opaque_Star_Opr,
01359 Purpleconditional_Star_Opr,
01360 Purpleunconditional_Star_Opr,
01361 Redistribute_Dollar_Opr,
01362 Doacross_Dollar_Opr,
01363 Pdo_Par_Opr,
01364 Parallel_Do_Par_Opr,
01365 Parallel_Par_Opr,
01366 Psection_Par_Opr,
01367 Singleprocess_Par_Opr,
01368 Section_Par_Opr,
01369 End_Pdo_Par_Opr,
01370 End_Parallel_Par_Opr,
01371 Barrier_Par_Opr,
01372 Critical_Section_Par_Opr,
01373 End_Critical_Section_Par_Opr,
01374 End_Psection_Par_Opr,
01375 End_Singleprocess_Par_Opr,
01376
01377
01378
01379
01380
01381 Unroll_Star_Opr,
01382 Assert_Star_Opr,
01383 Regionbegin_Star_Opr,
01384 Regionend_Star_Opr,
01385 Section_Gp_Star_Opr,
01386 Section_Nongp_Star_Opr,
01387
01388 Prefetch_Star_Opr,
01389 Prefetch_Manual_Star_Opr,
01390 Prefetch_Ref_Disable_Star_Opr,
01391 Prefetch_Ref_Star_Opr,
01392
01393 Align_Symbol_Star_Opr,
01394 Fill_Symbol_Star_Opr,
01395
01396 Inline_Here_Star_Opr,
01397 Noinline_Here_Star_Opr,
01398 End_Inline_Here_Star_Opr,
01399
01400 Dynamic_Dollar_Opr,
01401 Page_Place_Dollar_Opr,
01402 Copyin_Dollar_Opr,
01403
01404 User_Code_Start_Opr,
01405
01406 Fetch_And_Add_Opr,
01407 Fetch_And_Sub_Opr,
01408 Fetch_And_Or_Opr,
01409 Fetch_And_And_Opr,
01410 Fetch_And_Xor_Opr,
01411 Fetch_And_Nand_Opr,
01412
01413
01414
01415
01416
01417 Add_And_Fetch_Opr,
01418 Sub_And_Fetch_Opr,
01419 Or_And_Fetch_Opr,
01420 And_And_Fetch_Opr,
01421 Xor_And_Fetch_Opr,
01422 Nand_And_Fetch_Opr,
01423
01424 Synchronize_Opr,
01425 Lock_Release_Opr,
01426 Lock_Test_And_Set_Opr,
01427 Compare_And_Swap_Opr,
01428
01429 Integer_Cdir_Opr,
01430
01431 Malloc_Opr,
01432 Free_Opr,
01433
01434 Concurrent_Cdir_Opr,
01435
01436 Inline_Routine_Star_Opr,
01437 Noinline_Routine_Star_Opr,
01438 Inline_Global_Star_Opr,
01439 Noinline_Global_Star_Opr,
01440
01441 Atomic_Open_Mp_Opr,
01442 Barrier_Open_Mp_Opr,
01443 Critical_Open_Mp_Opr,
01444 Do_Open_Mp_Opr,
01445 Endcritical_Open_Mp_Opr,
01446 Enddo_Open_Mp_Opr,
01447 Endparallel_Open_Mp_Opr,
01448
01449
01450
01451
01452
01453 Endparalleldo_Open_Mp_Opr,
01454 Endparallelsections_Open_Mp_Opr,
01455 Endparallelworkshare_Open_Mp_Opr,
01456 Endmaster_Open_Mp_Opr,
01457 Endordered_Open_Mp_Opr,
01458 Endsections_Open_Mp_Opr,
01459 Endsingle_Open_Mp_Opr,
01460 Endworkshare_Open_Mp_Opr,
01461 Flush_Open_Mp_Opr,
01462 Master_Open_Mp_Opr,
01463 Ordered_Open_Mp_Opr,
01464 Parallel_Open_Mp_Opr,
01465 Paralleldo_Open_Mp_Opr,
01466 Parallelsections_Open_Mp_Opr,
01467 Parallelworkshare_Open_Mp_Opr,
01468 Section_Open_Mp_Opr,
01469 Sections_Open_Mp_Opr,
01470 Single_Open_Mp_Opr,
01471 Workshare_Open_Mp_Opr,
01472
01473 Concurrentize_Star_Opr,
01474 Noconcurrentize_Star_Opr,
01475
01476 Omp_Set_Lock_Opr,
01477 Omp_Unset_Lock_Opr,
01478 Omp_Test_Lock_Opr,
01479
01480 Omp_Get_Num_Threads_Opr,
01481 Omp_Get_Max_Threads_Opr,
01482 Omp_Get_Thread_Num_Opr,
01483 Omp_Get_Num_Procs_Opr,
01484 Omp_In_Parallel_Opr,
01485
01486
01487
01488
01489
01490 Omp_Get_Dynamic_Opr,
01491 Omp_Get_Nested_Opr,
01492
01493 Cache_Bypass_Cdir_Opr,
01494
01495 Forall_Opr,
01496 If_Opr,
01497 Else_Opr,
01498 Endif_Opr,
01499
01500 Flush_Star_Opr,
01501 Stmt_Expansion_Opr,
01502
01503 Cosd_Opr,
01504 Sind_Opr,
01505 Tand_Opr,
01506 Acosd_Opr,
01507 Asind_Opr,
01508 Atand_Opr,
01509 Atan2d_Opr,
01510
01511 Stream_Dir_Opr,
01512 UNUSED1_Opr,
01513 UNUSED2_Opr,
01514 UNUSED3_Opr,
01515 UNUSED4_Opr,
01516 UNUSED5_Opr,
01517 Nostream_Dir_Opr,
01518
01519 Null_Intrinsic_Opr,
01520 Io_Item_Type_Code_Opr,
01521
01522
01523
01524
01525
01526 Where_Cnstrct_Opr,
01527 Else_Where_Mask_Opr,
01528 Else_Where_Opr,
01529
01530 Preferstream_Dir_Opr,
01531
01532 Copyin_Bound_Opr,
01533
01534 Preferstream_Nocinv_Dir_Opr,
01535 #ifdef KEY
01536 Erf_Opr,
01537 Erfc_Opr,
01538 #endif
01539 #ifdef KEY
01540 Options_Dir_Opr,
01541 #endif
01542 #ifdef KEY
01543 Cselect_Opr,
01544 #endif
01545
01546
01547
01548 The_Last_Opr
01549 };
01550
01551 enum scalar_lvl_values {Scalar_Lvl_0,
01552 Scalar_Lvl_1,
01553 Scalar_Lvl_2,
01554 Scalar_Lvl_3,
01555 Scalar_Lvl_Err };
01556
01557 enum sh_position_values {Before, After};
01558
01559
01560 enum src_form_values {Fixed_Form, Free_Form };
01561
01562
01563
01564
01565
01566
01567
01568
01569
01570
01571
01572
01573
01574
01575
01576
01577
01578
01579
01580 enum stmt_type_values {Null_Stmt,
01581
01582 Allocatable_Stmt,
01583 Automatic_Stmt,
01584 Common_Stmt,
01585 Contains_Stmt,
01586 Cpnt_Decl_Stmt,
01587 Data_Stmt,
01588 Derived_Type_Stmt,
01589 Dimension_Stmt,
01590 Directive_Stmt,
01591 Equivalence_Stmt,
01592 External_Stmt,
01593 Format_Stmt,
01594 Implicit_Stmt,
01595 Implicit_None_Stmt,
01596 Intent_Stmt,
01597 Interface_Stmt,
01598 Intrinsic_Stmt,
01599 Module_Proc_Stmt,
01600 Namelist_Stmt,
01601 Optional_Stmt,
01602 Parameter_Stmt,
01603 Pointer_Stmt,
01604 Private_Stmt,
01605 Public_Stmt,
01606 Save_Stmt,
01607 Sequence_Stmt,
01608 Stmt_Func_Stmt,
01609 Target_Stmt,
01610 Task_Common_Stmt,
01611 Type_Decl_Stmt,
01612 Use_Stmt,
01613
01614 Blockdata_Stmt,
01615 Elemental_Stmt,
01616 Function_Stmt,
01617 Module_Stmt,
01618 Program_Stmt,
01619 Pure_Stmt,
01620 Recursive_Stmt,
01621 Subroutine_Stmt,
01622
01623 End_Blockdata_Stmt,
01624 End_Do_Stmt,
01625 End_Function_Stmt,
01626 End_If_Stmt,
01627 End_Interface_Stmt,
01628 End_Module_Stmt,
01629 End_Program_Stmt,
01630 End_Select_Stmt,
01631 End_Stmt,
01632 End_Subroutine_Stmt,
01633 End_Type_Stmt,
01634 End_Where_Stmt,
01635
01636 Allocate_Stmt,
01637 Arith_If_Stmt,
01638 Assign_Stmt,
01639 Assignment_Stmt,
01640 Backspace_Stmt,
01641 Buffer_Stmt,
01642 Call_Stmt,
01643 Case_Stmt,
01644 Close_Stmt,
01645 Continue_Stmt,
01646 Cycle_Stmt,
01647 Deallocate_Stmt,
01648 Decode_Stmt,
01649 Do_Iterative_Stmt,
01650 Do_While_Stmt,
01651 Do_Infinite_Stmt,
01652 Else_Stmt,
01653 Else_If_Stmt,
01654 Else_Where_Stmt,
01655 Encode_Stmt,
01656 Endfile_Stmt,
01657 Entry_Stmt,
01658 Exit_Stmt,
01659 Goto_Stmt,
01660 If_Cstrct_Stmt,
01661 If_Stmt,
01662 Inquire_Stmt,
01663 Nullify_Stmt,
01664 Open_Stmt,
01665 Outmoded_If_Stmt,
01666 Pause_Stmt,
01667 Print_Stmt,
01668 Read_Stmt,
01669 Return_Stmt,
01670 Rewind_Stmt,
01671 Select_Stmt,
01672 Stop_Stmt,
01673 Then_Stmt,
01674 Where_Cstrct_Stmt,
01675 Where_Stmt,
01676 Write_Stmt,
01677 Type_Init_Stmt,
01678
01679 Label_Def,
01680 Construct_Def,
01681
01682 Automatic_Base_Calc_Stmt,
01683 Automatic_Base_Size_Stmt,
01684
01685 End_Parallel_Stmt,
01686 End_Do_Parallel_Stmt,
01687 End_Parallel_Case_Stmt,
01688 Parallel_Case_Stmt,
01689 End_Guard_Stmt,
01690
01691 Statement_Num_Stmt,
01692
01693 SGI_Section_Stmt,
01694 SGI_End_Psection_Stmt,
01695 SGI_End_Pdo_Stmt,
01696 SGI_End_Parallel_Stmt,
01697 SGI_End_Critical_Section_Stmt,
01698 SGI_End_Single_Process_Stmt,
01699 SGI_Region_End_Stmt,
01700
01701 Open_MP_Section_Stmt,
01702 Open_MP_End_Parallel_Stmt,
01703 Open_MP_End_Do_Stmt,
01704 Open_MP_End_Parallel_Sections_Stmt,
01705 Open_MP_End_Sections_Stmt,
01706 Open_MP_End_Section_Stmt,
01707 Open_MP_End_Single_Stmt,
01708 Open_MP_End_Parallel_Do_Stmt,
01709 Open_MP_End_Master_Stmt,
01710 Open_MP_End_Critical_Stmt,
01711 Open_MP_End_Ordered_Stmt,
01712
01713 Forall_Cstrct_Stmt,
01714 Forall_Stmt,
01715 End_Forall_Stmt,
01716
01717 Else_Where_Mask_Stmt,
01718
01719 Volatile_Stmt,
01720
01721 Open_MP_End_Parallel_Workshare_Stmt,
01722 Open_MP_End_Workshare_Stmt,
01723 #ifdef KEY
01724 Import_Stmt,
01725 #endif
01726 #ifdef KEY
01727 Enum_Stmt,
01728 End_Enum_Stmt,
01729 Enumerator_Stmt,
01730 #endif
01731 #ifdef KEY
01732 Bind_Stmt,
01733 Value_Stmt
01734 #endif
01735
01736
01737
01738
01739
01740
01741
01742
01743
01744 };
01745
01746
01747 enum split_lvl_values { Split_Lvl_0,
01748 Split_Lvl_1,
01749 Split_Lvl_2,
01750 Split_Lvl_Err };
01751
01752 enum stream_lvl_values { Stream_Lvl_0,
01753 Stream_Lvl_1,
01754 Stream_Lvl_2,
01755 Stream_Lvl_3,
01756 Stream_Lvl_Err };
01757
01758 enum task_lvl_values { Task_Lvl_0,
01759 Task_Lvl_1,
01760 Task_Lvl_2,
01761 Task_Lvl_3,
01762 Task_Lvl_Err };
01763
01764 enum unroll_lvl_values { Unroll_Lvl_0,
01765 Unroll_Lvl_1,
01766 Unroll_Lvl_2,
01767 Unroll_Lvl_Err };
01768
01769 enum vector_lvl_values { Vector_Lvl_0,
01770 Vector_Lvl_1,
01771 Vector_Lvl_2,
01772 Vector_Lvl_3,
01773 Vector_Lvl_Err };
01774
01775 enum trace_values { Func_Entry,
01776 Func_Exit,
01777 Syntax_Pass,
01778 Semantics_Pass,
01779 PU_Start,
01780 Stmt_Start,
01781 Mem_Alloc,
01782 Mem_Realloc,
01783 Mem_Free,
01784 Mem_Compress };
01785
01786 enum mp_directive_values {
01787 Doacross,
01788 Pdo,
01789 Parallel_Do,
01790 Parallel,
01791 Psection,
01792 Singleprocess,
01793 Num_Mp_Values
01794 };
01795
01796 typedef enum mp_directive_values mp_directive_type;
01797
01798 enum mp_clause_values {
01799 If_Clause,
01800 Local_Clause,
01801 Share_Clause,
01802 Lastlocal_Clause,
01803 Reduction_Clause,
01804 Mp_Schedtype_Clause,
01805 Chunk_Clause,
01806 Blocked_Clause,
01807 Affinity_Clause,
01808 Mode_Clause,
01809 Ordered_Clause,
01810 Onto_Clause,
01811 Nest_Clause,
01812 Lastthread_Clause,
01813 Last_Clause
01814 };
01815 typedef enum mp_clause_values mp_clause_type;
01816
01817 extern char *(mp_dir_str[Num_Mp_Values]);
01818
01819 extern boolean clause_allowed[Num_Mp_Values][Last_Clause];
01820
01821 enum open_mp_directive_values {
01822 Parallel_Omp,
01823 Do_Omp,
01824 Sections_Omp,
01825 Single_Omp,
01826 Workshare_Omp,
01827 Parallel_Do_Omp,
01828 Parallel_Sections_Omp,
01829 Parallel_Workshare_Omp,
01830 Num_Omp_Values
01831 };
01832
01833 typedef enum open_mp_directive_values open_mp_directive_type;
01834
01835 enum open_mp_clause_values {
01836 If_Omp_Clause,
01837 Num_Threads_Omp_Clause,
01838 Private_Omp_Clause,
01839 Shared_Omp_Clause,
01840 Firstprivate_Omp_Clause,
01841 Default_Omp_Clause,
01842 Copyin_Omp_Clause,
01843 Reduction_Omp_Clause,
01844 Lastprivate_Omp_Clause,
01845 Ordered_Omp_Clause,
01846 Schedule_Omp_Clause,
01847 Affinity_Omp_Clause,
01848 Nest_Omp_Clause,
01849 Onto_Omp_Clause,
01850 Copyprivate_Omp_Clause,
01851 Last_Omp_Clause
01852 };
01853 typedef enum open_mp_clause_values open_mp_clause_type;
01854
01855 extern char *(open_mp_dir_str[Num_Omp_Values]);
01856
01857 extern boolean open_mp_clause_allowed[Num_Omp_Values][Last_Omp_Clause];
01858
01859
01860 typedef enum addr_mode_values addr_mode_type;
01861 typedef enum basic_type_values basic_type_type;
01862 typedef enum convert_to_string_values convert_to_string_type;
01863 typedef enum debug_lvl_values debug_lvl_type;
01864 typedef enum expr_mode_values expr_mode_type;
01865 typedef enum fld_values fld_type;
01866 typedef enum fortran_type_values fortran_type_type;
01867 typedef enum forward_ref_values forward_ref_type;
01868 typedef enum glb_tbl_idx_values glb_tbl_idx_type;
01869 typedef enum intrinsic_values intrinsic_type;
01870 typedef enum linear_type_values linear_type_type;
01871 typedef enum msg_lvl_values msg_lvl_type;
01872 #ifdef KEY
01873
01874 #else
01875 typedef enum msg_severities msg_severities_type;
01876 #endif
01877 typedef enum obj_values obj_type;
01878 typedef enum operator_values operator_type;
01879 typedef enum scalar_lvl_values scalar_lvl_type;
01880 typedef enum sh_position_values sh_position_type;
01881 typedef enum src_form_values src_form_type;
01882 typedef enum stmt_type_values stmt_type_type;
01883 typedef enum stream_lvl_values stream_lvl_type;
01884 typedef enum task_lvl_values task_lvl_type;
01885 typedef enum vector_lvl_values vector_lvl_type;
01886 typedef enum trace_values trace_type;
01887 typedef struct ac_cmd_line_flags_entry ac_cmd_line_flags_type;
01888 typedef struct cdir_switch_entry cdir_switch_type;
01889 typedef struct cmd_line_flags_entry cmd_line_flags_type;
01890 typedef struct dump_flags_entry dump_flags_type;
01891 typedef struct expr_semantics_args expr_arg_type;
01892 typedef struct on_off_flags_entry on_off_flags_type;
01893 typedef struct opnd_entry opnd_type;
01894 typedef struct opt_flags_entry opt_flags_type;
01895 typedef union target_machine_entry target_machine_type;
01896 typedef union id_str_entry id_str_type;
01897
01898 union id_str_entry {char string[MAX_ID_LEN+1];
01899 long words[NUM_ID_WDS];
01900 };
01901
01902
01903
01904 struct cmd_line_flags_entry {
01905 boolean align8 : 1;
01906 boolean align16 : 1;
01907 boolean align32 : 1;
01908 boolean align64 : 1;
01909 boolean static_threadprivate : 1;
01910 boolean dalign : 1;
01911 boolean pad : 1;
01912 Uint pad_amount : 16;
01913 boolean taskcommon : 1;
01914 boolean binary_output : 1;
01915 boolean reserved_c : 1;
01916 boolean off_options : 1;
01917 boolean on_options : 1;
01918 src_form_type src_form : 2;
01919 boolean reserved_g : 1;
01920 boolean reserved_h : 1;
01921 boolean integer_32 : 1;
01922 boolean reserved_j : 1;
01923 boolean solaris_profile : 1;
01924 boolean reserved_l : 1;
01925 msg_lvl_type msg_lvl_suppressed : 4;
01926 boolean reserved_n : 1;
01927 boolean reserved_o : 1;
01928 boolean module_paths : 1;
01929 boolean expression_eval_stmt : 1;
01930 boolean expression_eval_expr : 1;
01931 boolean reserved_q : 1;
01932 boolean reserved_r : 1;
01933 boolean s_float64 : 1;
01934 boolean s_default32 : 1;
01935 boolean s_default64 : 1;
01936 boolean s_cf77types : 1;
01937 boolean s_integer8 : 1;
01938 boolean s_logical8 : 1;
01939 boolean s_real8 : 1;
01940 boolean s_complex8 : 1;
01941 boolean s_doublecomplex16 : 1;
01942 boolean s_doubleprecision16 : 1;
01943 boolean s_pointer8 : 1;
01944 Uint truncate_bits : 6;
01945 boolean dump_options : 1;
01946 boolean pdgcs_debug_opts : 1;
01947 boolean reserved_w : 1;
01948 boolean disregard_all_directives: 1;
01949 boolean disregard_all_dirs : 1;
01950 boolean disregard_all_mics : 1;
01951 boolean disregard_all_mips : 1;
01952 boolean disregard_all_mpp_cdirs : 1;
01953 boolean disregard_all_omps : 1;
01954 boolean disregard_conditional_omp : 1;
01955 boolean reserved_y : 1;
01956 boolean reserved_z : 1;
01957 int implicit_use_idx;
01958 boolean reserved_B : 1;
01959 boolean cif_flags : 1;
01960 boolean reserved_D : 1;
01961 boolean reserved_E : 1;
01962 boolean pp_macro_expansion : 1;
01963 debug_lvl_type debug_lvl : 4;
01964 boolean dwarf_debug : 1;
01965 boolean reserved_H : 1;
01966 boolean reserved_I : 1;
01967 boolean mod_out_path : 1;
01968 boolean reserved_K : 1;
01969 boolean reserved_L : 1;
01970 Uint num_msgs_suppressed : 16;
01971 boolean line_size_80 : 1;
01972 boolean line_size_132 : 1;
01973 boolean opt_options : 1;
01974 boolean small_pic_model : 1;
01975 boolean large_pic_model : 1;
01976 boolean reserved_Q : 1;
01977 boolean runtime_argument : 1;
01978 boolean runtime_arg_call : 1;
01979 boolean runtime_arg_entry : 1;
01980 boolean runtime_arg_count_only : 1;
01981 boolean runtime_bounds : 1;
01982 boolean runtime_conformance : 1;
01983 boolean runtime_intrinsics : 1;
01984 boolean runtime_substring : 1;
01985 boolean runtime_ptr_chk : 1;
01986 boolean assembly_output : 1;
01987 boolean reserved_T : 1;
01988 boolean reserved_U : 1;
01989 boolean verify_option : 1;
01990 boolean reserved_W : 1;
01991 Uint MPP_num_pes :32;
01992 boolean malleable : 1;
01993 boolean ccg_dump_options : 1;
01994 boolean co_array_fortran : 1;
01995 boolean do_UDB_checks : 1;
01996 };
01997
01998 struct ac_cmd_line_flags_entry {
01999 Uint temp_fchar_len : 3;
02000 Uint ghand_create_count : 3;
02001 };
02002
02003
02004 struct dump_flags_entry {
02005
02006
02007
02008 boolean abort_on_ansi : 1;
02009 boolean no_dimension_padding : 1;
02010 boolean no_module_output : 1;
02011 boolean preinline : 1;
02012 boolean f_minus_minus : 1;
02013 boolean fmm1 : 1;
02014 boolean fmm2 : 1;
02015 boolean show_cmd_line : 1;
02016 boolean mod_version : 1;
02017 boolean mp : 1;
02018 boolean open_mp : 1;
02019 boolean dsm : 1;
02020 boolean cray_compatible : 1;
02021 boolean pack_half_word : 1;
02022 int pvp_test;
02023
02024
02025
02026 boolean bd_tbl : 1;
02027 boolean blk_stk : 1;
02028 boolean cmd_line_tbls : 1;
02029 boolean cn_tbl : 1;
02030 boolean defines : 1;
02031 boolean fort_out : 1;
02032 boolean fortran_out : 1;
02033 boolean fp_tbl : 1;
02034 boolean ftrace_info : 1;
02035 boolean gl_tbl : 1;
02036 boolean help_dbg : 1;
02037 boolean intrin_tbl : 1;
02038 boolean ir1_tbl : 1;
02039 boolean ir2_tbl : 1;
02040 boolean ir3_tbl : 1;
02041 boolean ir4_tbl : 1;
02042 boolean mem_report : 1;
02043 boolean msg_checking : 1;
02044 boolean mtrace_info : 1;
02045 boolean name_tbls : 1;
02046 boolean pdgcs : 1;
02047 boolean pdt_dump : 1;
02048 boolean sb_tbl : 1;
02049 boolean scp_tbl : 1;
02050 boolean src_dmp : 1;
02051 boolean std_err : 1;
02052 boolean stmt_dmp : 1;
02053 boolean sytb : 1;
02054 boolean typ_tbl : 1;
02055 boolean constant_bits : 1;
02056 #ifdef KEY
02057 boolean arg_passing : 1;
02058 #endif
02059 };
02060
02061
02062 struct on_off_flags_entry {
02063 boolean abort_if_any_errors : 1;
02064 boolean reserved_b : 1;
02065 boolean pad_char_literals : 1;
02066 boolean reserved_d : 1;
02067 boolean ieee : 1;
02068 boolean flowtrace_option : 1;
02069 boolean assembly_listing_file : 1;
02070 boolean integer_1_and_2 : 1;
02071 boolean indef_init : 1;
02072 boolean exec_doloops_once : 1;
02073 boolean reserved_k : 1;
02074 boolean reserved_l : 1;
02075 boolean module_to_mod : 1;
02076 boolean issue_ansi_messages : 1;
02077 boolean reserved_o : 1;
02078 boolean enable_double_precision : 1;
02079 boolean abort_on_100_errors : 1;
02080 boolean round_mult_operations : 1;
02081 boolean reserved_s : 1;
02082 boolean alloc_autos_on_stack : 1;
02083 boolean eu : 1;
02084 boolean round_integer_divide : 1;
02085 boolean reciprical_divide : 1;
02086 boolean save_all_vars : 1;
02087 boolean set_ev_option : 1;
02088 boolean reserved_w : 1;
02089 boolean reserved_x : 1;
02090 boolean reserved_y : 1;
02091 boolean recognize_minus_zero : 1;
02092 boolean MPP_apprentice : 1;
02093 boolean binary_output : 1;
02094 boolean shared_to_private_coer : 1;
02095 boolean all_debug : 1;
02096 boolean reserved_E : 1;
02097 boolean reserved_F : 1;
02098 boolean reserved_G : 1;
02099 boolean reserved_H : 1;
02100 boolean implicit_none : 1;
02101 boolean reserved_J : 1;
02102 boolean reserved_K : 1;
02103 boolean top_test_shortloops : 1;
02104 boolean reserved_M : 1;
02105 boolean second_underscore : 1;
02106 boolean underscoring : 1;
02107 boolean output_pound_lines : 1;
02108 boolean preprocess_only : 1;
02109 boolean preprocess : 1;
02110 boolean allow_leading_uscore : 1;
02111 boolean recursive : 1;
02112 boolean assembly_output : 1;
02113 boolean reserved_T : 1;
02114 boolean upper_case_names : 1;
02115 boolean reserved_V : 1;
02116 boolean reserved_W : 1;
02117 boolean atexpert : 1;
02118 boolean reserved_Y : 1;
02119 boolean save_dot_i : 1;
02120 boolean zero_init : 1;
02121 boolean d_lines : 1;
02122 #ifdef KEY
02123
02124
02125
02126 boolean intrinsic_module_gen : 1;
02127 #endif
02128 #ifdef KEY
02129 boolean fortran2003 : 1;
02130 #endif
02131 };
02132
02133
02134
02135
02136
02137
02138
02139 struct opnd_entry {Uint line_num : 24;
02140 Uint col_num : 8;
02141
02142 Uint flag_1 : 1;
02143 Uint flag_2 : 1;
02144 Uint unused : 2;
02145 fld_type fld : 4;
02146 Uint idx : 24;
02147 };
02148
02149
02150
02151
02152
02153
02154 enum size_expr_level {
02155 Unknown_Expr_Size,
02156 Simple_Expr_Size,
02157 Interp_Loop_Size,
02158 Guess_Size
02159 };
02160
02161 typedef enum size_expr_level size_level_type;
02162
02163
02164
02165
02166
02167
02168 struct expr_semantics_args {basic_type_type type : 8;
02169 linear_type_type linear_type : 8;
02170 Uint type_idx : 16;
02171
02172 boolean kind0seen : 1;
02173 boolean kind0E0seen : 1;
02174 boolean kind0D0seen : 1;
02175 boolean kindnotconst : 1;
02176 boolean percent_val_arg : 1;
02177 boolean constant : 1;
02178 boolean foldable : 1;
02179 boolean will_fold_later : 1;
02180 boolean pointer : 1;
02181 boolean target : 1;
02182 boolean vector_subscript: 1;
02183 boolean reference : 1;
02184 boolean constructor : 1;
02185 boolean component : 1;
02186 boolean section : 1;
02187 boolean label : 1;
02188 boolean array_elt : 1;
02189 boolean assumed_shape : 1;
02190 boolean assumed_size : 1;
02191 boolean allocatable : 1;
02192 boolean dope_vector : 1;
02193 boolean tmp_reference : 1;
02194 boolean has_constructor : 1;
02195 boolean optional_darg : 1;
02196 boolean pe_dim_ref : 1;
02197 boolean dist_reshape_ref: 1;
02198 #ifdef KEY
02199
02200
02201
02202
02203
02204 boolean derived_assign : 1;
02205 Uint UNUSED2 : 5;
02206 #else
02207 Uint UNUSED2 : 6;
02208 #endif
02209
02210 Uint rank : 32;
02211
02212 Uint UNUSED3 : 2;
02213 Uint constructor_size_level : 2;
02214 boolean has_symbolic : 1;
02215 boolean tree_has_ranf : 1;
02216 boolean contig_array : 1;
02217 boolean shape_known : 1;
02218 Uint cif_id : 24;
02219
02220
02221 opnd_type char_len;
02222 opnd_type bias_opnd;
02223 # ifdef _F_MINUS_MINUS
02224 opnd_type shape[14];
02225 # else
02226 opnd_type shape[7];
02227 # endif
02228 };
02229
02230 struct cdir_switch_entry {
02231 boolean align : 1;
02232 boolean autoscope : 1;
02233 boolean bl : 1;
02234 boolean bounds : 1;
02235 boolean casedir : 1;
02236 boolean cncall : 1;
02237 boolean code : 1;
02238 boolean concurrent : 1;
02239 boolean do_inline : 1;
02240 boolean do_parallel : 1;
02241 boolean doall_region : 1;
02242 boolean flow : 1;
02243 boolean guard : 1;
02244 boolean guard_has_flag : 1;
02245 boolean guard_in_par_reg : 1;
02246 boolean ivdep : 1;
02247 boolean mark : 1;
02248 boolean maxcpus : 1;
02249 boolean nextscalar : 1;
02250 boolean no_internal_calls : 1;
02251 boolean noinline : 1;
02252 boolean parallel_region : 1;
02253 boolean pattern : 1;
02254 boolean permutation : 1;
02255 boolean preferstream : 1;
02256 boolean preferstream_nocinv : 1;
02257 boolean prefertask : 1;
02258 boolean prefervector : 1;
02259 boolean recurrence : 1;
02260 boolean shortloop : 1;
02261 boolean shortloop128 : 1;
02262 #ifdef KEY
02263 boolean single : 1;
02264 #endif
02265 boolean split : 1;
02266 boolean stream : 1;
02267 boolean task : 1;
02268 boolean notask_region : 1;
02269 boolean unroll_dir : 1;
02270 boolean vector : 1;
02271 boolean vsearch : 1;
02272
02273 boolean aggressiveinnerloopfission : 1;
02274 boolean fission : 1;
02275 boolean fissionable : 1;
02276 boolean fusable : 1;
02277 boolean fuse : 1;
02278 boolean noblocking : 1;
02279 boolean nofission : 1;
02280 boolean nofusion : 1;
02281 boolean nointerchange : 1;
02282 boolean opaque : 1;
02283 boolean purpleconditional : 1;
02284 boolean purpleunconditional : 1;
02285 boolean inline_here_sgi : 1;
02286 boolean noinline_here_sgi : 1;
02287
02288 int blockable_count;
02289 int blockable_group;
02290 int blockable_sh_idx;
02291 int bounds_il_list;
02292 int cache_bypass_ir_idx;
02293 int concurrent_idx;
02294 int copyin_list_idx;
02295 int copyprivate_list_idx;
02296 int default_scope_list_idx;
02297 int dir_nest_check_sh_idx;
02298 int do_omp_sh_idx;
02299 int doacross_sh_idx;
02300 int doall_sh_idx;
02301 int dopar_sh_idx;
02302 int firstprivate_list_idx;
02303 int getfirst_list_idx;
02304 int implicit_use_idx;
02305 int inline_here_list_idx;
02306 int interchange_count;
02307 int interchange_group;
02308 int interchange_level;
02309 int interchange_sh_idx;
02310 int lastlocal_list_idx;
02311 int lastprivate_list_idx;
02312 int lastthread_list_idx;
02313 int mark_cmdline_idx;
02314 int mark_dir_idx;
02315 int nobounds_il_list;
02316 int noinline_here_list_idx;
02317 int paralleldo_omp_sh_idx;
02318 int paralleldo_sh_idx;
02319 int pdo_sh_idx;
02320 int private_list_idx;
02321 int reduction_list_idx;
02322 int safevl_idx;
02323 int send_list_idx;
02324 int shared_list_idx;
02325 int wait_list_idx;
02326 int unroll_count_idx;
02327
02328 opnd_type first_sh_blk_stk;
02329
02330 opnd_type chunk_opnd;
02331 opnd_type maxcpus_opnd;
02332 opnd_type mp_schedtype_opnd;
02333 };
02334
02335
02336 struct opt_flags_entry {
02337 boolean aggress : 1;
02338 boolean bottom_load : 1;
02339 boolean set_fastint_option : 1;
02340 boolean set_nofastint_option : 1;
02341 boolean set_allfastint_option : 1;
02342 boolean fusion : 1;
02343 boolean ieeeconform : 1;
02344 Uint inline_lvl : 3;
02345 Uint short_circuit_lvl : 2;
02346 boolean jump : 1;
02347 boolean loopalign : 1;
02348 boolean mark : 1;
02349 boolean modinline : 1;
02350 boolean extent_assert : 1;
02351 boolean msgs : 1;
02352 boolean neg_msgs : 1;
02353 boolean nointerchange : 1;
02354 boolean opt_info : 1;
02355 boolean over_index : 1;
02356 boolean pattern : 1;
02357 Uint pipeline_lvl : 2;
02358 boolean recurrence : 1;
02359 Uint scalar_lvl : 2;
02360 Uint split_lvl : 2;
02361 Uint stream_lvl : 2;
02362 Uint support_lvl : 2;
02363 Uint task_lvl : 2;
02364 boolean taskinner : 1;
02365 boolean threshold : 1;
02366 Uint unroll_lvl : 2;
02367 Uint vector_lvl : 2;
02368 boolean vsearch : 1;
02369 boolean zeroinc : 1;
02370 id_str_type mark_name;
02371 boolean matmul_inline : 1;
02372 boolean mv_matmul_inline : 1;
02373
02374 Uint reshape_idx : 16;
02375 boolean reshape : 1;
02376 boolean reshape_all_arrays : 1;
02377 };
02378
02379
02380
02381
02382
02383
02384 union target_machine_entry {
02385 struct {
02386
02387
02388
02389
02390
02391
02392
02393 # if defined(_GETPMC_AVAILABLE)
02394 long mcpmt;
02395 # elif defined(_HOST_OS_SOLARIS) || (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN))
02396 char mcpmt[12];
02397 # endif
02398 long mcbank;
02399 long mcncpu;
02400 long mcibsz;
02401 long mcmsz;
02402 long mcmspd;
02403 long mcclk;
02404 long mcncl;
02405 long mcbbsy;
02406 long mc_serial;
02407 long mc_rls;
02408 long mc_c_option_rev;
02409 long mc_i_option_rev;
02410 long mc_r_option_rev;
02411 long mc_m_option_rev_0;
02412 long mc_m_option_rev_1;
02413 long mc_m_option_rev_2;
02414 long mc_m_option_rev_3;
02415 long mc_subtype;
02416 long mc_subtype1;
02417
02418 long numeric_unused[44];
02419
02420
02421 Ulong mcema;
02422 Ulong mccigs;
02423 Ulong mcvpop;
02424 Ulong mcpc;
02425 Ulong mcrdvl;
02426 Ulong mcvrcr;
02427 Ulong mcavl;
02428 Ulong mchpm;
02429 Ulong mcbdm;
02430 Ulong mcstr;
02431 Ulong mccori;
02432 Ulong mcaddr32;
02433 Ulong mcxea;
02434 Ulong mcbmm;
02435 Ulong mcavpop;
02436 Ulong mcfullsect;
02437 Ulong mcieee;
02438 Ulong mccmrreq;
02439 Ulong mccache;
02440 Ulong logical_unused[45];
02441 } fld;
02442
02443 # if defined(_GETPMC_AVAILABLE)
02444 long mc_tbl[128];
02445 # elif defined(_HOST_OS_SOLARIS) || (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN))
02446 long mc_tbl[130];
02447 # endif
02448 };
02449
02450
02451
02452
02453
02454
02455
02456
02457
02458 enum cif_usage_code_values {CIF_Symbol_Declaration,
02459 CIF_Symbol_Reference,
02460 CIF_Symbol_Modification,
02461 CIF_Symbol_Is_Actual_Arg,
02462 CIF_Label_Referenced_In_ASSIGN,
02463 CIF_Label_Referenced_As_Branch_Target,
02464 CIF_Label_Referenced_As_Format,
02465 CIF_Do_Loop_Label,
02466 CIF_Derived_Type_Name_Definition,
02467 CIF_Derived_Type_Name_Reference,
02468 CIF_Construct_Name_Reference,
02469 CIF_Symbol_Is_Dummy_Arg,
02470 CIF_Symbol_Defined_Opr_Actual_Arg,
02471 CIF_Symbol_Is_Hidden_Used_Module,
02472 CIF_No_Usage_Rec
02473 };
02474
02475
02476 enum cif_directive_code_values {CIF_Master,
02477 CIF_End_Master,
02478 CIF_Barrier,
02479 CIF_No_Barrier,
02480 CIF_Critical,
02481 CIF_End_Critical,
02482 CIF_Shared_Io,
02483 CIF_Atomic_Update,
02484 CIF_List,
02485 CIF_Nolist,
02486 CIF_Eject
02487 };
02488
02489
02490
02491
02492
02493
02494
02495
02496
02497
02498
02499
02500
02501
02502 enum cif_stmt_values
02503 {CIF_Not_Exact = -2,
02504
02505 CIF_Stmt_Type_Error = -1,
02506
02507 CIF_Allocatable_Stmt = 0,
02508 CIF_Allocate_Stmt,
02509 CIF_Assign_Stmt,
02510 CIF_Assignment_Stmt,
02511 CIF_Backspace_Stmt,
02512 CIF_Block_Data_Stmt = 5,
02513
02514 CIF_Call_Stmt = 7,
02515 CIF_Case_Stmt,
02516 CIF_Close_Stmt,
02517 CIF_Common_Stmt = 10,
02518 CIF_Contains_Stmt,
02519 CIF_Continue_Stmt,
02520 CIF_Cycle_Stmt,
02521 CIF_Data_Stmt,
02522 CIF_Deallocate_Stmt = 15,
02523 CIF_Decode_Stmt,
02524 CIF_Case_Default_Stmt,
02525 CIF_Type_Stmt,
02526 CIF_Dimension_Stmt,
02527 CIF_Directive_Stmt = 20,
02528
02529 CIF_Else_Stmt = 23,
02530 CIF_Else_If_Stmt,
02531 CIF_Elsewhere_Stmt,
02532 CIF_Encode_Stmt = 26,
02533
02534 CIF_Endfile_Stmt = 28,
02535 CIF_Entry_Stmt,
02536 CIF_Equivalence_Stmt = 30,
02537 CIF_Exit_Stmt,
02538 CIF_External_Stmt,
02539 CIF_Format_Stmt,
02540 CIF_Function_Stmt = 34,
02541
02542 CIF_If_Construct = 37,
02543 CIF_Implicit_Stmt,
02544 CIF_Implicit_None_Stmt,
02545 CIF_Inquire_Stmt = 40,
02546
02547 CIF_Intrinsic_Stmt = 43,
02548 CIF_Module_Stmt,
02549 CIF_Module_Procedure_Stmt = 45,
02550 CIF_Namelist_Stmt,
02551 CIF_Nullify_Stmt,
02552 CIF_Open_Stmt,
02553 CIF_Optional_Stmt,
02554 CIF_Parameter_Stmt = 50,
02555 CIF_Pause_Stmt,
02556 CIF_Pointer_Stmt,
02557 CIF_Print_Stmt,
02558 CIF_Private_Stmt,
02559 CIF_Program_Stmt,
02560 CIF_Public_Stmt = 56,
02561
02562 CIF_Read_Stmt = 58,
02563 CIF_Return_Stmt,
02564 CIF_Rewind_Stmt = 60,
02565 CIF_Save_Stmt,
02566 CIF_Select_Case_Stmt,
02567 CIF_Sequence_Stmt,
02568 CIF_Statement_Function_Stmt,
02569 CIF_Stop_Stmt = 65,
02570 CIF_Subroutine_Stmt,
02571 CIF_Target_Stmt,
02572 CIF_Type_Declaration_Stmt,
02573 CIF_Use_Stmt,
02574 CIF_Where_Stmt = 70,
02575 CIF_Where_Construct,
02576 CIF_Write_Stmt,
02577 CIF_Buffer_In_Stmt,
02578 CIF_Buffer_Out_Stmt = 74,
02579
02580 CIF_End_Do_Stmt = 77,
02581 CIF_End_If_Stmt,
02582 CIF_Include_Stmt,
02583 CIF_CDIR_Stmt = 80,
02584 CIF_Array_Assignment_Stmt,
02585 CIF_Pointer_Assigment_Stmt,
02586
02587 CIF_Do_Labeled_Infinite_Stmt
02588 = 100,
02589 CIF_Do_Unlabeled_Infinite_Stmt,
02590
02591 CIF_Do_Labeled_Iterative_Stmt,
02592
02593 CIF_Do_Unlabeled_Iterative_Stmt,
02594
02595 CIF_Do_Labeled_While_Stmt,
02596
02597 CIF_Do_Unlabeled_While_Stmt
02598 = 105,
02599 CIF_End_Block_Data_Stmt,
02600 CIF_End_Function_Stmt,
02601 CIF_End_Interface_Stmt,
02602 CIF_End_Module_Stmt,
02603 CIF_End_Program_Stmt = 110,
02604 CIF_End_Select_Stmt,
02605 CIF_End_Subroutine_Stmt,
02606 CIF_End_Type_Stmt,
02607 CIF_End_Where_Stmt,
02608 CIF_Go_To_Unconditional_Stmt = 115,
02609 CIF_Go_To_Assigned_Stmt,
02610 CIF_Go_To_Computed_Stmt,
02611 CIF_If_Logical_Stmt,
02612 CIF_If_Arithmetic_Stmt,
02613 CIF_If_Indirect_Logical_Stmt
02614 = 120,
02615 CIF_If_Two_Branch_Arithmetic_Stmt,
02616
02617 CIF_Intent_In_Stmt,
02618 CIF_Intent_Out_Stmt,
02619 CIF_Intent_Inout_Stmt,
02620 CIF_Interface_Explicit_Stmt = 125,
02621 CIF_Interface_Generic_Stmt,
02622
02623 CIF_Interface_Operator_Stmt,
02624
02625 CIF_Interface_Assignment_Stmt,
02626
02627 CIF_Task_Common_Stmt,
02628 CIF_Automatic_Stmt = 130,
02629 CIF_Elemental_Stmt,
02630 CIF_Pure_Stmt,
02631 CIF_Forall_Stmt,
02632 CIF_Forall_Construct,
02633 CIF_Max,
02634 CIF_End_Forall_Stmt
02635 };
02636
02637 typedef enum cif_directive_code_values cif_directive_code_type;
02638 typedef enum cif_stmt_values cif_stmt_type;
02639 typedef enum cif_usage_code_values cif_usage_code_type;
02640
02641
02642
02643
02644
02645
02646 extern void unknown_intrinsic (opnd_type *, expr_arg_type *, int *);
02647 #ifdef KEY
02648 extern void pathf90_intrinsic (opnd_type *, expr_arg_type *, int *);
02649 #endif
02650 #ifdef KEY
02651 extern void true_intrinsic (opnd_type *, expr_arg_type *, int *);
02652 extern void support_uflow_intrinsic (opnd_type *, expr_arg_type *, int *);
02653 #endif
02654 #ifdef KEY
02655 extern void newline_intrinsic (opnd_type *, expr_arg_type *, int *);
02656 #endif
02657 extern void abs_intrinsic (opnd_type *, expr_arg_type *, int *);
02658 extern void sin_intrinsic (opnd_type *, expr_arg_type *, int *);
02659 extern void erf_intrinsic (opnd_type *, expr_arg_type *, int *);
02660 extern void atan2_intrinsic (opnd_type *, expr_arg_type *, int *);
02661 extern void exit_intrinsic (opnd_type *, expr_arg_type *, int *);
02662 extern void aimag_intrinsic (opnd_type *, expr_arg_type *, int *);
02663 extern void int_intrinsic (opnd_type *, expr_arg_type *, int *);
02664 extern void ilen_intrinsic (opnd_type *, expr_arg_type *, int *);
02665 extern void iand_intrinsic (opnd_type *, expr_arg_type *, int *);
02666 extern void mod_intrinsic (opnd_type *, expr_arg_type *, int *);
02667 extern void anint_intrinsic (opnd_type *, expr_arg_type *, int *);
02668 extern void nint_intrinsic (opnd_type *, expr_arg_type *, int *);
02669 extern void sign_intrinsic (opnd_type *, expr_arg_type *, int *);
02670 extern void modulo_intrinsic (opnd_type *, expr_arg_type *, int *);
02671 extern void shift_intrinsic (opnd_type *, expr_arg_type *, int *);
02672 extern void leadz_intrinsic (opnd_type *, expr_arg_type *, int *);
02673 extern void not_intrinsic (opnd_type *, expr_arg_type *, int *);
02674 extern void aint_intrinsic (opnd_type *, expr_arg_type *, int *);
02675 extern void dim_intrinsic (opnd_type *, expr_arg_type *, int *);
02676 extern void max_intrinsic (opnd_type *, expr_arg_type *, int *);
02677 extern void ranget_intrinsic (opnd_type *, expr_arg_type *, int *);
02678 extern void ranf_intrinsic (opnd_type *, expr_arg_type *, int *);
02679 extern void real_intrinsic (opnd_type *, expr_arg_type *, int *);
02680 extern void mask_intrinsic (opnd_type *, expr_arg_type *, int *);
02681 extern void conjg_intrinsic (opnd_type *, expr_arg_type *, int *);
02682 extern void dprod_intrinsic (opnd_type *, expr_arg_type *, int *);
02683 extern void i24mult_intrinsic (opnd_type *, expr_arg_type *, int *);
02684 extern void length_intrinsic (opnd_type *, expr_arg_type *, int *);
02685 extern void getpos_intrinsic (opnd_type *, expr_arg_type *, int *);
02686 extern void unit_intrinsic (opnd_type *, expr_arg_type *, int *);
02687 extern void cmplx_intrinsic (opnd_type *, expr_arg_type *, int *);
02688 extern void len_intrinsic (opnd_type *, expr_arg_type *, int *);
02689 extern void ichar_intrinsic (opnd_type *, expr_arg_type *, int *);
02690 extern void idate_intrinsic (opnd_type *, expr_arg_type *, int *);
02691 extern void char_intrinsic (opnd_type *, expr_arg_type *, int *);
02692 extern void lint_intrinsic (opnd_type *, expr_arg_type *, int *);
02693 extern void index_intrinsic (opnd_type *, expr_arg_type *, int *);
02694 extern void lge_intrinsic (opnd_type *, expr_arg_type *, int *);
02695 extern void numarg_intrinsic (opnd_type *, expr_arg_type *, int *);
02696 extern void fcd_intrinsic (opnd_type *, expr_arg_type *, int *);
02697 extern void loc_intrinsic (opnd_type *, expr_arg_type *, int *);
02698 extern void clock_intrinsic (opnd_type *, expr_arg_type *, int *);
02699 #ifdef KEY
02700 extern void c_f_pointer_intrinsic(opnd_type *, expr_arg_type *, int *);
02701 #endif
02702 #ifdef KEY
02703 extern void time_intrinsic (opnd_type *, expr_arg_type *, int *);
02704 extern void dtime_intrinsic (opnd_type *, expr_arg_type *, int *);
02705 #endif
02706 extern void rtc_intrinsic (opnd_type *, expr_arg_type *, int *);
02707 extern void my_pe_intrinsic (opnd_type *, expr_arg_type *, int *);
02708 extern void cvmgp_intrinsic (opnd_type *, expr_arg_type *, int *);
02709 extern void cvmgt_intrinsic (opnd_type *, expr_arg_type *, int *);
02710 extern void csmg_intrinsic (opnd_type *, expr_arg_type *, int *);
02711 extern void mergee_intrinsic (opnd_type *, expr_arg_type *, int *);
02712 extern void adjustl_intrinsic (opnd_type *, expr_arg_type *, int *);
02713 extern void ceiling_intrinsic (opnd_type *, expr_arg_type *, int *);
02714 extern void digits_intrinsic (opnd_type *, expr_arg_type *, int *);
02715 extern void epsilon_intrinsic (opnd_type *, expr_arg_type *, int *);
02716 extern void exponent_intrinsic(opnd_type *, expr_arg_type *, int *);
02717 extern void floor_intrinsic (opnd_type *, expr_arg_type *, int *);
02718 extern void fraction_intrinsic(opnd_type *, expr_arg_type *, int *);
02719 extern void huge_intrinsic (opnd_type *, expr_arg_type *, int *);
02720 extern void ibits_intrinsic (opnd_type *, expr_arg_type *, int *);
02721 extern void ibset_intrinsic (opnd_type *, expr_arg_type *, int *);
02722 extern void btest_intrinsic (opnd_type *, expr_arg_type *, int *);
02723 extern void ishft_intrinsic (opnd_type *, expr_arg_type *, int *);
02724 extern void ishftc_intrinsic (opnd_type *, expr_arg_type *, int *);
02725 extern void mvbits_intrinsic (opnd_type *, expr_arg_type *, int *);
02726 extern void all_intrinsic (opnd_type *, expr_arg_type *, int *);
02727 extern void tiny_intrinsic (opnd_type *, expr_arg_type *, int *);
02728 extern void spacing_intrinsic (opnd_type *, expr_arg_type *, int *);
02729 extern void cshift_intrinsic (opnd_type *, expr_arg_type *, int *);
02730 extern void eoshift_intrinsic (opnd_type *, expr_arg_type *, int *);
02731 extern void minloc_intrinsic (opnd_type *, expr_arg_type *, int *);
02732 extern void minval_intrinsic (opnd_type *, expr_arg_type *, int *);
02733 extern void matmul_intrinsic (opnd_type *, expr_arg_type *, int *);
02734 extern void pack_intrinsic (opnd_type *, expr_arg_type *, int *);
02735 extern void unpack_intrinsic (opnd_type *, expr_arg_type *, int *);
02736 extern void trim_intrinsic (opnd_type *, expr_arg_type *, int *);
02737 extern void spread_intrinsic (opnd_type *, expr_arg_type *, int *);
02738 extern void repeat_intrinsic (opnd_type *, expr_arg_type *, int *);
02739 extern void size_intrinsic (opnd_type *, expr_arg_type *, int *);
02740 extern void sizeof_intrinsic (opnd_type *, expr_arg_type *, int *);
02741 extern void lbound_intrinsic (opnd_type *, expr_arg_type *, int *);
02742 extern void ubound_intrinsic (opnd_type *, expr_arg_type *, int *);
02743 extern void shape_intrinsic (opnd_type *, expr_arg_type *, int *);
02744 extern void reshape_intrinsic (opnd_type *, expr_arg_type *, int *);
02745 extern void radix_intrinsic (opnd_type *, expr_arg_type *, int *);
02746 extern void range_intrinsic (opnd_type *, expr_arg_type *, int *);
02747 extern void kind_intrinsic (opnd_type *, expr_arg_type *, int *);
02748 extern void present_intrinsic (opnd_type *, expr_arg_type *, int *);
02749 extern void logical_intrinsic (opnd_type *, expr_arg_type *, int *);
02750 extern void nearest_intrinsic (opnd_type *, expr_arg_type *, int *);
02751 extern void scale_intrinsic (opnd_type *, expr_arg_type *, int *);
02752 extern void dshiftl_intrinsic (opnd_type *, expr_arg_type *, int *);
02753 extern void mmx_intrinsic (opnd_type *, expr_arg_type *, int *);
02754 extern void mldmx_intrinsic (opnd_type *, expr_arg_type *, int *);
02755 extern void mld_intrinsic (opnd_type *, expr_arg_type *, int *);
02756 extern void mul_intrinsic (opnd_type *, expr_arg_type *, int *);
02757 extern void mclr_intrinsic (opnd_type *, expr_arg_type *, int *);
02758 extern void readsm_intrinsic (opnd_type *, expr_arg_type *, int *);
02759 extern void ieee_finite_intrinsic (opnd_type *, expr_arg_type *, int *);
02760 extern void ieee_real_intrinsic (opnd_type *, expr_arg_type *, int *);
02761 extern void transfer_intrinsic (opnd_type *, expr_arg_type *, int *);
02762 extern void transpose_intrinsic (opnd_type *, expr_arg_type *, int *);
02763 extern void minexponent_intrinsic (opnd_type *, expr_arg_type *, int *);
02764 extern void maxexponent_intrinsic (opnd_type *, expr_arg_type *, int *);
02765 extern void precision_intrinsic (opnd_type *, expr_arg_type *, int *);
02766 extern void bit_size_intrinsic (opnd_type *, expr_arg_type *, int *);
02767 extern void rrspacing_intrinsic (opnd_type *, expr_arg_type *, int *);
02768 extern void set_exponent_intrinsic (opnd_type *, expr_arg_type *, int *);
02769 extern void dot_product_intrinsic (opnd_type *, expr_arg_type *, int *);
02770 extern void allocated_intrinsic (opnd_type *, expr_arg_type *, int *);
02771 extern void associated_intrinsic (opnd_type *, expr_arg_type *, int *);
02772 extern void len_trim_intrinsic (opnd_type *, expr_arg_type *, int *);
02773 extern void random_number_intrinsic(opnd_type *, expr_arg_type *, int *);
02774 extern void random_seed_intrinsic (opnd_type *, expr_arg_type *, int *);
02775 extern void fetch_and_add_intrinsic(opnd_type *, expr_arg_type *, int *);
02776 extern void lock_release_intrinsic (opnd_type *, expr_arg_type *, int *);
02777 extern void synchronize_intrinsic (opnd_type *, expr_arg_type *, int *);
02778 extern void free_intrinsic (opnd_type *, expr_arg_type *, int *);
02779 extern void null_intrinsic (opnd_type *, expr_arg_type *, int *);
02780 extern void malloc_intrinsic (opnd_type *, expr_arg_type *, int *);
02781 extern void num_images_intrinsic (opnd_type *, expr_arg_type *, int *);
02782 extern void system_clock_intrinsic (opnd_type *, expr_arg_type *, int *);
02783 #ifdef KEY
02784 extern void fnum_intrinsic (opnd_type *, expr_arg_type *, int *);
02785 extern void stat_intrinsic (opnd_type *, expr_arg_type *, int *);
02786 extern void fstat_intrinsic (opnd_type *, expr_arg_type *, int *);
02787 extern void signal_intrinsic (opnd_type *, expr_arg_type *, int *);
02788 extern void kill_intrinsic (opnd_type *, expr_arg_type *, int *);
02789 #endif
02790 extern void dsm_numthreads_intrinsic
02791 (opnd_type *, expr_arg_type *, int *);
02792 extern void omp_get_max_threads_intrinsic
02793 (opnd_type *, expr_arg_type *, int *);
02794 extern void omp_set_lock_intrinsic
02795 (opnd_type *, expr_arg_type *, int *);
02796 extern void compare_and_swap_intrinsic
02797 (opnd_type *, expr_arg_type *, int *);
02798 extern void selected_int_kind_intrinsic
02799 (opnd_type *, expr_arg_type *, int *);
02800 extern void selected_real_kind_intrinsic
02801 (opnd_type *, expr_arg_type *, int *);
02802 extern void memory_barrier_intrinsic
02803 (opnd_type *, expr_arg_type *, int *);
02804 extern void get_ieee_status_intrinsic
02805 (opnd_type *, expr_arg_type *, int *);
02806 extern void set_ieee_exception_intrinsic
02807 (opnd_type *, expr_arg_type *, int *);
02808 extern void test_ieee_interrupt_intrinsic
02809 (opnd_type *, expr_arg_type *, int *);
02810 extern void remote_write_barrier_intrinsic
02811 (opnd_type *, expr_arg_type *, int *);
02812 extern void write_memory_barrier_intrinsic
02813 (opnd_type *, expr_arg_type *, int *);
02814
02815 extern void check_dependence(boolean *dependant,
02816 opnd_type item,
02817 opnd_type exp);
02818 extern void array_bounds_resolution(int, boolean *);
02819 extern void array_dim_resolution(int, boolean);
02820 extern void pe_array_dim_resolution(int);
02821 extern int bound_semantics(int, boolean);
02822 extern void bounds_cdir_handler(int);
02823 extern int cast_typeless_constant(int, int, int, int);
02824 extern void cast_to_type_idx(opnd_type *, expr_arg_type *, int);
02825 extern void char_len_resolution(int, boolean);
02826 extern void char_bounds_resolution(int, boolean *);
02827 extern boolean check_asg_semantics(int, int, int, int);
02828 extern boolean check_substring_bounds(int);
02829 extern boolean check_array_bounds(int);
02830 extern void cif_begin_scope_rec(void);
02831 extern void cif_call_site_rec(int, int);
02832 extern void cif_cont_line_rec(int, int);
02833 extern void cif_copy_temp_to_actual_CIF(void);
02834 extern void cif_directive_rec(cif_directive_code_type, int, int);
02835 extern void cif_enable_disable_rec(void);
02836 extern void cif_end_scope_rec(void);
02837 extern void cif_end_unit_rec(char *);
02838 extern void cif_fake_a_unit (void);
02839 extern int cif_file_name_rec(char *, char *);
02840 extern void cif_include_rec(int, int, int);
02841 extern void cif_interface_block_rec(void);
02842 extern void cif_label_rec(int);
02843 extern void cif_loop_def_rec(void);
02844 extern void cif_machine_characteristics_rec(void);
02845 extern void cif_message_rec(int, int, int, msg_severities_type,
02846 char*, long, long, long, long, char*, int);
02847 extern void cif_misc_compiler_opts_rec(void);
02848 extern void cif_named_constant_rec(int, int, int);
02849 extern void cif_optimization_opts_rec(void);
02850 extern void cif_prog_unit_init(void);
02851 extern int cif_rename_rec(int, int, int, int);
02852 extern void cif_sb_usage_rec(int, int, int, cif_usage_code_type);
02853 extern void cif_scope_info_rec(void);
02854 extern void cif_send_attr(int, int);
02855 extern void cif_send_sytb(void);
02856 extern void cif_source_file_rec(int, src_form_type);
02857 extern void cif_stmt_type_rec(boolean, cif_stmt_type, int);
02858 extern void cif_summary_rec(char*, char*, char*, float, long, long);
02859 extern void cif_unit_rec(void);
02860 extern void cif_usage_rec(int, fld_type, int, int, int);
02861 extern void cif_use_module_rec(int, int, boolean);
02862 extern void clean_up_module_files(void);
02863 extern void close_cif(void);
02864 extern void collapse_interface_blk(int);
02865 # if defined(_HOST32) && defined(_TARGET64)
02866 extern boolean compare_cn_and_value(int, long long, int);
02867 #else
02868 extern boolean compare_cn_and_value(int, long, int);
02869 #endif
02870 extern boolean compare_opnds(opnd_type *, opnd_type *);
02871 extern char *convert_cval_to_string(long64 *, int, char *);
02872 extern char *convert_to_string(long_type *, int, char *);
02873 extern void copy_subtree(opnd_type *, opnd_type *);
02874 extern int copy_to_gl_subtree(int, fld_type);
02875 extern int copy_from_gl_subtree(int, fld_type);
02876 extern void copy_entry_exit_sh_list(int, int, int *, int *);
02877 extern int create_bd_ntry_for_const(expr_arg_type *,int,int);
02878 extern void create_mod_info_tbl(void);
02879 #ifdef KEY
02880 extern boolean create_mod_info_file(void);
02881 #else
02882 extern void create_mod_info_file(void);
02883 #endif
02884 extern int cvrt_str_to_cn(char *, int);
02885 extern void cvrt_to_pdg(char *);
02886 extern void decl_semantics(void);
02887 extern void exit_compiler(int);
02888 extern boolean expr_is_symbolic_constant(opnd_type *);
02889 extern boolean expr_semantics(opnd_type *, expr_arg_type *);
02890 #ifdef KEY
02891 extern int eq_ne_on_logical(expr_arg_type *exp_desc,
02892 expr_arg_type *exp_desc_l, expr_arg_type *exp_desc_r);
02893 #endif
02894 extern boolean expr_sem(opnd_type *, expr_arg_type *);
02895 extern boolean find_attr_in_il(int, int, opnd_type *);
02896 extern boolean find_attr_in_ir(int, int, opnd_type *);
02897 extern boolean find_prog_unit_tbl(int);
02898 extern void fixed_get_char(void);
02899 extern void fixed_get_char_literal(void);
02900 #ifdef KEY
02901
02902
02903 extern boolean constant_ptr_ok;
02904 #endif
02905 extern boolean fold_aggragate_expression(opnd_type *, expr_arg_type *,
02906 boolean);
02907 extern boolean fold_relationals(int, int, operator_type);
02908 extern boolean folder_driver(char *, int, char *, int, long_type *,
02909 int *, int, int, int, int, ...);
02910 #ifdef KEY
02911 extern void copy_and_pad_boz(long_type *dst, Uint dst_words,
02912 long_type *src, Uint src_words);
02913 #endif
02914 extern void free_tables(void);
02915 extern void free_get_char(void);
02916 extern void free_get_char_literal(void);
02917 extern void free_ir_list(int);
02918 extern void free_ir_stream(int);
02919 extern void free_stmt_expansion_opr(int);
02920 extern boolean fnd_semantic_err(obj_type, int, int, int, boolean);
02921 extern void gen_if_stmt(opnd_type *, int, int, int, int, int, int);
02922 extern int gen_il(int, boolean, int, int, ...);
02923 extern int gen_ir(fld_type, int, operator_type, int,
02924 int, int, fld_type, int);
02925
02926 extern void gen_rbounds_condition(opnd_type *, opnd_type *,
02927 opnd_type *, opnd_type *,
02928 opnd_type *, opnd_type *,
02929 int, int);
02930 extern void gen_runtime_checks(opnd_type *);
02931 extern void gen_runtime_ptr_chk(opnd_type *);
02932 extern void gen_sh(sh_position_type, stmt_type_type, int,
02933 int, boolean, boolean, boolean);
02934 #ifdef KEY
02935 extern int gen_present_ir(int, int, int);
02936 #endif
02937 #ifdef KEY
02938 extern int gen_sh_at(sh_position_type, stmt_type_type, int,
02939 int, boolean, boolean, boolean, int);
02940 #endif
02941 #ifdef KEY
02942 int do_count_allocatable_cpnt(int, int);
02943 int do_make_struct_opr(int, int, int, fld_type, int);
02944 int build_call(glb_tbl_idx_type, char *, int, int, int);
02945 int pass_by_ref(fld_type, int, int, int);
02946 int pre_gen_loops(int, int, int *);
02947 void post_gen_loops(int, int);
02948 void gen_loops(opnd_type *, opnd_type *, boolean);
02949 #endif
02950 extern void gen_gl_sh(sh_position_type, stmt_type_type, int,
02951 int, boolean, boolean, boolean);
02952 extern void gen_internal_call_stmt(char *, opnd_type *,
02953 sh_position_type);
02954 extern void gen_lb_array_ref(opnd_type *, int);
02955 extern void gen_opnd(opnd_type *, int, fld_type, int, int);
02956 extern int get_next_array_expr_element(opnd_type *, long64 *);
02957 extern char *get_src_path_name(void);
02958 extern int gen_stmt_expansion_opr(int, int);
02959 extern boolean get_temp_file(char *, FILE **, char *);
02960 extern void gen_temp_init(int, int);
02961 extern int gen_initialized_tmp(int, int, int);
02962 extern boolean gen_whole_substring (opnd_type *, int);
02963 extern char *global_to_local_file(int);
02964 extern int global_to_local_line_number(int);
02965 extern char *global_to_local_path(int);
02966 extern int global_to_file_line_number(int);
02967 extern void init_cif(char *, char *);
02968 extern void init_directive(int);
02969 extern void inline_processing(int);
02970 extern void insert_init_stmt_for_tmp(int);
02971 extern void insert_sh_chain(int, int, sh_position_type);
02972 extern void insert_sh_chain_after_entries(int, int);
02973 extern void insert_sh_chain_before(int);
02974 extern void interface_semantics_pass_driver(void);
02975 extern void issue_deferred_msgs (void);
02976 extern void issue_undefined_type_msg (int, int, int);
02977 extern int main(int, char *[]);
02978 extern void make_io_type_code(int, long_type *);
02979 extern int make_in_parent_string(int, int, int, int *);
02980 extern void mark_attr_defined(opnd_type *);
02981 extern boolean needs_bounds_check(int);
02982 extern void ntr_msg_queue(int, int, msg_severities_type, int,
02983 char *, long, int);
02984 extern void output_mod_info_file(void);
02985 extern void parse_prog_unit(void);
02986 extern void pdgcs_conversion(void);
02987 #ifdef KEY
02988
02989 #else
02990 extern void PRINTMSG(int, int, msg_severities_type, int, ...);
02991 #endif
02992 #ifdef KEY
02993 extern msg_severities_type ansi_or_warning(void);
02994 #endif
02995 extern void print_const_f(FILE *, int);
02996 extern void print_err_line(int, int);
02997 extern void print_scp_to_fortran(int, int, int, FILE *);
02998 extern char *print_type_f(int);
02999 extern int put_const_in_tbl(long);
03000 extern void remove_sh(int);
03001 extern void reset_lex(int, int);
03002 extern void reset_src_input(int, int);
03003 extern void scan_for_ptr_chk(opnd_type *);
03004 extern char scan_thru_close_paren(int, int, int);
03005 extern void semantics_pass_driver(void);
03006 extern void set_related_gl_source_lines(int);
03007 extern int set_up_logical_constant(long_type *, int, int, boolean);
03008 extern void set_up_which_entry_tmp(void);
03009 extern boolean set_stmt_type_known(void);
03010 extern long64 sm_unit_in_bits(int);
03011 extern void stmt_expansion_control_start(void);
03012 extern void stmt_expansion_control_end(opnd_type *);
03013 extern void terminate_PDGCS(void);
03014 extern void final_src_input(void);
03015 extern FILE *init_debug_file(void);
03016 extern boolean omp_extension_prefix(int);
03017 extern void print_al(int);
03018 extern void print_al_list(FILE *,int);
03019 extern void print_at(int);
03020 extern void print_at_all(int);
03021 extern void print_bd(int);
03022 extern void print_blk(int);
03023 extern void print_cn(int);
03024 extern void print_defines(void);
03025 extern void print_expanded_stmt(void);
03026 extern void print_eq(int);
03027 extern void print_fp(int);
03028 extern void print_ga(int);
03029 extern void print_gb(int);
03030 extern void print_gl(int);
03031 extern void print_gn(int);
03032 extern void print_gt(int);
03033 extern void print_hn(int);
03034 extern void print_il(int);
03035 extern void print_ir(int);
03036 extern void print_ln(int);
03037 extern void print_lnr(int, int);
03038 extern void print_mem_usage_report(char *, int, int);
03039 extern void print_ml(int);
03040 extern void print_mf(int);
03041 extern void print_ro(int);
03042 extern void print_sb(int);
03043 extern void print_scp(int, boolean);
03044 extern void print_sn(int);
03045 extern void print_sn_list(int);
03046 extern void print_src_stk_entry(int);
03047 extern void print_src_input_tbls(void);
03048 extern void print_typ(int);
03049 extern void print_blk_tbl(void);
03050 extern void print_bd_tbl(void);
03051 extern void print_cmd_tbl(void);
03052 extern void print_compressed_sytb(int, int);
03053 extern void print_cn_tbl(void);
03054 extern void print_eq_tbl(void);
03055 extern void print_fp_includes(void);
03056 extern void print_fp_tbl(void);
03057 extern void print_ga_tbl(void);
03058 extern void print_gb_tbl(void);
03059 extern void print_gl_tbl(void);
03060 extern void print_gn_tbl(void);
03061 extern void print_gt_tbl(void);
03062 extern void print_hn_tbl(void);
03063 extern void print_ir_tbl(void);
03064 extern void print_ln_tbl(void);
03065 extern void print_ml_tbl(void);
03066 extern void print_ro_tbl(int);
03067 extern void print_sb_tbl(void);
03068 extern void print_scp_tbl(void);
03069 extern void print_sh_tbl(boolean);
03070 extern void print_sn_tbl(void);
03071 extern void print_typ_tbl(void);
03072 extern void print_sytb(int, boolean, boolean);
03073 #ifdef KEY
03074 extern void print_arg_passing(FILE *);
03075 #endif
03076 extern void print_attr_by_name(void);
03077 extern void print_ln_by_name(void);
03078 extern void print_sb_by_name(void);
03079 extern void dump_func_trace_info(trace_type, char *, char *);
03080 extern void dump_mem_trace_info(trace_type, char *, void *,
03081 void *, long, int);
03082
03083
03084
03085
03086
03087 extern ac_cmd_line_flags_type ac_cmd_line_flags;
03088 extern char assembly_file[];
03089 extern char assembly_listing_file[];
03090 extern boolean assembly_output;
03091 extern char *basic_type_str[];
03092 extern char bin_file[];
03093 extern boolean binary_output;
03094 extern long ccg_dump_flags;
03095 extern char dot_i_file[];
03096 extern cdir_switch_type cdir_switches;
03097 extern FILE *c_i_f;
03098 extern int cif_C_opts;
03099 extern boolean cif_first_pgm_unit;
03100 extern int cif_flags;
03101 extern int cif_internal_proc_start_line;
03102 extern int cif_module_proc_start_line;
03103 extern char cif_name[];
03104 extern boolean cif_need_unit_rec;
03105 extern FILE *cif_actual_file;
03106 extern boolean cif_pgm_unit_error_recovery;
03107 extern int cif_pgm_unit_start_line;
03108 extern FILE *cif_tmp_file;
03109 extern boolean cif_tmp_so_no_msg;
03110 extern cmd_line_flags_type cmd_line_flags;
03111 extern int code_size;
03112 extern boolean comp_gen_expr;
03113 extern int comp_phase;
03114 extern int const_safevl_idx;
03115 extern convert_to_string_type convert_to_string_fmt;
03116 extern int curr_debug_lbl;
03117 extern int curr_glb_line;
03118 extern int curr_internal_lbl;
03119 extern int curr_scp_idx;
03120 extern int curr_stmt_sh_idx;
03121 extern int curr_gl_stmt_sh_idx;
03122 extern int data_size;
03123 extern linear_type_type double_linear_type[Num_Fortran_Types];
03124 extern boolean disregard_mics[];
03125 extern boolean disregard_directive[];
03126 extern boolean disregard_mips[];
03127 extern boolean disregard_open_mp[];
03128 extern FILE *debug_file;
03129 extern char debug_file_name[];
03130 extern dump_flags_type dump_flags;
03131 extern long *dt_cmp_tbl;
03132 extern int expanded_intrinsic_list;
03133 extern expr_mode_type expr_mode;
03134 #ifdef KEY
03135
03136
03137 extern boolean defining_stmt_func;
03138 #endif
03139 extern void (*get_char) ();
03140 extern void (*get_char_literal) ();
03141 extern long glb_tbl_idx[Num_Glb_Tbl_Idxs];
03142 extern int global_stmt_sh_idx;
03143 extern linear_type_type half_linear_type[Num_Fortran_Types];
03144 extern boolean have_unnamed_pgm_unit;
03145 extern boolean have_main_pgm_unit;
03146 extern boolean need_pure_function;
03147 extern boolean host_ieee;
03148 extern boolean in_action_stmt_of_if_where_or_forall;
03149 extern int include_path_idx;
03150 extern linear_type_type init_default_linear_type[Num_Fortran_Types];
03151 extern linear_type_type default_linear_type[Num_Fortran_Types];
03152 extern expr_arg_type init_exp_desc;
03153 extern opnd_type init_target_opnd;
03154 extern boolean inline_global_sgi;
03155 extern int inline_path_idx;
03156 extern boolean issue_overflow_msg_719;
03157 extern long max_call_list_size;
03158 extern long_type max_character_length;
03159 extern char mod_out_path[];
03160 extern int module_path_idx;
03161 #ifdef KEY
03162
03163 extern int intrinsic_module_path_idx;
03164 #endif
03165 extern boolean need_new_sh;
03166 extern boolean need_to_issue_719;
03167 extern boolean no_func_expansion;
03168 extern boolean noinline_global_sgi;
03169 extern opnd_type null_opnd;
03170 extern int num_ansi;
03171 extern int num_cautions;
03172 extern int num_comments;
03173 extern int num_errors;
03174 extern int num_notes;
03175 extern int num_optz_msgs;
03176 extern int num_warnings;
03177 extern int num_of_derived_types;
03178 extern int num_prog_unit_errors;
03179 extern on_off_flags_type on_off_flags;
03180 extern opt_flags_type opt_flags;
03181 extern char parse_operand_insert[40];
03182 extern int pgm_unit_start_line;
03183 extern char preinline_file[];
03184 extern int prev_statement_number;
03185 extern char program_unit_name[MAX_ID_LEN+1];
03186 extern int register_bit_size_tbl[Num_Linear_Types];
03187 extern int sb_len[];
03188 extern char *sb_name[];
03189 extern char *search_str[];
03190 extern src_form_type source_form;
03191 extern char src_file[];
03192 extern int statement_number;
03193 extern int stmt_end_col;
03194 extern int stmt_end_line;
03195 extern int stmt_label_idx;
03196 extern int stmt_start_col;
03197 extern int stmt_start_line;
03198 extern stmt_type_type stmt_type;
03199 extern char *stmt_type_str[];
03200 extern int storage_bit_kind_tbl[Num_Linear_Types];
03201 extern int storage_bit_size_tbl[Num_Linear_Types];
03202 extern int bit_size_tbl[Num_Linear_Types];
03203 extern int storage_bit_prec_tbl[Num_Linear_Types];
03204 extern int stride_mult_unit_in_bits[Num_Linear_Types];
03205 extern target_machine_type target_machine;
03206 extern int target_safevl;
03207 extern boolean target_ieee;
03208 extern int target_os;
03209 extern boolean target_sv1;
03210 extern boolean target_triton;
03211 extern boolean target_t3e;
03212 extern long true_value;
03213 extern int where_ir_idx;
03214 extern int where_dealloc_stmt_idx;
03215 extern int type_alignment_tbl[Num_Linear_Types];
03216
03217
03218
03219
03220
03221
03222 enum io_stmt_entry {Backspace,
03223 Close,
03224 Endfile,
03225 Inquire,
03226 Open,
03227 Read,
03228 Rewind,
03229 Write,
03230 Print,
03231 Decode,
03232 Encode
03233 };
03234
03235
03236 enum exp_form_entry {Exp_Form,
03237 Format_Form,
03238 Label_Form,
03239 Namelist_Form,
03240 Var_Only_Form
03241 };
03242
03243 typedef enum exp_form_entry exp_form_type;
03244 typedef enum io_stmt_entry io_stmt_type;
03245
03246 typedef struct ciitem_entry ciitem_entry_type;
03247 typedef struct ciitem_tbl_entry ciitem_tbl_type;
03248 typedef struct cilist1 cilist1_type;
03249
03250 typedef char const_opts_type[MAX_CONST_OPT_LENGTH];
03251 typedef char ciitem_name[MAX_CIITEM_NAME_LENGTH];
03252
03253
03254 struct ciitem_entry {ciitem_name name;
03255 int name_length;
03256 exp_form_type allowed_form;
03257 int num_types;
03258 basic_type_type allowed_types[MAX_NUM_ALLOWED_TYPES];
03259 int arg_position;
03260 boolean has_const_opts;
03261 boolean scalar;
03262 int num_const_opts;
03263 const_opts_type const_opts[MAX_NUM_CONST_OPTS];
03264 };
03265
03266 typedef ciitem_entry_type ciitem_list_type[MAX_NUM_CIITEM];
03267
03268 struct ciitem_tbl_entry{int num_ciitems;
03269 int num_diff_ciitems;
03270 int num_without_kwd;
03271 ciitem_list_type ciitem_list;
03272 };
03273
03274 struct cilist1 {Uint version : 8;
03275 Uint uflag : 8;
03276 Uint eeeflag : 8;
03277 Uint dsflag : 8;
03278 Uint fmt : 8;
03279 Uint stksize : 8;
03280 Uint unused : 8;
03281 Uint icount : 8;
03282 };
03283
03284
03285 extern cif_usage_code_type xref_state;
03286
03287 extern long message_error_tbl[MAX_MSG_SIZE];
03288 extern long message_suppress_tbl[MAX_MSG_SIZE];
03289 extern long message_warning_tbl[MAX_MSG_SIZE];
03290
03291 extern boolean check_type_conversion;
03292 extern int target_type_idx;
03293 extern int target_char_len_idx;
03294 extern int target_array_idx;
03295
03296 extern boolean insert_subs_ok;
03297
03298 extern boolean two_word_fcd;
03299 extern boolean char_len_in_bytes;
03300
03301 typedef struct f90_type {
03302
03303 unsigned int unused : 32;
03304
03305 enum typecodes {
03306 DVTYPE_UNUSED = 0,
03307 DVTYPE_TYPELESS = 1,
03308 DVTYPE_INTEGER = 2,
03309 DVTYPE_REAL = 3,
03310 DVTYPE_COMPLEX = 4,
03311 DVTYPE_LOGICAL = 5,
03312 DVTYPE_ASCII = 6,
03313 DVTYPE_DERIVEDBYTE = 7,
03314 DVTYPE_DERIVEDWORD = 8
03315 } type :8;
03316 unsigned int dpflag :1;
03317
03318 enum dec_codes {
03319 DVD_DEFAULT = 0,
03320
03321
03322
03323
03324
03325
03326
03327
03328
03329 DVD_KIND = 1,
03330
03331
03332 DVD_STAR = 2,
03333 DVD_KIND_CONST = 3,
03334
03335 DVD_KIND_DOUBLE = 4
03336
03337
03338
03339 } kind_or_star :3;
03340
03341
03342 unsigned int int_len :12;
03343
03344
03345 unsigned int dec_len :8;
03346
03347
03348 } f90_type_t;
03349
03350
03351
03352
03353
03354
03355
03356
03357 # if defined(_DOPE_VECTOR_32_OR_64) || defined(TARG_X8664)
03358 union ext_dope_entry {
03359 struct {
03360 int base_addr;
03361 int el_len;
03362 unsigned int assoc : 1;
03363 unsigned int ptr_alloc : 1;
03364 unsigned int p_or_a : 2;
03365 unsigned int a_contig : 1;
03366 unsigned int unused_1 : 27;
03367
03368 unsigned int unused_2 : 29;
03369 unsigned int num_dims : 3;
03370
03371 # ifdef _TYPE_CODE_64_BIT
03372 f90_type_t type_code;
03373 # else
03374 unsigned int unused_3 : 32;
03375 unsigned int type_code : 32;
03376 # endif
03377
03378 int orig_base;
03379 int orig_size;
03380
03381 struct {
03382 int low_bound;
03383 int extent;
03384 int stride_mult;
03385 } dim[7];
03386
03387 int unused_fill[25];
03388
03389 } ptr32;
03390 struct {
03391 long long base_addr;
03392 long long el_len;
03393 unsigned int assoc : 1;
03394 unsigned int ptr_alloc : 1;
03395 unsigned int p_or_a : 2;
03396 unsigned int a_contig : 1;
03397 unsigned int unused_1 : 27;
03398
03399 unsigned int unused_2 : 29;
03400 unsigned int num_dims : 3;
03401
03402 # ifdef _TYPE_CODE_64_BIT
03403 f90_type_t type_code;
03404 # else
03405 unsigned int unused_3 : 32;
03406 unsigned int type_code : 32;
03407 # endif
03408
03409 long long orig_base;
03410 long long orig_size;
03411
03412 struct {
03413 long long low_bound;
03414 long long extent;
03415 long long stride_mult;
03416 } dim[7];
03417 } ptr64;
03418 };
03419
03420 typedef union ext_dope_entry ext_dope_type;
03421
03422 # else
03423
03424 struct ext_dope_entry {
03425 long_type base_addr;
03426 long_type el_len;
03427 # if defined(_TARGET64)
03428 unsigned int assoc : 1;
03429 unsigned int ptr_alloc : 1;
03430 unsigned int p_or_a : 2;
03431 unsigned int a_contig : 1;
03432 unsigned int unused_1 : 27;
03433 unsigned int unused_2 : 29;
03434
03435 unsigned int num_dims : 3;
03436
03437 # ifdef _TYPE_CODE_64_BIT
03438 f90_type_t type_code;
03439 # else
03440 unsigned int unused_3 : 32;
03441 unsigned int type_code : 32;
03442 # endif
03443 # else
03444 unsigned int assoc : 1;
03445 unsigned int ptr_alloc : 1;
03446 unsigned int p_or_a : 2;
03447 unsigned int a_contig : 1;
03448 unsigned int unused_1 : 24;
03449
03450 unsigned int num_dims : 3;
03451
03452 unsigned int type_code : 32;
03453 # endif
03454
03455 long_type orig_base;
03456 long_type orig_size;
03457
03458 struct {
03459 long_type low_bound;
03460 long_type extent;
03461 long_type stride_mult;
03462 } dim[7];
03463 };
03464
03465 typedef struct ext_dope_entry ext_dope_type;
03466
03467 # endif
03468
03469 # if defined(_DOPE_VECTOR_32_OR_64)
03470 struct int_dope_entry {
03471 int base_addr;
03472 int el_len;
03473 unsigned int assoc : 1;
03474 unsigned int ptr_alloc : 1;
03475 unsigned int p_or_a : 2;
03476 unsigned int a_contig : 1;
03477 unsigned int unused_1 : 27;
03478
03479 unsigned int unused_2 : 29;
03480 unsigned int num_dims : 3;
03481
03482 # ifdef _TYPE_CODE_64_BIT
03483 f90_type_t type_code;
03484 # else
03485 unsigned int unused_3 : 32;
03486 unsigned int type_code : 32;
03487 # endif
03488
03489 int orig_base;
03490 int orig_size;
03491
03492 struct {
03493 int low_bound;
03494 int extent;
03495 int stride_mult;
03496 } dim[7];
03497
03498 };
03499
03500 # else
03501
03502 struct int_dope_entry {
03503 long_type base_addr;
03504 long_type el_len;
03505 # if defined(_TARGET64)
03506 unsigned int assoc : 1;
03507 unsigned int ptr_alloc : 1;
03508 unsigned int p_or_a : 2;
03509 unsigned int a_contig : 1;
03510 unsigned int unused_1 : 27;
03511 unsigned int unused_2 : 29;
03512
03513 unsigned int num_dims : 3;
03514
03515 # ifdef _TYPE_CODE_64_BIT
03516 f90_type_t type_code;
03517 # else
03518 unsigned int unused_3 : 32;
03519 unsigned int type_code : 32;
03520 # endif
03521 # else
03522 unsigned int assoc : 1;
03523 unsigned int ptr_alloc : 1;
03524 unsigned int p_or_a : 2;
03525 unsigned int a_contig : 1;
03526 unsigned int unused_1 : 24;
03527
03528 unsigned int num_dims : 3;
03529
03530 unsigned int type_code : 32;
03531 # endif
03532
03533 long_type orig_base;
03534 long_type orig_size;
03535
03536 struct {
03537 long_type low_bound;
03538 long_type extent;
03539 long_type stride_mult;
03540 } dim[7];
03541 };
03542 # endif
03543
03544 typedef struct int_dope_entry int_dope_type;
03545
03546
03547
03548
03549
03550
03551
03552
03553
03554 struct exp_tbl_entry {
03555 boolean ext : 1;
03556 linear_type_type type : 31;
03557 };
03558
03559
03560 typedef struct exp_tbl_entry exp_tbl_type;
03561
03562
03563
03564
03565
03566
03567
03568
03569 typedef struct nmlist_goli {
03570 unsigned int valtype :8;
03571 unsigned int :24;
03572 # ifndef _BITFIELD_RIGHT_TO_LEFT
03573 unsigned int :32;
03574 # endif
03575 } nmlist_goli_t;
03576
03577
03578
03579
03580
03581
03582
03583 typedef struct {
03584 unsigned int version :3;
03585 #if (defined(_TARGET64) || (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) || defined(_TARGET_OS_DARWIN)) && \
03586 ! defined(_BITFIELD_RIGHT_TO_LEFT)
03587 unsigned int :29;
03588 unsigned int :16;
03589 #else
03590 unsigned int :13;
03591 #endif
03592 unsigned int icount :16;
03593
03594 } nmlist_group_hdr;
03595
03596
03597
03598
03599
03600
03601
03602
03603 typedef struct nmlist_struclist {
03604
03605 #if (defined(_TARGET64) || (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX)) || defined(_TARGET_OS_DARWIN)) && \
03606 ! defined(_BITFIELD_RIGHT_TO_LEFT)
03607 unsigned int :32;
03608 unsigned int :16;
03609 #else
03610 unsigned int :16;
03611 #endif
03612 unsigned int structlen :16;
03613 } nmlist_struclist_t;
03614
03615
03616
03617 extern void print_dv (int_dope_type *, boolean);
03618
03619 extern long linear_to_arith[Num_Linear_Types];
03620 extern boolean in_constructor;
03621 extern boolean in_implied_do;
03622 extern boolean parsing_kind_selector;
03623 extern int num_host_wds[Num_Linear_Types];
03624 extern boolean directives_are_global;
03625 extern boolean insert_global_directives;
03626 extern int curr_stmt_stk_il_idx;
03627
03628 extern long argchck_suppress_msg[40];
03629 extern int num_argchck_suppress_msg;
03630
03631 # ifdef _USE_FOLD_DOT_f
03632 #ifdef KEY
03633 extern boolean kludge_input_conversion (char *, int, boolean);
03634 #else
03635 extern void kludge_input_conversion (char *, int);
03636 #endif
03637 extern void kludge_output_conversion (long_type *, int, char *);
03638 # endif
03639 #ifdef KEY
03640 extern boolean special_case_fcn_to_sub(int spec_idx);
03641 extern char *init_msg_processing (char *[]);
03642 extern void process_cmd_line (int, char *[], char *);
03643 #endif
03644 #ifdef KEY
03645 extern boolean c_ptr_abi_trouble(int);
03646 extern boolean is_x8664_n32();
03647 #endif
03648
03649 #ifdef KEY
03650
03651
03652
03653
03654 # define INTRIN_SUBR_SUFFIX ":Subroutine"
03655 #endif
03656