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 enum addr_mode_values {Addr_Full,
00044 Addr_Fast };
00045
00046 enum comp_phase_values {Cmdline_Parsing,
00047 Pass1_Parsing,
00048 Lex_Parsing,
00049 Decl_Semantics,
00050 Pass2_Semantics,
00051 Inlining,
00052 Pdg_Conversion
00053 };
00054
00055 enum convert_to_string_values {Dont_Care,
00056 Binary_Fmt,
00057 Octal_Fmt,
00058 Hex_Fmt,
00059 Character_Fmt
00060 };
00061
00062 enum basic_type_values {Integer,
00063 Logical,
00064 Real,
00065 Complex,
00066 CRI_Ptr,
00067 CRI_Parcel_Ptr,
00068 CRI_Ch_Ptr,
00069 Typeless,
00070 Character,
00071 Structure,
00072 Num_Basic_Types,
00073 Last_Linear_Type = CRI_Ch_Ptr
00074 };
00075
00076 enum debug_lvl_values {Debug_Lvl_0,
00077 Debug_Lvl_1,
00078 Debug_Lvl_2,
00079 Debug_Lvl_3,
00080 No_Debugging
00081 };
00082
00083 enum expr_mode_values {Initialization_Expr,
00084 Specification_Expr,
00085 Stmt_Func_Expr,
00086 Data_Stmt_Target,
00087 Data_Stmt_Target_Expr,
00088 Restricted_Imp_Do_Target,
00089 Restricted_Imp_Do_Expr,
00090 Regular_Expr
00091 };
00092
00093 enum fld_values {NO_Tbl_Idx,
00094 CN_Tbl_Idx,
00095 SB_Tbl_Idx,
00096 IL_Tbl_Idx,
00097 AT_Tbl_Idx,
00098 SH_Tbl_Idx,
00099 IR_Tbl_Idx,
00100 IMPLICIT_Tbl_Idx
00101 };
00102
00103 enum fortran_type_values {Fortran_Integer,
00104 Fortran_Logical,
00105 Fortran_Real,
00106 Fortran_Double,
00107 Fortran_Complex,
00108 Fortran_Double_Complex,
00109 Fortran_Character,
00110 Fortran_Typeless,
00111 Num_Fortran_Types
00112 };
00113
00114 enum tasking_scope_values {Priv, Shared};
00115 typedef enum tasking_scope_values task_scope_type;
00116
00117
00118
00119
00120
00121
00122
00123 enum forward_ref_values {From_Assign_Stmt,
00124 From_Do_Stmt,
00125 To_Format_Stmt
00126 };
00127
00128
00129
00130
00131
00132
00133 enum glb_tbl_idx_values {Allocate_Attr_Idx,
00134 Ptr_Asg_Attr_Idx,
00135 Argchck_Attr_Idx,
00136 Backspace_Attr_Idx,
00137 Buffer_In_Attr_Idx,
00138 Buffer_Out_Attr_Idx,
00139 Close_Attr_Idx,
00140 Dealloc_Attr_Idx,
00141 Deallocate_Attr_Idx,
00142 End_Attr_Idx,
00143 Endfile_Attr_Idx,
00144 Inquire_Attr_Idx,
00145 Main_Attr_Idx,
00146 Open_Attr_Idx,
00147 Pause_Attr_Idx,
00148 Realloc_Attr_Idx,
00149 Rewind_Attr_Idx,
00150 Stop_Attr_Idx,
00151 Conform_Attr_Idx,
00152 Bounds_Attr_Idx,
00153 Rbounds_Attr_Idx,
00154 Sbounds_Attr_Idx,
00155 Ptr_Chk_Attr_Idx,
00156 Pe_Offset_Attr_Idx,
00157 Set_Numthreads_Attr_Idx,
00158 Num_Glb_Tbl_Idxs
00159 };
00160
00161
00162 enum inline_lvl_values {Inline_Lvl_0,
00163 Inline_Lvl_1,
00164 Inline_Lvl_2,
00165 Inline_Lvl_3,
00166 Inline_Lvl_4,
00167 Inline_Lvl_Err };
00168
00169 enum short_circuit_lvl_values {Short_Circuit_Off,
00170 Short_Circuit_Present,
00171 Short_Circuit_Left_Right,
00172 Short_Circuit_Functions};
00173
00174 typedef enum short_circuit_lvl_values short_circuit_lvl_type;
00175
00176 enum sgi_inline_state_values {Not_Specified_Sgi,
00177 Inline_Sgi,
00178 Noinline_Sgi };
00179
00180 typedef enum sgi_inline_state_values sgi_inline_state_type;
00181
00182
00183
00184 enum intrinsic_values {Unknown_Intrinsic,
00185 Abs_Intrinsic,
00186 Achar_Intrinsic,
00187 Acos_Intrinsic,
00188 Acosd_Intrinsic,
00189 Add_And_Fetch_Intrinsic,
00190 Adjustl_Intrinsic,
00191 Adjustr_Intrinsic,
00192 Aimag_Intrinsic,
00193 Aint_Intrinsic,
00194 All_Intrinsic,
00195 Allocated_Intrinsic,
00196 Alog_Intrinsic,
00197 Alog10_Intrinsic,
00198 Amax0_Intrinsic,
00199 Amax1_Intrinsic,
00200 Amin0_Intrinsic,
00201 Amin1_Intrinsic,
00202 Amod_Intrinsic,
00203 And_Intrinsic,
00204 And_And_Fetch_Intrinsic,
00205 Anint_Intrinsic,
00206 Any_Intrinsic,
00207 Asin_Intrinsic,
00208 Asind_Intrinsic,
00209 Associated_Intrinsic,
00210 Atan_Intrinsic,
00211 Atan2_Intrinsic,
00212 Atan2d_Intrinsic,
00213 Atand_Intrinsic,
00214 Bitest_Intrinsic,
00215 Bit_Size_Intrinsic,
00216 Bjtest_Intrinsic,
00217 Bktest_Intrinsic,
00218 Btest_Intrinsic,
00219 Cabs_Intrinsic,
00220 Ccos_Intrinsic,
00221 Cdabs_Intrinsic,
00222 Cdcos_Intrinsic,
00223 Cdexp_Intrinsic,
00224 Cdlog_Intrinsic,
00225 Cdsin_Intrinsic,
00226 Cdsqrt_Intrinsic,
00227 Ceiling_Intrinsic,
00228 Cexp_Intrinsic,
00229 Char_Intrinsic,
00230 Clear_Ieee_Exception_Intrinsic,
00231 Cloc_Intrinsic,
00232 Clock_Intrinsic,
00233 Clog_Intrinsic,
00234 Cmplx_Intrinsic,
00235 Compare_And_Swap_Intrinsic,
00236 Compl_Intrinsic,
00237 Conjg_Intrinsic,
00238 Cos_Intrinsic,
00239 Cosd_Intrinsic,
00240 Cosh_Intrinsic,
00241 Cot_Intrinsic,
00242 Count_Intrinsic,
00243 Cputime_Intrinsic,
00244 Cqabs_Intrinsic,
00245 Cqcos_Intrinsic,
00246 Cqexp_Intrinsic,
00247 Cqlog_Intrinsic,
00248 Cqsin_Intrinsic,
00249 Cqsqrt_Intrinsic,
00250 Cshift_Intrinsic,
00251 Csin_Intrinsic,
00252 Csmg_Intrinsic,
00253 Csqrt_Intrinsic,
00254 Cvmgm_Intrinsic,
00255 Cvmgn_Intrinsic,
00256 Cvmgp_Intrinsic,
00257 Cvmgt_Intrinsic,
00258 Cvmgz_Intrinsic,
00259 C_Loc_Intrinsic,
00260 Dabs_Intrinsic,
00261 Dacos_Intrinsic,
00262 Dacosd_Intrinsic,
00263 Dasin_Intrinsic,
00264 Dasind_Intrinsic,
00265 Datan_Intrinsic,
00266 Datan2_Intrinsic,
00267 Datan2d_Intrinsic,
00268 Datand_Intrinsic,
00269 Date_Intrinsic,
00270 Date_And_Time_Intrinsic,
00271 Dble_Intrinsic,
00272 Dbleq_Intrinsic,
00273 Dcmplx_Intrinsic,
00274 Dconjg_Intrinsic,
00275 Dcos_Intrinsic,
00276 Dcosd_Intrinsic,
00277 Dcosh_Intrinsic,
00278 Dcot_Intrinsic,
00279 Ddim_Intrinsic,
00280 Dexp_Intrinsic,
00281 Dfloat_Intrinsic,
00282 Dfloati_Intrinsic,
00283 Dfloatj_Intrinsic,
00284 Dfloatk_Intrinsic,
00285 Digits_Intrinsic,
00286 Dim_Intrinsic,
00287 Dimag_Intrinsic,
00288 Dint_Intrinsic,
00289 Disable_Ieee_Interrupt_Intrinsic,
00290 Dlog_Intrinsic,
00291 Dlog10_Intrinsic,
00292 Dmax1_Intrinsic,
00293 Dmin1_Intrinsic,
00294 Dmod_Intrinsic,
00295 Dnint_Intrinsic,
00296 Dot_Product_Intrinsic,
00297 Dprod_Intrinsic,
00298 Dreal_Intrinsic,
00299 Dshiftl_Intrinsic,
00300 Dshiftr_Intrinsic,
00301 Dsign_Intrinsic,
00302 Dsin_Intrinsic,
00303 Dsind_Intrinsic,
00304 Dsinh_Intrinsic,
00305 DSM_Chunksize_Intrinsic,
00306 DSM_Distribution_Block_Intrinsic,
00307 DSM_Distribution_Cyclic_Intrinsic,
00308 DSM_Distribution_Star_Intrinsic,
00309 DSM_Isdistributed_Intrinsic,
00310 DSM_Isreshaped_Intrinsic,
00311 DSM_Numchunks_Intrinsic,
00312 DSM_Numthreads_Intrinsic,
00313 DSM_Rem_Chunksize_Intrinsic,
00314 DSM_This_Chunksize_Intrinsic,
00315 DSM_This_Startingindex_Intrinsic,
00316 DSM_This_Threadnum_Intrinsic,
00317 Dsqrt_Intrinsic,
00318 Dtan_Intrinsic,
00319 Dtand_Intrinsic,
00320 Dtanh_Intrinsic,
00321 Enable_Ieee_Interrupt_Intrinsic,
00322 Eoshift_Intrinsic,
00323 Epsilon_Intrinsic,
00324 Eqv_Intrinsic,
00325 Exit_Intrinsic,
00326 Exp_Intrinsic,
00327 Exponent_Intrinsic,
00328 Fcd_Intrinsic,
00329 Fetch_And_Add_Intrinsic,
00330 Fetch_And_And_Intrinsic,
00331 Fetch_And_Nand_Intrinsic,
00332 Fetch_And_Or_Intrinsic,
00333 Fetch_And_Sub_Intrinsic,
00334 Fetch_And_Xor_Intrinsic,
00335 Float_Intrinsic,
00336 Floati_Intrinsic,
00337 Floatj_Intrinsic,
00338 Floatk_Intrinsic,
00339 Floor_Intrinsic,
00340 Fp_Class_Intrinsic,
00341 Fraction_Intrinsic,
00342 Free_Intrinsic,
00343 Getpos_Intrinsic,
00344 Get_Ieee_Exceptions_Intrinsic,
00345 Get_Ieee_Interrupts_Intrinsic,
00346 Get_Ieee_Rounding_Mode_Intrinsic,
00347 Get_Ieee_Status_Intrinsic,
00348 Huge_Intrinsic,
00349 Iabs_Intrinsic,
00350 Iachar_Intrinsic,
00351 Iand_Intrinsic,
00352 Ibchng_Intrinsic,
00353 Ibclr_Intrinsic,
00354 Ibits_Intrinsic,
00355 Ibset_Intrinsic,
00356 Ichar_Intrinsic,
00357 Idate_Intrinsic,
00358 Idim_Intrinsic,
00359 Idint_Intrinsic,
00360 Idnint_Intrinsic,
00361 Ieee_Binary_Scale_Intrinsic,
00362 Ieee_Class_Intrinsic,
00363 Ieee_Copy_Sign_Intrinsic,
00364 Ieee_Exponent_Intrinsic,
00365 Ieee_Finite_Intrinsic,
00366 Ieee_Int_Intrinsic,
00367 Ieee_Is_Nan_Intrinsic,
00368 Ieee_Next_After_Intrinsic,
00369 Ieee_Real_Intrinsic,
00370 Ieee_Remainder_Intrinsic,
00371 Ieee_Unordered_Intrinsic,
00372 Ieor_Intrinsic,
00373 Ifix_Intrinsic,
00374 Iiabs_Intrinsic,
00375 Iiand_Intrinsic,
00376 Iibchng_Intrinsic,
00377 Iibclr_Intrinsic,
00378 Iibits_Intrinsic,
00379 Iibset_Intrinsic,
00380 Iidim_Intrinsic,
00381 Iidint_Intrinsic,
00382 Iieor_Intrinsic,
00383 Iifix_Intrinsic,
00384 Iint_Intrinsic,
00385 Iior_Intrinsic,
00386 Iiqint_Intrinsic,
00387 Iisha_Intrinsic,
00388 Iishc_Intrinsic,
00389 Iishft_Intrinsic,
00390 Iishftc_Intrinsic,
00391 Iishl_Intrinsic,
00392 Iisign_Intrinsic,
00393 Ilen_Intrinsic,
00394 Imag_Intrinsic,
00395 Imod_Intrinsic,
00396 Imvbits_Intrinsic,
00397 Index_Intrinsic,
00398 Inint_Intrinsic,
00399 Inot_Intrinsic,
00400 Int_Intrinsic,
00401 Int1_Intrinsic,
00402 Int2_Intrinsic,
00403 Int4_Intrinsic,
00404 Int8_Intrinsic,
00405 Int_Mult_Upper_Intrinsic,
00406 Ior_Intrinsic,
00407 Iqint_Intrinsic,
00408 Iqnint_Intrinsic,
00409 Irtc_Intrinsic,
00410 Isha_Intrinsic,
00411 Ishc_Intrinsic,
00412 Ishft_Intrinsic,
00413 Ishftc_Intrinsic,
00414 Ishl_Intrinsic,
00415 Isign_Intrinsic,
00416 Isnan_Intrinsic,
00417 Jdate_Intrinsic,
00418 Jiabs_Intrinsic,
00419 Jiand_Intrinsic,
00420 Jibchng_Intrinsic,
00421 Jibclr_Intrinsic,
00422 Jibits_Intrinsic,
00423 Jibset_Intrinsic,
00424 Jidim_Intrinsic,
00425 Jidint_Intrinsic,
00426 Jieor_Intrinsic,
00427 Jifix_Intrinsic,
00428 Jint_Intrinsic,
00429 Jior_Intrinsic,
00430 Jiqint_Intrinsic,
00431 Jisha_Intrinsic,
00432 Jishc_Intrinsic,
00433 Jishft_Intrinsic,
00434 Jishftc_Intrinsic,
00435 Jishl_Intrinsic,
00436 Jisign_Intrinsic,
00437 Jmod_Intrinsic,
00438 Jmvbits_Intrinsic,
00439 Jnint_Intrinsic,
00440 Jnot_Intrinsic,
00441 Kiabs_Intrinsic,
00442 Kiand_Intrinsic,
00443 Kibchng_Intrinsic,
00444 Kibclr_Intrinsic,
00445 Kibits_Intrinsic,
00446 Kibset_Intrinsic,
00447 Kidim_Intrinsic,
00448 Kidint_Intrinsic,
00449 Kieor_Intrinsic,
00450 Kifix_Intrinsic,
00451 Kind_Intrinsic,
00452 Kint_Intrinsic,
00453 Kior_Intrinsic,
00454 Kiqint_Intrinsic,
00455 Kisha_Intrinsic,
00456 Kishc_Intrinsic,
00457 Kishft_Intrinsic,
00458 Kishftc_Intrinsic,
00459 Kishl_Intrinsic,
00460 Kisign_Intrinsic,
00461 Kmod_Intrinsic,
00462 Kmvbits_Intrinsic,
00463 Knint_Intrinsic,
00464 Knot_Intrinsic,
00465 Lbound_Intrinsic,
00466 Leadz_Intrinsic,
00467 Len_Intrinsic,
00468 Length_Intrinsic,
00469 Len_Trim_Intrinsic,
00470 Lge_Intrinsic,
00471 Lgt_Intrinsic,
00472 Lle_Intrinsic,
00473 Llt_Intrinsic,
00474 Loc_Intrinsic,
00475 Lock_Release_Intrinsic,
00476 Lock_Test_And_Set_Intrinsic,
00477 Log_Intrinsic,
00478 Log10_Intrinsic,
00479 Log2_Images_Intrinsic,
00480 Logical_Intrinsic,
00481 Long_Intrinsic,
00482 Lshift_Intrinsic,
00483 Mclr_Intrinsic,
00484 Mld_Intrinsic,
00485 Mldmx_Intrinsic,
00486 Mmx_Intrinsic,
00487 Mul_Intrinsic,
00488 Malloc_Intrinsic,
00489 Mask_Intrinsic,
00490 Matmul_Intrinsic,
00491 Max_Intrinsic,
00492 Max0_Intrinsic,
00493 Max1_Intrinsic,
00494 Maxexponent_Intrinsic,
00495 Maxloc_Intrinsic,
00496 Maxval_Intrinsic,
00497 Memory_Barrier_Intrinsic,
00498 Merge_Intrinsic,
00499 Min_Intrinsic,
00500 Min0_Intrinsic,
00501 Min1_Intrinsic,
00502 Minexponent_Intrinsic,
00503 Minloc_Intrinsic,
00504 Minval_Intrinsic,
00505 Mod_Intrinsic,
00506 Modulo_Intrinsic,
00507 Mvbits_Intrinsic,
00508 My_Pe_Intrinsic,
00509 Nand_And_Fetch_Intrinsic,
00510 Nearest_Intrinsic,
00511 Neqv_Intrinsic,
00512 Nint_Intrinsic,
00513 Not_Intrinsic,
00514 Null_Intrinsic,
00515 Numarg_Intrinsic,
00516 Num_Images_Intrinsic,
00517 Omp_Get_Dynamic_Intrinsic,
00518 Omp_Get_Max_Threads_Intrinsic,
00519 Omp_Get_Nested_Intrinsic,
00520 Omp_Get_Num_Procs_Intrinsic,
00521 Omp_Get_Num_Threads_Intrinsic,
00522 Omp_Get_Thread_Num_Intrinsic,
00523 Omp_In_Parallel_Intrinsic,
00524 Omp_Set_Lock_Intrinsic,
00525 Omp_Test_Lock_Intrinsic,
00526 Omp_Unset_Lock_Intrinsic,
00527 Or_Intrinsic,
00528 Or_And_Fetch_Intrinsic,
00529 Pack_Intrinsic,
00530 Popcnt_Intrinsic,
00531 Poppar_Intrinsic,
00532 Precision_Intrinsic,
00533 Present_Intrinsic,
00534 Product_Intrinsic,
00535 Qabs_Intrinsic,
00536 Qacos_Intrinsic,
00537 Qacosd_Intrinsic,
00538 Qasin_Intrinsic,
00539 Qasind_Intrinsic,
00540 Qatan_Intrinsic,
00541 Qatan2_Intrinsic,
00542 Qatan2d_Intrinsic,
00543 Qatand_Intrinsic,
00544 Qcmplx_Intrinsic,
00545 Qcos_Intrinsic,
00546 Qcosd_Intrinsic,
00547 Qcosh_Intrinsic,
00548 Qcot_Intrinsic,
00549 Qdim_Intrinsic,
00550 Qexp_Intrinsic,
00551 Qext_Intrinsic,
00552 Qfloat_Intrinsic,
00553 Qfloati_Intrinsic,
00554 Qfloatj_Intrinsic,
00555 Qfloatk_Intrinsic,
00556 Qimag_Intrinsic,
00557 Qint_Intrinsic,
00558 Qlog_Intrinsic,
00559 Qlog10_Intrinsic,
00560 Qmod_Intrinsic,
00561 Qnint_Intrinsic,
00562 Qprod_Intrinsic,
00563 Qreal_Intrinsic,
00564 Qsign_Intrinsic,
00565 Qsin_Intrinsic,
00566 Qsind_Intrinsic,
00567 Qsinh_Intrinsic,
00568 Qsqrt_Intrinsic,
00569 Qtan_Intrinsic,
00570 Qtand_Intrinsic,
00571 Qtanh_Intrinsic,
00572 Radix_Intrinsic,
00573 Ran_Intrinsic,
00574 Random_Number_Intrinsic,
00575 Random_Seed_Intrinsic,
00576 Randu_Intrinsic,
00577 Ranf_Intrinsic,
00578 Range_Intrinsic,
00579 Ranget_Intrinsic,
00580 Ranset_Intrinsic,
00581 Readsm_Intrinsic,
00582 Real_Intrinsic,
00583 Remote_Write_Barrier_Intrinsic,
00584 Rem_Images_Intrinsic,
00585 Repeat_Intrinsic,
00586 Reshape_Intrinsic,
00587 Rrspacing_Intrinsic,
00588 Rshift_Intrinsic,
00589 Rtc_Intrinsic,
00590 Scale_Intrinsic,
00591 Scan_Intrinsic,
00592 SIK_Intrinsic,
00593 SRK_Intrinsic,
00594 Set_Exponent_Intrinsic,
00595 Set_Ieee_Exception_Intrinsic,
00596 Set_Ieee_Exceptions_Intrinsic,
00597 Set_Ieee_Interrupts_Intrinsic,
00598 Set_Ieee_Rounding_Mode_Intrinsic,
00599 Set_Ieee_Status_Intrinsic,
00600 Shape_Intrinsic,
00601 Shift_Intrinsic,
00602 Shifta_Intrinsic,
00603 Shiftl_Intrinsic,
00604 Shiftr_Intrinsic,
00605 Short_Intrinsic,
00606 Sign_Intrinsic,
00607 Sin_Intrinsic,
00608 Sind_Intrinsic,
00609 Sinh_Intrinsic,
00610 Size_Intrinsic,
00611 Sizeof_Intrinsic,
00612 Sngl_Intrinsic,
00613 Snglq_Intrinsic,
00614 Spacing_Intrinsic,
00615 Spread_Intrinsic,
00616 Sqrt_Intrinsic,
00617 Sub_And_Fetch_Intrinsic,
00618 Sum_Intrinsic,
00619 Synchronize_Intrinsic,
00620 Sync_Images_Intrinsic,
00621 System_Clock_Intrinsic,
00622 Tan_Intrinsic,
00623 Tand_Intrinsic,
00624 Tanh_Intrinsic,
00625 Test_Ieee_Exception_Intrinsic,
00626 Test_Ieee_Interrupt_Intrinsic,
00627 This_Image_Intrinsic,
00628 Time_Intrinsic,
00629 Tiny_Intrinsic,
00630 Transfer_Intrinsic,
00631 Transpose_Intrinsic,
00632 Trim_Intrinsic,
00633 Ubound_Intrinsic,
00634 Unit_Intrinsic,
00635 Unpack_Intrinsic,
00636 Verify_Intrinsic,
00637 Write_Memory_Barrier_Intrinsic,
00638 Xor_Intrinsic,
00639 Xor_And_Fetch_Intrinsic
00640 };
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650
00651
00652 enum linear_type_values {Err_Res,
00653 Type_Void = Err_Res,
00654 Short_Char_Const,
00655 Short_Typeless_Const,
00656 Typeless_1,
00657 Typeless_2,
00658 Typeless_4,
00659 Typeless_8,
00660 Long_Typeless,
00661 Integer_1,
00662 Integer_2,
00663 Integer_4,
00664 Integer_8,
00665 Real_4,
00666 Real_8,
00667 Real_16,
00668 Complex_4,
00669 Complex_8,
00670 Complex_16,
00671 CRI_Ptr_8,
00672 Logical_1,
00673 Logical_2,
00674 Logical_4,
00675 Logical_8,
00676 Character_1,
00677 Character_2,
00678 Character_4,
00679 CRI_Ch_Ptr_8,
00680 Structure_Type,
00681 CRI_Parcel_Ptr_8,
00682 Num_Linear_Types
00683 };
00684
00685 enum msg_lvl_values {Comment_Lvl,
00686 Note_Lvl,
00687 Caution_Lvl,
00688 Warning_Lvl,
00689 Error_Lvl };
00690
00691
00692
00693
00694
00695
00696
00697 enum msg_severities {Comment, Note, Caution,
00698 Warning, Error, Internal,
00699 Vector, Scalar, Table,
00700 Ansi, Log_Warning, Inline,
00701 Info, Tasking, Limit,
00702 Log_Error, Log_Summary, F77_Ansi,
00703 Optimization, Stream, Unknown_Error };
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715
00716 enum obj_values {Obj_Assum_Type_Ch, Obj_Expl_Shp_Arr,
00717 Obj_Assum_Size_Arr, Obj_Defrd_Shp_Arr,
00718 Obj_Assum_Shp_Arr, Obj_Co_Array,
00719 Obj_Allocatable, Obj_Constant,
00720 Obj_Intent, Obj_Optional,
00721 Obj_Private, Obj_Public,
00722 Obj_Target, Obj_Equiv,
00723 Obj_Saved, Obj_Automatic,
00724 Obj_Pointer, Obj_Dcl_Extern,
00725 Obj_Dcl_Intrin, Obj_Data_Init,
00726 Obj_Typed, Obj_Volatile,
00727
00728 Obj_Copy_Assumed_Shape, Obj_Auxiliary,
00729 Obj_Vfunction, Obj_No_Side_Effects,
00730 Obj_Symmetric, Obj_Inline,
00731 Obj_Ipa, Obj_Align_Symbol,
00732 Obj_Fill_Symbol, Obj_Section_Gp,
00733 Obj_Section_Non_Gp, Obj_Ignore_TKR,
00734 Obj_Optional_Dir, Obj_Name,
00735
00736 Obj_Cri_Ptr, Obj_Cri_Pointee,
00737 Obj_Cri_Ch_Pointee,
00738 Obj_Ntry_Func_Result, Obj_Dummy_Arg,
00739 Obj_Common_Obj, Obj_Namelist_Obj,
00740 Obj_Module_Proc, Obj_Derived_Type,
00741 Obj_Generic_Interface, Obj_Namelist_Grp,
00742 Obj_Stmt_Func, Obj_Construct,
00743 Obj_Entry_Func, Obj_Entry_Subr,
00744 Obj_Intern_Func, Obj_Intern_Subr,
00745 Obj_Module_Func, Obj_Module_Subr,
00746 Obj_Sf_Darg,
00747 Obj_Name_Done = Obj_Sf_Darg,
00748
00749 Obj_Sf_Actual_Arg, Obj_Var_Len_Ch,
00750 Obj_Var_Len_Arr, Obj_Sym_Constant_Arr,
00751 Obj_Interface_Func, Obj_Interface_Subr,
00752 Obj_Use_Extern_Func, Obj_Use_Extern_Subr,
00753 Obj_Use_In_Expr, Obj_Use_Derived_Type,
00754 Obj_Use_Spec_Expr, Obj_Use_Init_Expr,
00755 Obj_Done };
00756
00757
00758
00759
00760
00761
00762
00763
00764
00765
00766
00767
00768
00769
00770 enum operator_values { Null_Opr,
00771
00772 Defined_Un_Opr,
00773
00774 Alloc_Opr,
00775 SSD_Alloc_Opr,
00776 Cvrt_Opr,
00777 Dealloc_Opr,
00778 Power_Opr,
00779 Mult_Opr,
00780 Div_Opr,
00781 Uplus_Opr,
00782 Uminus_Opr,
00783 Plus_Opr,
00784 Minus_Opr,
00785 Concat_Opr,
00786 Eq_Opr,
00787 Ne_Opr,
00788 Lt_Opr,
00789 Le_Opr,
00790 Gt_Opr,
00791 Ge_Opr,
00792 Not_Opr,
00793 Bnot_Opr,
00794 And_Opr,
00795 Or_Opr,
00796 Bor_Opr,
00797 Eqv_Opr,
00798
00799
00800
00801
00802
00803 Beqv_Opr,
00804 Neqv_Opr,
00805 Bneqv_Opr,
00806 Abs_Opr,
00807 Cos_Opr,
00808 Sin_Opr,
00809 Log_E_Opr,
00810 Log_10_Opr,
00811 Tan_Opr,
00812 Tanh_Opr,
00813 Sinh_Opr,
00814 Acos_Opr,
00815 Asin_Opr,
00816 Atan_Opr,
00817 Cosh_Opr,
00818 Atan2_Opr,
00819 Aimag_Opr,
00820 Sqrt_Opr,
00821 Cot_Opr,
00822 Exp_Opr,
00823 Int_Opr,
00824 Band_Opr,
00825 Mod_Opr,
00826 Anint_Opr,
00827 Nint_Opr,
00828
00829
00830
00831
00832
00833 Sign_Opr,
00834 Modulo_Opr,
00835 Shift_Opr,
00836 Shiftl_Opr,
00837 Shiftr_Opr,
00838 Leadz_Opr,
00839 Popcnt_Opr,
00840 Poppar_Opr,
00841 Aint_Opr,
00842 Dim_Opr,
00843 Ranget_Opr,
00844 Ranset_Opr,
00845 Ranf_Opr,
00846 Real_Opr,
00847 Dble_Opr,
00848 Mask_Opr,
00849 Conjg_Opr,
00850 Dprod_Opr,
00851 I24mult_Opr,
00852 Length_Opr,
00853 Getpos_Opr,
00854 Unit_Opr,
00855 Cmplx_Opr,
00856 Ichar_Opr,
00857 Char_Opr,
00858
00859
00860
00861
00862
00863 Lint_Opr,
00864 Index_Opr,
00865 Lge_Opr,
00866 Lgt_Opr,
00867 Lle_Opr,
00868 Llt_Opr,
00869 Fcd_Opr,
00870 Numarg_Opr,
00871 Rtc_Opr,
00872 Cvmgp_Opr,
00873 Cvmgm_Opr,
00874 Cvmgz_Opr,
00875 Cvmgn_Opr,
00876 Cvmgt_Opr,
00877 Csmg_Opr,
00878 Adjustl_Opr,
00879 Adjustr_Opr,
00880 Ceiling_Opr,
00881 Exponent_Opr,
00882 Floor_Opr,
00883 Fraction_Opr,
00884 Spacing_Opr,
00885 Logical_Opr,
00886 Nearest_Opr,
00887 Rrspacing_Opr,
00888
00889
00890
00891
00892
00893 Scale_Opr,
00894 Scan_Opr,
00895 Set_Exponent_Opr,
00896 Verify_Opr,
00897 Len_Trim_Opr,
00898 Dshiftl_Opr,
00899 Dshiftr_Opr,
00900 Mmx_Opr,
00901 Mldmx_Opr,
00902 Mld_Opr,
00903 Mul_Opr,
00904 Mcbl_Opr,
00905 Cshift_Opr,
00906 Dot_Product_Opr,
00907 Matmul_Opr,
00908 Spread_Opr,
00909 Transpose_Opr,
00910 All_Opr,
00911 Any_Opr,
00912 Count_Opr,
00913 Product_Opr,
00914 Sum_Opr,
00915 Eoshift_Opr,
00916 Maxval_Opr,
00917 Minval_Opr,
00918
00919
00920
00921
00922
00923 Maxloc_Opr,
00924 Minloc_Opr,
00925 Reshape_Opr,
00926 SRK_Opr,
00927 SIK_Opr,
00928 Repeat_Opr,
00929 Trim_Opr,
00930 Transfer_Opr,
00931
00932 Defined_Bin_Opr,
00933
00934 Asg_Opr,
00935 Call_Opr,
00936 Alt_Return_Opr,
00937 Case_Opr,
00938 Allocate_Opr,
00939 Deallocate_Opr,
00940 End_Opr,
00941 Entry_Opr,
00942 Nullify_Opr,
00943 Pause_Opr,
00944 Ptr_Asg_Opr,
00945 Flat_Array_Asg_Opr,
00946 Return_Opr,
00947 Select_Opr,
00948 Stmt_Func_Call_Opr,
00949 Stop_Opr,
00950
00951
00952
00953
00954
00955 Max_Opr,
00956 Min_Opr,
00957
00958 Read_Formatted_Opr,
00959 Read_Unformatted_Opr,
00960 Read_Namelist_Opr,
00961 Write_Formatted_Opr,
00962 Write_Unformatted_Opr,
00963 Write_Namelist_Opr,
00964 Inquire_Iolength_Opr,
00965
00966
00967
00968
00969
00970
00971
00972 Dv_Whole_Copy_Opr,
00973 Dv_Whole_Def_Opr,
00974 Dv_Def_Asg_Opr,
00975 Dv_Deref_Opr,
00976 Dv_Access_Base_Addr,
00977 Dv_Set_Base_Addr,
00978 Dv_Access_El_Len,
00979 Dv_Set_El_Len,
00980 Dv_Access_Assoc,
00981 Dv_Set_Assoc,
00982 Dv_Access_Ptr_Alloc,
00983 Dv_Set_Ptr_Alloc,
00984 Dv_Access_P_Or_A,
00985 Dv_Set_P_Or_A,
00986 Dv_Access_A_Contig,
00987 Dv_Set_A_Contig,
00988
00989
00990
00991
00992
00993 Dv_Access_N_Dim,
00994 Dv_Set_N_Dim,
00995 Dv_Access_Typ_Code,
00996 Dv_Set_Typ_Code,
00997 Dv_Access_Orig_Base,
00998 Dv_Set_Orig_Base,
00999 Dv_Access_Orig_Size,
01000 Dv_Set_Orig_Size,
01001
01002
01003
01004 Dv_Access_Low_Bound,
01005 Dv_Set_Low_Bound,
01006 Dv_Access_Extent,
01007 Dv_Set_Extent,
01008 Dv_Access_Stride_Mult,
01009 Dv_Set_Stride_Mult,
01010
01011 Br_Aif_Opr,
01012 Br_Asg_Opr,
01013 Br_Index_Opr,
01014 Br_True_Opr,
01015 Br_Uncond_Opr,
01016
01017 Case_Range_Opr,
01018 Implied_Do_Opr,
01019 Kwd_Opr,
01020 Percent_Val_Opr,
01021 Loc_Opr,
01022 Aloc_Opr,
01023
01024
01025
01026
01027
01028 Const_Tmp_Loc_Opr,
01029 Present_Opr,
01030 Argchck_Present_Opr,
01031 Argchck_Loc_Opr,
01032 Len_Opr,
01033 Clen_Opr,
01034 Paren_Opr,
01035 Struct_Opr,
01036 Struct_Construct_Opr,
01037 Array_Construct_Opr,
01038 Constant_Struct_Construct_Opr,
01039 Constant_Array_Construct_Opr,
01040 Subscript_Opr,
01041 Whole_Subscript_Opr,
01042 Section_Subscript_Opr,
01043 Alloc_Obj_Opr,
01044 Dealloc_Obj_Opr,
01045 Substring_Opr,
01046 Whole_Substring_Opr,
01047 Triplet_Opr,
01048 Label_Opr,
01049 Loop_Info_Opr,
01050 Loop_End_Opr,
01051 Init_Opr,
01052 Init_Reloc_Opr,
01053
01054
01055
01056
01057
01058 Use_Opr,
01059 Where_Opr,
01060 Real_Div_To_Int_Opr,
01061 Readsm_Opr,
01062 Memory_Barrier_Opr,
01063 Remote_Write_Barrier_Opr,
01064 Write_Memory_Barrier_Opr,
01065
01066 Suppress_Opr,
01067
01068 Align_Cdir_Opr,
01069 Bl_Cdir_Opr,
01070 Bounds_Cdir_Opr,
01071 Cachealign_Cdir_Opr,
01072 Inline_Cdir_Opr,
01073 Ivdep_Cdir_Opr,
01074 Nextscalar_Cdir_Opr,
01075 Nobl_Cdir_Opr,
01076 Nobounds_Cdir_Opr,
01077 Noinline_Cdir_Opr,
01078 Norecurrence_Cdir_Opr,
01079 Nosplit_Cdir_Opr,
01080 Notask_Cdir_Opr,
01081 Nounroll_Cdir_Opr,
01082 Novector_Cdir_Opr,
01083 Novsearch_Cdir_Opr,
01084 Prefertask_Cdir_Opr,
01085
01086
01087
01088
01089
01090 Prefervector_Cdir_Opr,
01091 Recurrence_Cdir_Opr,
01092 Shortloop_Cdir_Opr,
01093 Shortloop128_Cdir_Opr,
01094 Split_Cdir_Opr,
01095 Task_Cdir_Opr,
01096 Unroll_Cdir_Opr,
01097 Vector_Cdir_Opr,
01098 Vsearch_Cdir_Opr,
01099
01100 Case_Cmic_Opr,
01101 Endcase_Cmic_Opr,
01102 Cncall_Cmic_Opr,
01103 Continue_Cmic_Opr,
01104 Doall_Cmic_Opr,
01105 Doparallel_Cmic_Opr,
01106 Enddo_Cmic_Opr,
01107 Guard_Cmic_Opr,
01108 Endguard_Cmic_Opr,
01109 REMOVED_Opr,
01110 Numcpus_Cmic_Opr,
01111 Parallel_Cmic_Opr,
01112 Endparallel_Cmic_Opr,
01113 Permutation_Cmic_Opr,
01114 Taskcommon_Cmic_Opr,
01115 Wait_Cmic_Opr,
01116
01117
01118
01119
01120
01121 Send_Cmic_Opr,
01122
01123 My_Pe_Opr,
01124
01125 Ieee_Unordered_Opr,
01126 Ieee_Next_After_Opr,
01127 Ieee_Remainder_Opr,
01128 Ieee_Exponent_Opr,
01129 Ieee_Copy_Sign_Opr,
01130 Ieee_Int_Opr,
01131 Ieee_Real_Opr,
01132 Ieee_Finite_Opr,
01133 Ieee_Is_Nan_Opr,
01134 Ieee_Class_Opr,
01135 Ieee_Binary_Scale_Opr,
01136 Int_Mult_Upper_Opr,
01137 Get_Ieee_Status_Opr,
01138 Set_Ieee_Status_Opr,
01139 Get_Ieee_Exceptions_Opr,
01140 Set_Ieee_Exceptions_Opr,
01141 Get_Ieee_Interrupts_Opr,
01142 Set_Ieee_Interrupts_Opr,
01143 Get_Ieee_Rounding_Mode_Opr,
01144 Set_Ieee_Rounding_Mode_Opr,
01145 Test_Ieee_Interrupt_Opr,
01146 Test_Ieee_Exception_Opr,
01147 Set_Ieee_Exception_Opr,
01148
01149
01150
01151
01152
01153 Clear_Ieee_Exception_Opr,
01154 Enable_Ieee_Interrupt_Opr,
01155 Disable_Ieee_Interrupt_Opr,
01156
01157 Cvrt_Unsigned_Opr,
01158 SSD_Dealloc_Opr,
01159
01160
01161
01162 Symbolic_Mult_Opr,
01163 Symbolic_Div_Opr,
01164 Symbolic_Uplus_Opr,
01165 Symbolic_Uminus_Opr,
01166 Symbolic_Plus_Opr,
01167 Symbolic_Minus_Opr,
01168 Symbolic_Max_Opr,
01169
01170 Rep_Count_Opr,
01171 Lg_Opr,
01172 Shifta_Opr,
01173
01174 Symbolic_Mod_Opr,
01175 Symbolic_Shiftr_Opr,
01176 Symbolic_Shiftl_Opr,
01177 Symmetric_Alloc_Opr,
01178 Symmetric_Dealloc_Opr,
01179
01180 Copy_In_Opr,
01181 Copy_Out_Opr,
01182
01183 Pack_Opr,
01184 Unpack_Opr,
01185
01186 Local_Pe_Dim_Opr,
01187
01188
01189
01190
01191
01192 Start_Io_Opr,
01193 End_Io_Opr,
01194
01195 Dot_Product_Logical_Opr,
01196
01197 Symbolic_Min_Opr,
01198 Nopattern_Cdir_Opr,
01199 Pattern_Cdir_Opr,
01200 Mark_Cdir_Opr,
01201 Nomark_Cdir_Opr,
01202
01203 Backspace_Opr,
01204 Buffer_In_Opr,
01205 Buffer_Out_Opr,
01206 Close_Opr,
01207 Endfile_Opr,
01208 Inquire_Opr,
01209 Open_Opr,
01210 Rewind_Opr,
01211 Mvbits_Opr,
01212 Ishftc_Opr,
01213 Ibits_Opr,
01214
01215 False_Parm_Opr,
01216
01217 Aggressiveinnerloopfission_Opr,
01218 Blockable_Dir_Opr,
01219 Blockingsize_Dir_Opr,
01220 Fission_Star_Opr,
01221 Fissionable_Star_Opr,
01222
01223
01224
01225
01226
01227 Fuse_Star_Opr,
01228 Fusable_Star_Opr,
01229 Interchange_Dir_Opr,
01230 Nointerchange_Dir_Opr,
01231 Nofission_Star_Opr,
01232 Nofusion_Star_Opr,
01233 Noblocking_Dir_Opr,
01234 Opaque_Star_Opr,
01235 Purpleconditional_Star_Opr,
01236 Purpleunconditional_Star_Opr,
01237 Redistribute_Dollar_Opr,
01238 Doacross_Dollar_Opr,
01239 Pdo_Par_Opr,
01240 Parallel_Do_Par_Opr,
01241 Parallel_Par_Opr,
01242 Psection_Par_Opr,
01243 Singleprocess_Par_Opr,
01244 Section_Par_Opr,
01245 End_Pdo_Par_Opr,
01246 End_Parallel_Par_Opr,
01247 Barrier_Par_Opr,
01248 Critical_Section_Par_Opr,
01249 End_Critical_Section_Par_Opr,
01250 End_Psection_Par_Opr,
01251 End_Singleprocess_Par_Opr,
01252
01253
01254
01255
01256
01257 Unroll_Star_Opr,
01258 Assert_Star_Opr,
01259 Regionbegin_Star_Opr,
01260 Regionend_Star_Opr,
01261 Section_Gp_Star_Opr,
01262 Section_Nongp_Star_Opr,
01263
01264 Prefetch_Star_Opr,
01265 Prefetch_Manual_Star_Opr,
01266 Prefetch_Ref_Disable_Star_Opr,
01267 Prefetch_Ref_Star_Opr,
01268
01269 Align_Symbol_Star_Opr,
01270 Fill_Symbol_Star_Opr,
01271
01272 Inline_Here_Star_Opr,
01273 Noinline_Here_Star_Opr,
01274 End_Inline_Here_Star_Opr,
01275
01276 Dynamic_Dollar_Opr,
01277 Page_Place_Dollar_Opr,
01278 Copyin_Dollar_Opr,
01279
01280 User_Code_Start_Opr,
01281
01282 Fetch_And_Add_Opr,
01283 Fetch_And_Sub_Opr,
01284 Fetch_And_Or_Opr,
01285 Fetch_And_And_Opr,
01286 Fetch_And_Xor_Opr,
01287 Fetch_And_Nand_Opr,
01288
01289
01290
01291
01292
01293 Add_And_Fetch_Opr,
01294 Sub_And_Fetch_Opr,
01295 Or_And_Fetch_Opr,
01296 And_And_Fetch_Opr,
01297 Xor_And_Fetch_Opr,
01298 Nand_And_Fetch_Opr,
01299
01300 Synchronize_Opr,
01301 Lock_Release_Opr,
01302 Lock_Test_And_Set_Opr,
01303 Compare_And_Swap_Opr,
01304
01305 Integer_Cdir_Opr,
01306
01307 Malloc_Opr,
01308 Free_Opr,
01309
01310 Concurrent_Cdir_Opr,
01311
01312 Inline_Routine_Star_Opr,
01313 Noinline_Routine_Star_Opr,
01314 Inline_Global_Star_Opr,
01315 Noinline_Global_Star_Opr,
01316
01317 Atomic_Open_Mp_Opr,
01318 Barrier_Open_Mp_Opr,
01319 Critical_Open_Mp_Opr,
01320 Do_Open_Mp_Opr,
01321 Endcritical_Open_Mp_Opr,
01322 Enddo_Open_Mp_Opr,
01323 Endparallel_Open_Mp_Opr,
01324
01325
01326
01327
01328
01329 Endparalleldo_Open_Mp_Opr,
01330 Endparallelsections_Open_Mp_Opr,
01331 Endmaster_Open_Mp_Opr,
01332 Endordered_Open_Mp_Opr,
01333 Endsections_Open_Mp_Opr,
01334 Endsingle_Open_Mp_Opr,
01335 Flush_Open_Mp_Opr,
01336 Master_Open_Mp_Opr,
01337 Ordered_Open_Mp_Opr,
01338 Parallel_Open_Mp_Opr,
01339 Paralleldo_Open_Mp_Opr,
01340 Parallelsections_Open_Mp_Opr,
01341 Section_Open_Mp_Opr,
01342 Sections_Open_Mp_Opr,
01343 Single_Open_Mp_Opr,
01344
01345 Concurrentize_Star_Opr,
01346 Noconcurrentize_Star_Opr,
01347
01348 Omp_Set_Lock_Opr,
01349 Omp_Unset_Lock_Opr,
01350 Omp_Test_Lock_Opr,
01351
01352 Omp_Get_Num_Threads_Opr,
01353 Omp_Get_Max_Threads_Opr,
01354 Omp_Get_Thread_Num_Opr,
01355 Omp_Get_Num_Procs_Opr,
01356 Omp_In_Parallel_Opr,
01357
01358
01359
01360
01361
01362 Omp_Get_Dynamic_Opr,
01363 Omp_Get_Nested_Opr,
01364
01365 Cache_Bypass_Cdir_Opr,
01366
01367 Forall_Opr,
01368 If_Opr,
01369 Else_Opr,
01370 Endif_Opr,
01371
01372 Flush_Star_Opr,
01373 Stmt_Expansion_Opr,
01374
01375 Cosd_Opr,
01376 Sind_Opr,
01377 Tand_Opr,
01378 Acosd_Opr,
01379 Asind_Opr,
01380 Atand_Opr,
01381 Atan2d_Opr,
01382
01383 Stream_Dir_Opr,
01384 UNUSED1_Opr,
01385 UNUSED2_Opr,
01386 UNUSED3_Opr,
01387 UNUSED4_Opr,
01388 UNUSED5_Opr,
01389 Nostream_Dir_Opr,
01390
01391 Null_Intrinsic_Opr,
01392 Io_Item_Type_Code_Opr,
01393
01394
01395
01396
01397
01398 Where_Cnstrct_Opr,
01399 Else_Where_Mask_Opr,
01400 Else_Where_Opr,
01401
01402 Preferstream_Dir_Opr,
01403
01404 Copyin_Bound_Opr,
01405
01406 Preferstream_Nocinv_Dir_Opr,
01407
01408
01409 Endparallelworkshare_Open_Mp_Opr,
01410 Endworkshare_Open_Mp_Opr,
01411 Parallelworkshare_Open_Mp_Opr,
01412 Workshare_Open_Mp_Opr,
01413
01414
01415 XXX_OpenAD_Opr,
01416 Dependent_OpenAD_Opr,
01417 Independent_OpenAD_Opr,
01418 Simple_OpenAD_Opr,
01419 EndSimple_OpenAD_Opr,
01420
01421
01422
01423 The_Last_Opr
01424 };
01425
01426 enum scalar_lvl_values {Scalar_Lvl_0,
01427 Scalar_Lvl_1,
01428 Scalar_Lvl_2,
01429 Scalar_Lvl_3,
01430 Scalar_Lvl_Err };
01431
01432 enum sh_position_values {Before, After};
01433
01434
01435 enum src_form_values {Fixed_Form, Free_Form };
01436
01437
01438
01439
01440
01441
01442
01443
01444
01445
01446
01447
01448
01449
01450
01451
01452
01453
01454
01455 enum stmt_type_values {Null_Stmt,
01456
01457 Allocatable_Stmt,
01458 Automatic_Stmt,
01459 Common_Stmt,
01460 Contains_Stmt,
01461 Cpnt_Decl_Stmt,
01462 Data_Stmt,
01463 Derived_Type_Stmt,
01464 Dimension_Stmt,
01465 Directive_Stmt,
01466 Equivalence_Stmt,
01467 External_Stmt,
01468 Format_Stmt,
01469 Implicit_Stmt,
01470 Implicit_None_Stmt,
01471 Intent_Stmt,
01472 Interface_Stmt,
01473 Intrinsic_Stmt,
01474 Module_Proc_Stmt,
01475 Namelist_Stmt,
01476 Optional_Stmt,
01477 Parameter_Stmt,
01478 Pointer_Stmt,
01479 Private_Stmt,
01480 Public_Stmt,
01481 Save_Stmt,
01482 Sequence_Stmt,
01483 Stmt_Func_Stmt,
01484 Target_Stmt,
01485 Task_Common_Stmt,
01486 Type_Decl_Stmt,
01487 Use_Stmt,
01488
01489 Blockdata_Stmt,
01490 Elemental_Stmt,
01491 Function_Stmt,
01492 Module_Stmt,
01493 Program_Stmt,
01494 Pure_Stmt,
01495 Recursive_Stmt,
01496 Subroutine_Stmt,
01497
01498 End_Blockdata_Stmt,
01499 End_Do_Stmt,
01500 End_Function_Stmt,
01501 End_If_Stmt,
01502 End_Interface_Stmt,
01503 End_Module_Stmt,
01504 End_Program_Stmt,
01505 End_Select_Stmt,
01506 End_Stmt,
01507 End_Subroutine_Stmt,
01508 End_Type_Stmt,
01509 End_Where_Stmt,
01510
01511 Allocate_Stmt,
01512 Arith_If_Stmt,
01513 Assign_Stmt,
01514 Assignment_Stmt,
01515 Backspace_Stmt,
01516 Buffer_Stmt,
01517 Call_Stmt,
01518 Case_Stmt,
01519 Close_Stmt,
01520 Continue_Stmt,
01521 Cycle_Stmt,
01522 Deallocate_Stmt,
01523 Decode_Stmt,
01524 Do_Iterative_Stmt,
01525 Do_While_Stmt,
01526 Do_Infinite_Stmt,
01527 Else_Stmt,
01528 Else_If_Stmt,
01529 Else_Where_Stmt,
01530 Encode_Stmt,
01531 Endfile_Stmt,
01532 Entry_Stmt,
01533 Exit_Stmt,
01534 Goto_Stmt,
01535 If_Cstrct_Stmt,
01536 If_Stmt,
01537 Inquire_Stmt,
01538 Nullify_Stmt,
01539 Open_Stmt,
01540 Outmoded_If_Stmt,
01541 Pause_Stmt,
01542 Print_Stmt,
01543 Read_Stmt,
01544 Return_Stmt,
01545 Rewind_Stmt,
01546 Select_Stmt,
01547 Stop_Stmt,
01548 Then_Stmt,
01549 Where_Cstrct_Stmt,
01550 Where_Stmt,
01551 Write_Stmt,
01552 Type_Init_Stmt,
01553
01554 Label_Def,
01555 Construct_Def,
01556
01557 Automatic_Base_Calc_Stmt,
01558 Automatic_Base_Size_Stmt,
01559
01560 End_Parallel_Stmt,
01561 End_Do_Parallel_Stmt,
01562 End_Parallel_Case_Stmt,
01563 Parallel_Case_Stmt,
01564 End_Guard_Stmt,
01565
01566 Statement_Num_Stmt,
01567
01568 SGI_Section_Stmt,
01569 SGI_End_Psection_Stmt,
01570 SGI_End_Pdo_Stmt,
01571 SGI_End_Parallel_Stmt,
01572 SGI_End_Critical_Section_Stmt,
01573 SGI_End_Single_Process_Stmt,
01574 SGI_Region_End_Stmt,
01575
01576 Open_MP_Section_Stmt,
01577 Open_MP_End_Parallel_Stmt,
01578 Open_MP_End_Do_Stmt,
01579 Open_MP_End_Parallel_Sections_Stmt,
01580 Open_MP_End_Sections_Stmt,
01581 Open_MP_End_Section_Stmt,
01582 Open_MP_End_Single_Stmt,
01583 Open_MP_End_Parallel_Do_Stmt,
01584 Open_MP_End_Master_Stmt,
01585 Open_MP_End_Critical_Stmt,
01586 Open_MP_End_Ordered_Stmt,
01587 Open_MP_End_Parallel_Workshare_Stmt,
01588 Open_MP_End_Workshare_Stmt,
01589
01590 Forall_Cstrct_Stmt,
01591 Forall_Stmt,
01592 End_Forall_Stmt,
01593
01594 Else_Where_Mask_Stmt,
01595
01596 Volatile_Stmt
01597
01598
01599
01600
01601
01602
01603
01604
01605
01606 };
01607
01608
01609 enum split_lvl_values { Split_Lvl_0,
01610 Split_Lvl_1,
01611 Split_Lvl_2,
01612 Split_Lvl_Err };
01613
01614 enum stream_lvl_values { Stream_Lvl_0,
01615 Stream_Lvl_1,
01616 Stream_Lvl_2,
01617 Stream_Lvl_3,
01618 Stream_Lvl_Err };
01619
01620 enum task_lvl_values { Task_Lvl_0,
01621 Task_Lvl_1,
01622 Task_Lvl_2,
01623 Task_Lvl_3,
01624 Task_Lvl_Err };
01625
01626 enum unroll_lvl_values { Unroll_Lvl_0,
01627 Unroll_Lvl_1,
01628 Unroll_Lvl_2,
01629 Unroll_Lvl_Err };
01630
01631 enum vector_lvl_values { Vector_Lvl_0,
01632 Vector_Lvl_1,
01633 Vector_Lvl_2,
01634 Vector_Lvl_3,
01635 Vector_Lvl_Err };
01636
01637 enum trace_values { Func_Entry,
01638 Func_Exit,
01639 Syntax_Pass,
01640 Semantics_Pass,
01641 PU_Start,
01642 Stmt_Start,
01643 Mem_Alloc,
01644 Mem_Realloc,
01645 Mem_Free,
01646 Mem_Compress };
01647
01648 enum mp_directive_values {
01649 Doacross,
01650 Pdo,
01651 Parallel_Do,
01652 Parallel,
01653 Psection,
01654 Singleprocess,
01655 Num_Mp_Values
01656 };
01657
01658 typedef enum mp_directive_values mp_directive_type;
01659
01660 enum mp_clause_values {
01661 If_Clause,
01662 Local_Clause,
01663 Share_Clause,
01664 Lastlocal_Clause,
01665 Reduction_Clause,
01666 Mp_Schedtype_Clause,
01667 Chunk_Clause,
01668 Blocked_Clause,
01669 Affinity_Clause,
01670 Mode_Clause,
01671 Ordered_Clause,
01672 Onto_Clause,
01673 Nest_Clause,
01674 Lastthread_Clause,
01675 Last_Clause
01676 };
01677 typedef enum mp_clause_values mp_clause_type;
01678
01679 extern char *(mp_dir_str[Num_Mp_Values]);
01680
01681 extern boolean clause_allowed[Num_Mp_Values][Last_Clause];
01682
01683 enum open_mp_directive_values {
01684 Parallel_Omp,
01685 Do_Omp,
01686 Sections_Omp,
01687 Single_Omp,
01688 Parallel_Do_Omp,
01689 Parallel_Sections_Omp,
01690 Parallel_Workshare_Omp,
01691 End_Single_Omp,
01692 Flush_Omp,
01693 Num_Omp_Values
01694 };
01695
01696 typedef enum open_mp_directive_values open_mp_directive_type;
01697
01698 enum open_mp_clause_values {
01699 If_Omp_Clause,
01700 Private_Omp_Clause,
01701 Shared_Omp_Clause,
01702 Firstprivate_Omp_Clause,
01703 Default_Omp_Clause,
01704 Copyin_Omp_Clause,
01705 Reduction_Omp_Clause,
01706 Lastprivate_Omp_Clause,
01707 Ordered_Omp_Clause,
01708 Schedule_Omp_Clause,
01709 Copyprivate_Omp_Clause,
01710 Affinity_Omp_Clause,
01711 Nest_Omp_Clause,
01712 Onto_Omp_Clause,
01713
01714
01715 Flush_Omp_Clause,
01716 Last_Omp_Clause
01717 };
01718 typedef enum open_mp_clause_values open_mp_clause_type;
01719
01720 extern char *(open_mp_dir_str[Num_Omp_Values]);
01721
01722 extern boolean open_mp_clause_allowed[Num_Omp_Values][Last_Omp_Clause];
01723
01724
01725
01726 enum openad_directive_values {
01727 XXX_OpenAD,
01728 Dependent_OpenAD,
01729 Independent_OpenAD,
01730 Simple_OpenAD,
01731 EndSimple_OpenAD,
01732 Num_OpenAD_Values
01733 };
01734
01735 typedef enum openad_directive_values openad_directive_type;
01736
01737 enum openad_clause_values {
01738 XXX_OpenAD_Clause,
01739 Last_OpenAD_Clause
01740 };
01741 typedef enum openad_clause_values openad_clause_type;
01742
01743 extern char *(openad_dir_str[Num_OpenAD_Values]);
01744
01745 extern boolean openad_clause_allowed[Num_OpenAD_Values][Last_OpenAD_Clause];
01746
01747
01748 typedef enum addr_mode_values addr_mode_type;
01749 typedef enum basic_type_values basic_type_type;
01750 typedef enum convert_to_string_values convert_to_string_type;
01751 typedef enum debug_lvl_values debug_lvl_type;
01752 typedef enum expr_mode_values expr_mode_type;
01753 typedef enum fld_values fld_type;
01754 typedef enum fortran_type_values fortran_type_type;
01755 typedef enum forward_ref_values forward_ref_type;
01756 typedef enum glb_tbl_idx_values glb_tbl_idx_type;
01757 typedef enum intrinsic_values intrinsic_type;
01758 typedef enum linear_type_values linear_type_type;
01759 typedef enum msg_lvl_values msg_lvl_type;
01760 typedef enum msg_severities msg_severities_type;
01761 typedef enum obj_values obj_type;
01762 typedef enum operator_values operator_type;
01763 typedef enum scalar_lvl_values scalar_lvl_type;
01764 typedef enum sh_position_values sh_position_type;
01765 typedef enum src_form_values src_form_type;
01766 typedef enum stmt_type_values stmt_type_type;
01767 typedef enum stream_lvl_values stream_lvl_type;
01768 typedef enum task_lvl_values task_lvl_type;
01769 typedef enum vector_lvl_values vector_lvl_type;
01770 typedef enum trace_values trace_type;
01771 typedef struct ac_cmd_line_flags_entry ac_cmd_line_flags_type;
01772 typedef struct cdir_switch_entry cdir_switch_type;
01773 typedef struct cmd_line_flags_entry cmd_line_flags_type;
01774 typedef struct dump_flags_entry dump_flags_type;
01775 typedef struct expr_semantics_args expr_arg_type;
01776 typedef struct on_off_flags_entry on_off_flags_type;
01777 typedef struct opnd_entry opnd_type;
01778 typedef struct opt_flags_entry opt_flags_type;
01779 typedef union target_machine_entry target_machine_type;
01780 typedef union id_str_entry id_str_type;
01781
01782
01783 union id_str_entry {char string[MAX_ID_LEN+1];
01784 long words[NUM_ID_WDS];
01785 };
01786
01787
01788
01789 struct cmd_line_flags_entry {
01790 boolean align8 : 1;
01791 boolean align16 : 1;
01792 boolean align32 : 1;
01793 boolean align64 : 1;
01794 boolean static_threadprivate : 1;
01795 boolean dalign : 1;
01796 boolean pad : 1;
01797 Uint pad_amount : 16;
01798 boolean taskcommon : 1;
01799 boolean binary_output : 1;
01800 boolean reserved_c : 1;
01801 boolean off_options : 1;
01802 boolean on_options : 1;
01803 src_form_type src_form : 2;
01804 boolean reserved_g : 1;
01805 boolean reserved_h : 1;
01806 boolean integer_32 : 1;
01807 boolean reserved_j : 1;
01808 boolean solaris_profile : 1;
01809 boolean reserved_l : 1;
01810 msg_lvl_type msg_lvl_suppressed : 4;
01811 boolean reserved_n : 1;
01812 boolean reserved_o : 1;
01813 boolean module_paths : 1;
01814 boolean expression_eval_stmt : 1;
01815 boolean expression_eval_expr : 1;
01816 boolean reserved_q : 1;
01817 boolean reserved_r : 1;
01818 boolean s_float64 : 1;
01819 boolean s_default32 : 1;
01820 boolean s_default64 : 1;
01821 boolean s_cf77types : 1;
01822 boolean s_integer8 : 1;
01823 boolean s_logical8 : 1;
01824 boolean s_real8 : 1;
01825 boolean s_complex8 : 1;
01826 boolean s_doublecomplex16 : 1;
01827 boolean s_doubleprecision16 : 1;
01828 boolean s_pointer8 : 1;
01829 Uint truncate_bits : 6;
01830 boolean dump_options : 1;
01831 boolean pdgcs_debug_opts : 1;
01832 boolean reserved_w : 1;
01833 boolean disregard_all_directives: 1;
01834 boolean disregard_all_dirs : 1;
01835 boolean disregard_all_mics : 1;
01836 boolean disregard_all_mips : 1;
01837 boolean disregard_all_mpp_cdirs : 1;
01838 boolean disregard_all_omps : 1;
01839 boolean disregard_conditional_omp : 1;
01840
01841 boolean disregard_all_openads : 1;
01842 boolean reserved_y : 1;
01843 boolean cleanUpWhirl : 1;
01844 int implicit_use_idx;
01845 boolean reserved_B : 1;
01846 boolean cif_flags : 1;
01847 boolean reserved_D : 1;
01848 boolean reserved_E : 1;
01849 boolean pp_macro_expansion : 1;
01850 debug_lvl_type debug_lvl : 4;
01851 boolean dwarf_debug : 1;
01852 boolean reserved_H : 1;
01853 boolean reserved_I : 1;
01854 boolean mod_out_path : 1;
01855 boolean reserved_K : 1;
01856 boolean reserved_L : 1;
01857 Uint num_msgs_suppressed : 16;
01858 boolean line_size_80 : 1;
01859 boolean line_size_132 : 1;
01860 boolean opt_options : 1;
01861 boolean small_pic_model : 1;
01862 boolean large_pic_model : 1;
01863 boolean reserved_Q : 1;
01864 boolean runtime_argument : 1;
01865 boolean runtime_arg_call : 1;
01866 boolean runtime_arg_entry : 1;
01867 boolean runtime_arg_count_only : 1;
01868 boolean runtime_bounds : 1;
01869 boolean runtime_conformance : 1;
01870 boolean runtime_intrinsics : 1;
01871 boolean runtime_substring : 1;
01872 boolean runtime_ptr_chk : 1;
01873 boolean assembly_output : 1;
01874 boolean reserved_T : 1;
01875 boolean reserved_U : 1;
01876 boolean verify_option : 1;
01877 boolean reserved_W : 1;
01878 Uint MPP_num_pes :32;
01879 boolean malleable : 1;
01880 boolean ccg_dump_options : 1;
01881 boolean co_array_fortran : 1;
01882 boolean do_UDB_checks : 1;
01883 };
01884
01885 struct ac_cmd_line_flags_entry {
01886 Uint temp_fchar_len : 3;
01887 Uint ghand_create_count : 3;
01888 };
01889
01890
01891 struct dump_flags_entry {
01892
01893
01894
01895 boolean abort_on_ansi : 1;
01896 boolean no_dimension_padding : 1;
01897 boolean no_module_output : 1;
01898 boolean preinline : 1;
01899 boolean f_minus_minus : 1;
01900 boolean fmm1 : 1;
01901 boolean fmm2 : 1;
01902 boolean show_cmd_line : 1;
01903 boolean mod_version : 1;
01904 boolean mp : 1;
01905 boolean open_mp : 1;
01906 boolean dsm : 1;
01907 boolean cray_compatible : 1;
01908 boolean pack_half_word : 1;
01909 int pvp_test;
01910
01911
01912
01913 boolean bd_tbl : 1;
01914 boolean blk_stk : 1;
01915 boolean cmd_line_tbls : 1;
01916 boolean cn_tbl : 1;
01917 boolean defines : 1;
01918 boolean fort_out : 1;
01919 boolean fortran_out : 1;
01920 boolean fp_tbl : 1;
01921 boolean ftrace_info : 1;
01922 boolean gl_tbl : 1;
01923 boolean help_dbg : 1;
01924 boolean intrin_tbl : 1;
01925 boolean ir1_tbl : 1;
01926 boolean ir2_tbl : 1;
01927 boolean ir3_tbl : 1;
01928 boolean ir4_tbl : 1;
01929 boolean mem_report : 1;
01930 boolean msg_checking : 1;
01931 boolean mtrace_info : 1;
01932 boolean name_tbls : 1;
01933 boolean pdgcs : 1;
01934 boolean pdt_dump : 1;
01935 boolean sb_tbl : 1;
01936 boolean scp_tbl : 1;
01937 boolean src_dmp : 1;
01938 boolean std_err : 1;
01939 boolean stmt_dmp : 1;
01940 boolean sytb : 1;
01941 boolean typ_tbl : 1;
01942 boolean constant_bits : 1;
01943 };
01944
01945
01946 struct on_off_flags_entry {
01947 boolean abort_if_any_errors : 1;
01948 boolean reserved_b : 1;
01949 boolean pad_char_literals : 1;
01950 boolean reserved_d : 1;
01951 boolean ieee : 1;
01952 boolean flowtrace_option : 1;
01953 boolean assembly_listing_file : 1;
01954 boolean integer_1_and_2 : 1;
01955 boolean indef_init : 1;
01956 boolean exec_doloops_once : 1;
01957 boolean reserved_k : 1;
01958 boolean reserved_l : 1;
01959 boolean module_to_mod : 1;
01960 boolean issue_ansi_messages : 1;
01961 boolean reserved_o : 1;
01962 boolean enable_double_precision : 1;
01963 boolean abort_on_100_errors : 1;
01964 boolean round_mult_operations : 1;
01965 boolean reserved_s : 1;
01966 boolean alloc_autos_on_stack : 1;
01967 boolean eu : 1;
01968 boolean round_integer_divide : 1;
01969 boolean reciprical_divide : 1;
01970 boolean save_all_vars : 1;
01971 boolean set_ev_option : 1;
01972 boolean reserved_w : 1;
01973 boolean reserved_x : 1;
01974 boolean reserved_y : 1;
01975 boolean recognize_minus_zero : 1;
01976 boolean MPP_apprentice : 1;
01977 boolean binary_output : 1;
01978 boolean shared_to_private_coer : 1;
01979 boolean all_debug : 1;
01980 boolean reserved_E : 1;
01981 boolean reserved_F : 1;
01982 boolean reserved_G : 1;
01983 boolean reserved_H : 1;
01984 boolean implicit_none : 1;
01985 boolean reserved_J : 1;
01986 boolean reserved_K : 1;
01987 boolean top_test_shortloops : 1;
01988 boolean reserved_M : 1;
01989 boolean remove_trailing_uscore : 1;
01990 boolean output_pound_lines : 1;
01991 boolean preprocess_only : 1;
01992 boolean preprocess : 1;
01993 boolean allow_leading_uscore : 1;
01994 boolean recursive : 1;
01995 boolean assembly_output : 1;
01996 boolean reserved_T : 1;
01997 boolean upper_case_names : 1;
01998 boolean reserved_V : 1;
01999 boolean reserved_W : 1;
02000 boolean atexpert : 1;
02001 boolean reserved_Y : 1;
02002 boolean save_dot_i : 1;
02003 boolean zero_init : 1;
02004 boolean d_lines : 1;
02005 };
02006
02007
02008
02009
02010
02011
02012
02013
02014 struct opnd_entry {Uint line_num : 24;
02015 Uint col_num : 8;
02016
02017 Uint flag_1 : 1;
02018 Uint flag_2 : 1;
02019 Uint unused : 2;
02020 fld_type fld : 4;
02021 Uint idx : 24;
02022 };
02023
02024
02025
02026
02027
02028
02029 enum size_expr_level {
02030 Unknown_Expr_Size,
02031 Simple_Expr_Size,
02032 Interp_Loop_Size,
02033 Guess_Size
02034 };
02035
02036 typedef enum size_expr_level size_level_type;
02037
02038
02039
02040
02041
02042
02043 struct expr_semantics_args {basic_type_type type : 8;
02044 linear_type_type linear_type : 8;
02045 Uint type_idx : 16;
02046
02047 boolean kind0seen : 1;
02048 boolean kind0E0seen : 1;
02049 boolean kind0D0seen : 1;
02050 boolean kindnotconst : 1;
02051 boolean percent_val_arg : 1;
02052 boolean constant : 1;
02053 boolean foldable : 1;
02054 boolean will_fold_later : 1;
02055 boolean pointer : 1;
02056 boolean target : 1;
02057 boolean vector_subscript: 1;
02058 boolean reference : 1;
02059 boolean constructor : 1;
02060 boolean component : 1;
02061 boolean section : 1;
02062 boolean label : 1;
02063 boolean array_elt : 1;
02064 boolean assumed_shape : 1;
02065 boolean assumed_size : 1;
02066 boolean allocatable : 1;
02067 boolean dope_vector : 1;
02068 boolean tmp_reference : 1;
02069 boolean has_constructor : 1;
02070 boolean optional_darg : 1;
02071 boolean pe_dim_ref : 1;
02072 boolean dist_reshape_ref: 1;
02073 #ifdef KEY
02074
02075
02076
02077
02078
02079 boolean derived_assign : 1;
02080 Uint UNUSED2 : 5;
02081 #else
02082 Uint UNUSED2 : 6;
02083 #endif
02084
02085 Uint rank : 32;
02086
02087 Uint UNUSED3 : 2;
02088 Uint constructor_size_level : 2;
02089 boolean has_symbolic : 1;
02090 boolean tree_has_ranf : 1;
02091 boolean contig_array : 1;
02092 boolean shape_known : 1;
02093 Uint cif_id : 24;
02094
02095
02096 opnd_type char_len;
02097 opnd_type bias_opnd;
02098 # ifdef COARRAY_FORTRAN
02099 opnd_type shape[14];
02100 # else
02101 opnd_type shape[7];
02102 # endif
02103 };
02104
02105 struct cdir_switch_entry {
02106 boolean align : 1;
02107 boolean autoscope : 1;
02108 boolean bl : 1;
02109 boolean bounds : 1;
02110 boolean casedir : 1;
02111 boolean cncall : 1;
02112 boolean code : 1;
02113 boolean concurrent : 1;
02114 boolean do_inline : 1;
02115 boolean do_parallel : 1;
02116 boolean doall_region : 1;
02117 boolean flow : 1;
02118 boolean guard : 1;
02119 boolean guard_has_flag : 1;
02120 boolean guard_in_par_reg : 1;
02121 boolean ivdep : 1;
02122 boolean mark : 1;
02123 boolean maxcpus : 1;
02124 boolean nextscalar : 1;
02125 boolean no_internal_calls : 1;
02126 boolean noinline : 1;
02127 boolean parallel_region : 1;
02128 boolean pattern : 1;
02129 boolean permutation : 1;
02130 boolean preferstream : 1;
02131 boolean preferstream_nocinv : 1;
02132 boolean prefertask : 1;
02133 boolean prefervector : 1;
02134 boolean recurrence : 1;
02135 boolean shortloop : 1;
02136 boolean shortloop128 : 1;
02137 boolean split : 1;
02138 boolean stream : 1;
02139 boolean task : 1;
02140 boolean notask_region : 1;
02141 boolean unroll_dir : 1;
02142 boolean vector : 1;
02143 boolean vsearch : 1;
02144
02145 boolean aggressiveinnerloopfission : 1;
02146 boolean fission : 1;
02147 boolean fissionable : 1;
02148 boolean fusable : 1;
02149 boolean fuse : 1;
02150 boolean noblocking : 1;
02151 boolean nofission : 1;
02152 boolean nofusion : 1;
02153 boolean nointerchange : 1;
02154 boolean opaque : 1;
02155 boolean purpleconditional : 1;
02156 boolean purpleunconditional : 1;
02157 boolean inline_here_sgi : 1;
02158 boolean noinline_here_sgi : 1;
02159
02160 int blockable_count;
02161 int blockable_group;
02162 int blockable_sh_idx;
02163 int bounds_il_list;
02164 int cache_bypass_ir_idx;
02165 int concurrent_idx;
02166 int copyin_list_idx;
02167 int copyprivate_list_idx;
02168 int default_scope_list_idx;
02169 int dir_nest_check_sh_idx;
02170 int do_omp_sh_idx;
02171 int doacross_sh_idx;
02172 int doall_sh_idx;
02173 int dopar_sh_idx;
02174 int firstprivate_list_idx;
02175 int flush_list_idx;
02176 int getfirst_list_idx;
02177 int implicit_use_idx;
02178 int inline_here_list_idx;
02179 int interchange_count;
02180 int interchange_group;
02181 int interchange_level;
02182 int interchange_sh_idx;
02183 int lastlocal_list_idx;
02184 int lastprivate_list_idx;
02185 int lastthread_list_idx;
02186 int mark_cmdline_idx;
02187 int mark_dir_idx;
02188 int nobounds_il_list;
02189 int noinline_here_list_idx;
02190 int paralleldo_omp_sh_idx;
02191 int paralleldo_sh_idx;
02192 int pdo_sh_idx;
02193 int private_list_idx;
02194 int reduction_list_idx;
02195 int safevl_idx;
02196 int send_list_idx;
02197 int shared_list_idx;
02198 int wait_list_idx;
02199 int unroll_count_idx;
02200
02201 opnd_type first_sh_blk_stk;
02202
02203 opnd_type chunk_opnd;
02204 opnd_type maxcpus_opnd;
02205 opnd_type mp_schedtype_opnd;
02206 };
02207
02208
02209 struct opt_flags_entry {
02210 boolean aggress : 1;
02211 boolean bottom_load : 1;
02212 boolean set_fastint_option : 1;
02213 boolean set_nofastint_option : 1;
02214 boolean set_allfastint_option : 1;
02215 boolean fusion : 1;
02216 boolean ieeeconform : 1;
02217 Uint inline_lvl : 3;
02218 Uint short_circuit_lvl : 2;
02219 boolean jump : 1;
02220 boolean loopalign : 1;
02221 boolean mark : 1;
02222 boolean modinline : 1;
02223 boolean extent_assert : 1;
02224 boolean msgs : 1;
02225 boolean neg_msgs : 1;
02226 boolean nointerchange : 1;
02227 boolean opt_info : 1;
02228 boolean over_index : 1;
02229 boolean pattern : 1;
02230 Uint pipeline_lvl : 2;
02231 boolean recurrence : 1;
02232 Uint scalar_lvl : 2;
02233 Uint split_lvl : 2;
02234 Uint stream_lvl : 2;
02235 Uint support_lvl : 2;
02236 Uint task_lvl : 2;
02237 boolean taskinner : 1;
02238 boolean threshold : 1;
02239 Uint unroll_lvl : 2;
02240 Uint vector_lvl : 2;
02241 boolean vsearch : 1;
02242 boolean zeroinc : 1;
02243 id_str_type mark_name;
02244 boolean matmul_inline : 1;
02245 boolean mv_matmul_inline : 1;
02246
02247 Uint reshape_idx : 16;
02248 boolean reshape : 1;
02249 boolean reshape_all_arrays : 1;
02250 };
02251
02252
02253
02254
02255
02256
02257 union target_machine_entry {
02258 struct {
02259
02260
02261
02262
02263
02264
02265
02266 # if defined(_GETPMC_AVAILABLE)
02267 long mcpmt;
02268 # elif defined(_HOST_OS_SOLARIS) || (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX))
02269 char mcpmt[12];
02270 # endif
02271 long mcbank;
02272 long mcncpu;
02273 long mcibsz;
02274 long mcmsz;
02275 long mcmspd;
02276 long mcclk;
02277 long mcncl;
02278 long mcbbsy;
02279 long mc_serial;
02280 long mc_rls;
02281 long mc_c_option_rev;
02282 long mc_i_option_rev;
02283 long mc_r_option_rev;
02284 long mc_m_option_rev_0;
02285 long mc_m_option_rev_1;
02286 long mc_m_option_rev_2;
02287 long mc_m_option_rev_3;
02288 long mc_subtype;
02289 long mc_subtype1;
02290
02291 long numeric_unused[44];
02292
02293
02294 Ulong mcema;
02295 Ulong mccigs;
02296 Ulong mcvpop;
02297 Ulong mcpc;
02298 Ulong mcrdvl;
02299 Ulong mcvrcr;
02300 Ulong mcavl;
02301 Ulong mchpm;
02302 Ulong mcbdm;
02303 Ulong mcstr;
02304 Ulong mccori;
02305 Ulong mcaddr32;
02306 Ulong mcxea;
02307 Ulong mcbmm;
02308 Ulong mcavpop;
02309 Ulong mcfullsect;
02310 Ulong mcieee;
02311 Ulong mccmrreq;
02312 Ulong mccache;
02313 Ulong logical_unused[45];
02314 } fld;
02315
02316 # if defined(_GETPMC_AVAILABLE)
02317 long mc_tbl[128];
02318 # elif defined(_HOST_OS_SOLARIS) || (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX))
02319 long mc_tbl[130];
02320 # endif
02321 };
02322
02323
02324
02325
02326
02327
02328
02329
02330
02331 enum cif_usage_code_values {CIF_Symbol_Declaration,
02332 CIF_Symbol_Reference,
02333 CIF_Symbol_Modification,
02334 CIF_Symbol_Is_Actual_Arg,
02335 CIF_Label_Referenced_In_ASSIGN,
02336 CIF_Label_Referenced_As_Branch_Target,
02337 CIF_Label_Referenced_As_Format,
02338 CIF_Do_Loop_Label,
02339 CIF_Derived_Type_Name_Definition,
02340 CIF_Derived_Type_Name_Reference,
02341 CIF_Construct_Name_Reference,
02342 CIF_Symbol_Is_Dummy_Arg,
02343 CIF_Symbol_Defined_Opr_Actual_Arg,
02344 CIF_Symbol_Is_Hidden_Used_Module,
02345 CIF_No_Usage_Rec
02346 };
02347
02348
02349 enum cif_directive_code_values {CIF_Master,
02350 CIF_End_Master,
02351 CIF_Barrier,
02352 CIF_No_Barrier,
02353 CIF_Critical,
02354 CIF_End_Critical,
02355 CIF_Shared_Io,
02356 CIF_Atomic_Update,
02357 CIF_List,
02358 CIF_Nolist,
02359 CIF_Eject
02360 };
02361
02362
02363
02364
02365
02366
02367
02368
02369
02370
02371
02372
02373
02374
02375 enum cif_stmt_values
02376 {CIF_Not_Exact = -2,
02377
02378 CIF_Stmt_Type_Error = -1,
02379
02380 CIF_Allocatable_Stmt = 0,
02381 CIF_Allocate_Stmt,
02382 CIF_Assign_Stmt,
02383 CIF_Assignment_Stmt,
02384 CIF_Backspace_Stmt,
02385 CIF_Block_Data_Stmt = 5,
02386
02387 CIF_Call_Stmt = 7,
02388 CIF_Case_Stmt,
02389 CIF_Close_Stmt,
02390 CIF_Common_Stmt = 10,
02391 CIF_Contains_Stmt,
02392 CIF_Continue_Stmt,
02393 CIF_Cycle_Stmt,
02394 CIF_Data_Stmt,
02395 CIF_Deallocate_Stmt = 15,
02396 CIF_Decode_Stmt,
02397 CIF_Case_Default_Stmt,
02398 CIF_Type_Stmt,
02399 CIF_Dimension_Stmt,
02400 CIF_Directive_Stmt = 20,
02401
02402 CIF_Else_Stmt = 23,
02403 CIF_Else_If_Stmt,
02404 CIF_Elsewhere_Stmt,
02405 CIF_Encode_Stmt = 26,
02406
02407 CIF_Endfile_Stmt = 28,
02408 CIF_Entry_Stmt,
02409 CIF_Equivalence_Stmt = 30,
02410 CIF_Exit_Stmt,
02411 CIF_External_Stmt,
02412 CIF_Format_Stmt,
02413 CIF_Function_Stmt = 34,
02414
02415 CIF_If_Construct = 37,
02416 CIF_Implicit_Stmt,
02417 CIF_Implicit_None_Stmt,
02418 CIF_Inquire_Stmt = 40,
02419
02420 CIF_Intrinsic_Stmt = 43,
02421 CIF_Module_Stmt,
02422 CIF_Module_Procedure_Stmt = 45,
02423 CIF_Namelist_Stmt,
02424 CIF_Nullify_Stmt,
02425 CIF_Open_Stmt,
02426 CIF_Optional_Stmt,
02427 CIF_Parameter_Stmt = 50,
02428 CIF_Pause_Stmt,
02429 CIF_Pointer_Stmt,
02430 CIF_Print_Stmt,
02431 CIF_Private_Stmt,
02432 CIF_Program_Stmt,
02433 CIF_Public_Stmt = 56,
02434
02435 CIF_Read_Stmt = 58,
02436 CIF_Return_Stmt,
02437 CIF_Rewind_Stmt = 60,
02438 CIF_Save_Stmt,
02439 CIF_Select_Case_Stmt,
02440 CIF_Sequence_Stmt,
02441 CIF_Statement_Function_Stmt,
02442 CIF_Stop_Stmt = 65,
02443 CIF_Subroutine_Stmt,
02444 CIF_Target_Stmt,
02445 CIF_Type_Declaration_Stmt,
02446 CIF_Use_Stmt,
02447 CIF_Where_Stmt = 70,
02448 CIF_Where_Construct,
02449 CIF_Write_Stmt,
02450 CIF_Buffer_In_Stmt,
02451 CIF_Buffer_Out_Stmt = 74,
02452
02453 CIF_End_Do_Stmt = 77,
02454 CIF_End_If_Stmt,
02455 CIF_Include_Stmt,
02456 CIF_CDIR_Stmt = 80,
02457 CIF_Array_Assignment_Stmt,
02458 CIF_Pointer_Assigment_Stmt,
02459
02460 CIF_Do_Labeled_Infinite_Stmt
02461 = 100,
02462 CIF_Do_Unlabeled_Infinite_Stmt,
02463
02464 CIF_Do_Labeled_Iterative_Stmt,
02465
02466 CIF_Do_Unlabeled_Iterative_Stmt,
02467
02468 CIF_Do_Labeled_While_Stmt,
02469
02470 CIF_Do_Unlabeled_While_Stmt
02471 = 105,
02472 CIF_End_Block_Data_Stmt,
02473 CIF_End_Function_Stmt,
02474 CIF_End_Interface_Stmt,
02475 CIF_End_Module_Stmt,
02476 CIF_End_Program_Stmt = 110,
02477 CIF_End_Select_Stmt,
02478 CIF_End_Subroutine_Stmt,
02479 CIF_End_Type_Stmt,
02480 CIF_End_Where_Stmt,
02481 CIF_Go_To_Unconditional_Stmt = 115,
02482 CIF_Go_To_Assigned_Stmt,
02483 CIF_Go_To_Computed_Stmt,
02484 CIF_If_Logical_Stmt,
02485 CIF_If_Arithmetic_Stmt,
02486 CIF_If_Indirect_Logical_Stmt
02487 = 120,
02488 CIF_If_Two_Branch_Arithmetic_Stmt,
02489
02490 CIF_Intent_In_Stmt,
02491 CIF_Intent_Out_Stmt,
02492 CIF_Intent_Inout_Stmt,
02493 CIF_Interface_Explicit_Stmt = 125,
02494 CIF_Interface_Generic_Stmt,
02495
02496 CIF_Interface_Operator_Stmt,
02497
02498 CIF_Interface_Assignment_Stmt,
02499
02500 CIF_Task_Common_Stmt,
02501 CIF_Automatic_Stmt = 130,
02502 CIF_Elemental_Stmt,
02503 CIF_Pure_Stmt,
02504 CIF_Forall_Stmt,
02505 CIF_Forall_Construct,
02506 CIF_Max,
02507 CIF_End_Forall_Stmt
02508 };
02509
02510 typedef enum cif_directive_code_values cif_directive_code_type;
02511 typedef enum cif_stmt_values cif_stmt_type;
02512 typedef enum cif_usage_code_values cif_usage_code_type;
02513
02514
02515
02516
02517
02518
02519 extern void unknown_intrinsic (opnd_type *, expr_arg_type *, int *);
02520 extern void abs_intrinsic (opnd_type *, expr_arg_type *, int *);
02521 extern void sin_intrinsic (opnd_type *, expr_arg_type *, int *);
02522 extern void atan2_intrinsic (opnd_type *, expr_arg_type *, int *);
02523 extern void exit_intrinsic (opnd_type *, expr_arg_type *, int *);
02524 extern void aimag_intrinsic (opnd_type *, expr_arg_type *, int *);
02525 extern void int_intrinsic (opnd_type *, expr_arg_type *, int *);
02526 extern void ilen_intrinsic (opnd_type *, expr_arg_type *, int *);
02527 extern void iand_intrinsic (opnd_type *, expr_arg_type *, int *);
02528 extern void mod_intrinsic (opnd_type *, expr_arg_type *, int *);
02529 extern void anint_intrinsic (opnd_type *, expr_arg_type *, int *);
02530 extern void nint_intrinsic (opnd_type *, expr_arg_type *, int *);
02531 extern void sign_intrinsic (opnd_type *, expr_arg_type *, int *);
02532 extern void modulo_intrinsic (opnd_type *, expr_arg_type *, int *);
02533 extern void shift_intrinsic (opnd_type *, expr_arg_type *, int *);
02534 extern void leadz_intrinsic (opnd_type *, expr_arg_type *, int *);
02535 extern void not_intrinsic (opnd_type *, expr_arg_type *, int *);
02536 extern void aint_intrinsic (opnd_type *, expr_arg_type *, int *);
02537 extern void dim_intrinsic (opnd_type *, expr_arg_type *, int *);
02538 extern void max_intrinsic (opnd_type *, expr_arg_type *, int *);
02539 extern void ranget_intrinsic (opnd_type *, expr_arg_type *, int *);
02540 extern void ranf_intrinsic (opnd_type *, expr_arg_type *, int *);
02541 extern void real_intrinsic (opnd_type *, expr_arg_type *, int *);
02542 extern void mask_intrinsic (opnd_type *, expr_arg_type *, int *);
02543 extern void conjg_intrinsic (opnd_type *, expr_arg_type *, int *);
02544 extern void dprod_intrinsic (opnd_type *, expr_arg_type *, int *);
02545 extern void i24mult_intrinsic (opnd_type *, expr_arg_type *, int *);
02546 extern void length_intrinsic (opnd_type *, expr_arg_type *, int *);
02547 extern void getpos_intrinsic (opnd_type *, expr_arg_type *, int *);
02548 extern void unit_intrinsic (opnd_type *, expr_arg_type *, int *);
02549 extern void cmplx_intrinsic (opnd_type *, expr_arg_type *, int *);
02550 extern void len_intrinsic (opnd_type *, expr_arg_type *, int *);
02551 extern void ichar_intrinsic (opnd_type *, expr_arg_type *, int *);
02552 extern void idate_intrinsic (opnd_type *, expr_arg_type *, int *);
02553 extern void char_intrinsic (opnd_type *, expr_arg_type *, int *);
02554 extern void lint_intrinsic (opnd_type *, expr_arg_type *, int *);
02555 extern void index_intrinsic (opnd_type *, expr_arg_type *, int *);
02556 extern void lge_intrinsic (opnd_type *, expr_arg_type *, int *);
02557 extern void numarg_intrinsic (opnd_type *, expr_arg_type *, int *);
02558 extern void fcd_intrinsic (opnd_type *, expr_arg_type *, int *);
02559 extern void loc_intrinsic (opnd_type *, expr_arg_type *, int *);
02560 extern void clock_intrinsic (opnd_type *, expr_arg_type *, int *);
02561 extern void rtc_intrinsic (opnd_type *, expr_arg_type *, int *);
02562 extern void my_pe_intrinsic (opnd_type *, expr_arg_type *, int *);
02563 extern void cvmgp_intrinsic (opnd_type *, expr_arg_type *, int *);
02564 extern void cvmgt_intrinsic (opnd_type *, expr_arg_type *, int *);
02565 extern void csmg_intrinsic (opnd_type *, expr_arg_type *, int *);
02566 extern void mergee_intrinsic (opnd_type *, expr_arg_type *, int *);
02567 extern void adjustl_intrinsic (opnd_type *, expr_arg_type *, int *);
02568 extern void ceiling_intrinsic (opnd_type *, expr_arg_type *, int *);
02569 extern void digits_intrinsic (opnd_type *, expr_arg_type *, int *);
02570 extern void epsilon_intrinsic (opnd_type *, expr_arg_type *, int *);
02571 extern void exponent_intrinsic(opnd_type *, expr_arg_type *, int *);
02572 extern void floor_intrinsic (opnd_type *, expr_arg_type *, int *);
02573 extern void fraction_intrinsic(opnd_type *, expr_arg_type *, int *);
02574 extern void huge_intrinsic (opnd_type *, expr_arg_type *, int *);
02575 extern void ibits_intrinsic (opnd_type *, expr_arg_type *, int *);
02576 extern void ibset_intrinsic (