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 static char USMID[] = "\n@(#)5.0_pl/sources/debug.c 5.17 10/14/99 12:53:57\n";
00046
00047 # include "defines.h"
00048
00049 # include "host.m"
00050 # include "host.h"
00051 # include "target.m"
00052 # include "target.h"
00053 # include "globals.m"
00054 # include "tokens.m"
00055 # include "sytb.m"
00056 # include "p_globals.m"
00057 # include "debug.m"
00058 # include "s_utils.m"
00059 # include "globals.h"
00060 # include "tokens.h"
00061 # include "sytb.h"
00062 # include "p_globals.h"
00063 # include "debug.h"
00064
00065 static void build_fake_token (char *);
00066 static void chain_thru_sn_ntries(FILE *, int, boolean);
00067 static void dump_al_ntry (FILE *, int);
00068 static void dump_at_ntry (FILE *, int, boolean);
00069 static void dump_blk_ntry (FILE *, int);
00070 static void dump_bd_ntry (FILE *, int);
00071 static void dump_cn_ntry (FILE *, int);
00072 static void dump_dv (FILE *, int_dope_type *, boolean);
00073 static void dump_ga_ntry (FILE *, int);
00074 static void dump_gb_ntry (FILE *, int);
00075 static void dump_gl_ntry (FILE *, int);
00076 static void dump_gn_ntry (FILE *, int);
00077 static void dump_gt_ntry (FILE *, int);
00078 static void dump_hn_ntry (FILE *, int, boolean);
00079 static void dump_il_ntry (FILE *, int);
00080 static void dump_ir_ntry (FILE *, int, int);
00081 static void dump_ln_ntry (FILE *, int, boolean);
00082 static void dump_fp_ntry (FILE *, int, boolean);
00083 static void dump_ml_ntry (FILE *, int);
00084 static void dump_ro_ntry (FILE *, int);
00085 static void dump_sb_ntry (FILE *, int);
00086 static void dump_scp_ntry (FILE *, int, int, boolean, boolean);
00087 static void dump_sn_ntry (FILE *, int);
00088 static void dump_eq_ntry (FILE *, int);
00089 static void dump_stmt_ntry (FILE *, boolean);
00090 static void dump_typ_ntry (FILE *, int);
00091 static void dump_trace_info (FILE *, trace_type, char *, char *);
00092 static void loop_thru_sn_ntries (FILE *, int, boolean);
00093 static void print_all_text (boolean);
00094 static char *print_at_name (int);
00095 static void print_attr_name (FILE *, int, int);
00096 static void print_const_entry (FILE *, int, int);
00097 static void print_list (FILE *, int, int, int, boolean);
00098 #ifdef KEY
00099 static void print_Dv_Whole_Def_Opr (FILE *, int, int, int, int);
00100 #else
00101 static void print_Dv_Whole_Def_Opr (FILE *, int, int, int);
00102 #endif
00103 static void print_mp_dir_opr (FILE *, int, int, int);
00104 static void print_open_mp_dir_opr(FILE *, int, int, int);
00105 static void print_expanded_stmt_for_scp(void);
00106 static void print_expanded_ir (int);
00107 static void print_expanded_il (int);
00108 static void print_expanded_opnd (opnd_type);
00109 static void print_expanded_const(int);
00110 static void print_fld_idx (FILE *, char *, fld_type,int);
00111 static char *print_global_type_f(int);
00112 static void print_tbl_header (char *);
00113 static void dump_io_type_code_ntry(FILE *, long_type *, int);
00114
00115 static boolean full_debug_dump;
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134 FILE * init_debug_file (void)
00135
00136 {
00137 if (debug_file == NULL) {
00138 full_debug_dump = TRUE;
00139
00140
00141
00142
00143 if (debug_file_name[0] == NULL_CHAR) {
00144 strcpy(debug_file_name, "cft90_dump");
00145 }
00146
00147 debug_file = fopen(debug_file_name, "w");
00148
00149 if (debug_file == NULL) {
00150 PRINTMSG(1, 17, Error, 0, debug_file_name);
00151 exit_compiler(RC_USER_ERROR);
00152 }
00153 }
00154
00155 return(debug_file);
00156
00157 }
00158
00159 # ifdef _DEBUG
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189 void print_bd_tbl (void)
00190
00191 {
00192 int bd_idx;
00193
00194
00195 print_tbl_header("Bounds Table");
00196
00197 bd_idx = 1;
00198
00199 while (bd_idx < bounds_tbl_idx) {
00200 dump_bd_ntry(debug_file, bd_idx);
00201 bd_idx += BD_NTRY_SIZE(bd_idx);
00202 }
00203
00204 bd_idx = BD_NEXT_FREE_NTRY(BD_FREE_LIST_IDX);
00205
00206 while (bd_idx != NULL_IDX) {
00207 dump_bd_ntry(debug_file, bd_idx);
00208 bd_idx = BD_NEXT_FREE_NTRY(bd_idx);
00209 }
00210
00211 putc ('\n', debug_file);
00212 fflush(debug_file);
00213 return;
00214
00215 }
00216
00217
00218
00219
00220
00221
00222
00223
00224 void print_blk_tbl (void)
00225
00226 {
00227 int blk_idx;
00228
00229
00230 print_tbl_header("BLOCK STACK");
00231
00232 for (blk_idx = 1; blk_idx <= blk_stk_idx; blk_idx++) {
00233 dump_blk_ntry(debug_file, blk_idx);
00234 }
00235
00236 putc ('\n', debug_file);
00237 fflush (debug_file);
00238 return;
00239
00240 }
00241
00242
00243
00244
00245
00246
00247
00248
00249 void print_cn_tbl (void)
00250
00251 {
00252 int cn_idx;
00253
00254
00255 print_tbl_header("Constant Table");
00256
00257 for (cn_idx = 1; cn_idx <= const_tbl_idx; cn_idx++) {
00258 dump_cn_ntry(debug_file, cn_idx);
00259 }
00260
00261 putc ('\n', debug_file);
00262 fflush (debug_file);
00263 return;
00264
00265 }
00266
00267
00268
00269
00270
00271
00272
00273 void print_eq_tbl (void)
00274 {
00275 int next_group;
00276 int next_item;
00277
00278
00279 if (SCP_FIRST_EQUIV_GRP(curr_scp_idx) == NULL_IDX) {
00280 print_tbl_header("Equivalence Table is empty");
00281 }
00282 else {
00283 print_tbl_header("Equivalence Table");
00284
00285 next_group = SCP_FIRST_EQUIV_GRP(curr_scp_idx);
00286
00287 while (next_group != NULL_IDX) {
00288 fprintf(debug_file, "%21s\n", "NEW EQUIVALENCE GROUP");
00289 next_item = next_group;
00290
00291 while (next_item != NULL_IDX) {
00292 dump_eq_ntry(debug_file, next_item);
00293 next_item = EQ_NEXT_EQUIV_OBJ(next_item);
00294 }
00295 next_group = EQ_NEXT_EQUIV_GRP(next_group);
00296 }
00297 }
00298
00299 putc ('\n', debug_file);
00300 fflush (debug_file);
00301 return;
00302
00303 }
00304
00305
00306
00307
00308
00309
00310
00311
00312 void print_fp_tbl (void)
00313
00314 {
00315 int fp_idx;
00316
00317 print_tbl_header("File Path Table");
00318
00319 fprintf(debug_file, "%s\n\n", "Module paths:");
00320
00321 fp_idx = module_path_idx;
00322
00323 while (fp_idx != NULL_IDX) {
00324 dump_fp_ntry(debug_file, fp_idx, TRUE);
00325 fp_idx = FP_NEXT_FILE_IDX(fp_idx);
00326 }
00327
00328 #ifdef KEY
00329 fprintf(debug_file, "%s\n\n", "Intrinsic module paths:");
00330
00331 fp_idx = intrinsic_module_path_idx;
00332
00333 while (fp_idx != NULL_IDX) {
00334 dump_fp_ntry(debug_file, fp_idx, TRUE);
00335 fp_idx = FP_NEXT_FILE_IDX(fp_idx);
00336 }
00337 #endif
00338
00339 fprintf(debug_file, "%s\n\n", "Implicit Use Module Paths:");
00340
00341 fp_idx = cmd_line_flags.implicit_use_idx;
00342
00343 while (fp_idx != NULL_IDX) {
00344 dump_fp_ntry(debug_file, fp_idx, TRUE);
00345 fp_idx = FP_NEXT_FILE_IDX(fp_idx);
00346 }
00347
00348 fprintf(debug_file, "%s\n\n", "Inline paths:");
00349
00350 fp_idx = inline_path_idx;
00351
00352 while (fp_idx != NULL_IDX) {
00353 dump_fp_ntry(debug_file, fp_idx, TRUE);
00354 fp_idx = FP_NEXT_FILE_IDX(fp_idx);
00355 }
00356
00357 fprintf(debug_file, "%s\n\n", "Include paths:");
00358
00359 print_fp_includes();
00360
00361 putc ('\n', debug_file);
00362 fflush(debug_file);
00363 return;
00364
00365 }
00366
00367
00368
00369
00370
00371
00372
00373 void print_gb_tbl (void)
00374
00375 {
00376 int gb_idx;
00377
00378
00379 print_tbl_header("Global Bounds Table");
00380
00381 gb_idx = 1;
00382
00383 while (gb_idx != NULL_IDX && gb_idx <= global_bounds_tbl_idx) {
00384 dump_gb_ntry(debug_file, gb_idx);
00385
00386 if (GB_ARRAY_SIZE(gb_idx) == Constant_Size &&
00387 GB_ARRAY_CLASS(gb_idx) == Explicit_Shape) {
00388 gb_idx += (GB_RANK(gb_idx) * 2);
00389 }
00390 else {
00391 gb_idx++;
00392 }
00393
00394 }
00395
00396 putc ('\n', debug_file);
00397 fflush (debug_file);
00398 return;
00399
00400 }
00401
00402
00403
00404
00405
00406
00407
00408
00409 void print_gl_tbl (void)
00410
00411 {
00412 int gl_idx;
00413
00414
00415 print_tbl_header("Global Line Table");
00416
00417 for (gl_idx = 1; gl_idx <= global_line_tbl_idx; gl_idx++) {
00418 dump_gl_ntry(debug_file, gl_idx);
00419 }
00420
00421 fprintf(debug_file,"\n %-22s= %-10d %-20s= %-10d\n",
00422 "num_prog_unit_err", num_prog_unit_errors,
00423 "num_ansi", num_ansi);
00424
00425 fprintf(debug_file," %-22s= %-10d %-20s= %-10d\n",
00426 "num_warnings", num_warnings,
00427 "num_cautions", num_cautions);
00428
00429 fprintf(debug_file," %-22s= %-10d %-20s= %-10d\n",
00430 "num_notes", num_notes,
00431 "num_comments", num_comments);
00432
00433 putc ('\n', debug_file);
00434 fflush (debug_file);
00435 return;
00436
00437 }
00438
00439
00440
00441
00442
00443
00444
00445
00446 void print_gn_tbl (void)
00447
00448 {
00449 int gn_idx;
00450 int gt_idx;
00451
00452
00453 print_tbl_header("Global Name Table");
00454
00455 for (gn_idx = 2; gn_idx < global_name_tbl_idx; gn_idx++) {
00456 fprintf(debug_file, "\n****************************************"
00457 "****************************************\n");
00458 dump_gn_ntry(debug_file, gn_idx);
00459 dump_ga_ntry(debug_file, GN_ATTR_IDX(gn_idx));
00460 }
00461 fprintf(debug_file, "\n****************************************"
00462 "****************************************\n");
00463
00464 for (gt_idx = 1; gt_idx <= global_type_tbl_idx; gt_idx++) {
00465
00466 if (GT_TYPE(gt_idx) == Structure) {
00467 dump_ga_ntry(debug_file, GT_STRUCT_IDX(gt_idx));
00468 }
00469 }
00470
00471 putc ('\n', debug_file);
00472 fflush (debug_file);
00473 return;
00474
00475 }
00476
00477
00478
00479
00480
00481
00482
00483
00484 void print_gt_tbl (void)
00485
00486 {
00487 int gt_idx;
00488
00489
00490 print_tbl_header("Global Type Table");
00491
00492 for (gt_idx = 1; gt_idx <= global_type_tbl_idx; gt_idx++) {
00493 dump_gt_ntry(debug_file, gt_idx);
00494 }
00495
00496 putc ('\n', debug_file);
00497 fflush (debug_file);
00498 return;
00499
00500 }
00501
00502
00503
00504
00505
00506
00507
00508 void print_hn_tbl()
00509
00510 {
00511 int hn_idx;
00512
00513
00514 print_tbl_header("Hidden Name Table");
00515
00516 for (hn_idx = SCP_HN_FW_IDX(curr_scp_idx) + 1;
00517 hn_idx < SCP_HN_LW_IDX(curr_scp_idx);
00518 hn_idx++) {
00519 dump_hn_ntry(debug_file, hn_idx, FALSE);
00520 }
00521
00522 putc ('\n', debug_file);
00523 fflush (debug_file);
00524 return;
00525
00526 }
00527
00528
00529
00530
00531
00532
00533
00534
00535 void print_ln_tbl()
00536
00537 {
00538 int ln_idx;
00539
00540 print_tbl_header("Local Name Table");
00541
00542 for (ln_idx = SCP_LN_FW_IDX(curr_scp_idx) + 1;
00543 ln_idx < SCP_LN_LW_IDX(curr_scp_idx);
00544 ln_idx++) {
00545 dump_ln_ntry(debug_file, ln_idx, FALSE);
00546 }
00547
00548 putc ('\n', debug_file);
00549 fflush (debug_file);
00550 return;
00551
00552 }
00553
00554
00555
00556
00557
00558
00559
00560
00561 void print_ml_tbl()
00562
00563 {
00564 int ml_idx;
00565
00566
00567 print_tbl_header("Module Link Table");
00568
00569 fprintf(debug_file,
00570 " NOTE: Only print entries that have at least one nonzero index\n");
00571
00572 for (ml_idx = 0; ml_idx <= mod_link_tbl_idx; ml_idx++) {
00573
00574 if (ML_AT_IDX(ml_idx) != NULL_IDX ||
00575 ML_BD_IDX(ml_idx) != NULL_IDX ||
00576 ML_CN_IDX(ml_idx) != NULL_IDX ||
00577 ML_LN_IDX(ml_idx) != NULL_IDX ||
00578 ML_NP_IDX(ml_idx) != NULL_IDX ||
00579 ML_SB_IDX(ml_idx) != NULL_IDX ||
00580 ML_IL_IDX(ml_idx) != NULL_IDX ||
00581 ML_IR_IDX(ml_idx) != NULL_IDX ||
00582 ML_CP_IDX(ml_idx) != NULL_IDX ||
00583 ML_SH_IDX(ml_idx) != NULL_IDX ||
00584 ML_TYP_IDX(ml_idx) != NULL_IDX ||
00585 ML_SN_IDX(ml_idx) != NULL_IDX) {
00586 dump_ml_ntry(debug_file, ml_idx);
00587 }
00588 }
00589
00590 putc ('\n', debug_file);
00591 fflush (debug_file);
00592 return;
00593
00594 }
00595
00596
00597
00598
00599
00600
00601
00602
00603 void print_ro_tbl (int ro_start_idx)
00604
00605 {
00606 int ro_idx;
00607
00608
00609 print_tbl_header("Rename Only Table");
00610
00611 ro_idx = ro_start_idx;
00612
00613 while (ro_idx != NULL_IDX) {
00614 dump_ro_ntry(debug_file, ro_idx);
00615 ro_idx = RO_NEXT_IDX(ro_idx);
00616 }
00617
00618 putc ('\n', debug_file);
00619 fflush(debug_file);
00620 return;
00621
00622 }
00623
00624
00625
00626
00627
00628
00629
00630
00631 void print_sb_tbl (void)
00632
00633 {
00634 int sb_idx;
00635
00636
00637 print_tbl_header("Storage Block Table");
00638
00639 for (sb_idx = 1; sb_idx <= stor_blk_tbl_idx; sb_idx++) {
00640 dump_sb_ntry(debug_file, sb_idx);
00641 }
00642
00643 putc ('\n', debug_file);
00644 fflush(debug_file);
00645 return;
00646
00647 }
00648
00649
00650
00651
00652
00653
00654
00655
00656 void print_scp_tbl(void)
00657
00658 {
00659 print_tbl_header("Scope Table");
00660
00661 dump_scp_ntry(debug_file, 0, 0, FALSE, TRUE);
00662
00663 putc ('\n', debug_file);
00664 fflush (debug_file);
00665 return;
00666
00667 }
00668
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681 void print_sh_tbl (boolean print_all_scps)
00682
00683 {
00684 int save_curr_scp_idx;
00685 int save_curr_stmt_sh_idx;
00686
00687
00688 print_tbl_header("Statement Header Table");
00689
00690 if (print_all_scps) {
00691 save_curr_scp_idx = curr_scp_idx;
00692 curr_scp_idx = 1;
00693 save_curr_stmt_sh_idx = curr_stmt_sh_idx;
00694
00695 print_all_text(TRUE);
00696
00697 curr_scp_idx = save_curr_scp_idx;
00698 curr_stmt_sh_idx = save_curr_stmt_sh_idx;
00699 }
00700 else {
00701 print_all_text(FALSE);
00702 }
00703
00704 return;
00705
00706 }
00707
00708
00709
00710
00711
00712
00713
00714
00715 void print_typ_tbl (void)
00716
00717 {
00718 int type_idx;
00719
00720
00721 print_tbl_header("Type Table");
00722
00723 for (type_idx = 1; type_idx <= type_tbl_idx; type_idx++) {
00724 dump_typ_ntry(debug_file, type_idx);
00725 }
00726
00727 putc ('\n', debug_file);
00728 fflush(debug_file);
00729 return;
00730
00731 }
00732
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749
00750 void print_cmd_tbl (void)
00751
00752 {
00753 extern char *directive_str[];
00754 int dir_idx;
00755 boolean first;
00756 int fp_idx;
00757 int i,j;
00758
00759
00760 print_tbl_header("Commandline Flags");
00761
00762 fprintf(debug_file, " %-17s = %-s\n",
00763 " source file", src_file);
00764 fprintf(debug_file, " %-17s = %-s\n",
00765 "-b binary_output", (cmd_line_flags.binary_output)?bin_file:"NONE");
00766 fprintf(debug_file, " %-17s= %-s\n",
00767 "-S assembly_output", (cmd_line_flags.assembly_output) ?
00768 assembly_file:"NONE");
00769
00770 if (include_path_idx == NULL_IDX) {
00771 fprintf(debug_file, " %-17s = %-s\n", "-I include paths", "NONE");
00772 }
00773 else {
00774 fprintf(debug_file, " %-17s\n", "-I include paths");
00775 print_fp_includes();
00776 }
00777
00778 if (module_path_idx == NULL_IDX) {
00779 fprintf(debug_file, " %-17s = %-s\n", "-p module paths", "NONE");
00780 }
00781 else {
00782 fprintf(debug_file, " %-17s\n", "-p module paths");
00783 fp_idx = module_path_idx;
00784
00785 while (fp_idx != NULL_IDX) {
00786 fprintf(debug_file, "%4s%-s\n", " ", FP_NAME_PTR(fp_idx));
00787 fp_idx = FP_NEXT_FILE_IDX(fp_idx);
00788 }
00789 }
00790 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00791 "-align8", boolean_str[cmd_line_flags.align8],
00792 "-align16", boolean_str[cmd_line_flags.align16],
00793 "-align32", boolean_str[cmd_line_flags.align32]);
00794
00795 fprintf(debug_file, " %-17s = %-2s\n",
00796 "-align64", boolean_str[cmd_line_flags.align64]);
00797
00798 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00799 "-a dalign", boolean_str[cmd_line_flags.dalign],
00800 "-a taskcommon", boolean_str[cmd_line_flags.taskcommon],
00801 "-f ", src_form_str[cmd_line_flags.src_form]);
00802
00803 fprintf(debug_file, " %-17s = %-27s %-18s = %-7s\n",
00804 "-i ", integer_size_str[cmd_line_flags.integer_32],
00805 "-k solaris_profile", boolean_str[cmd_line_flags.solaris_profile]);
00806
00807 fprintf(debug_file, " %-17s = %-27s %-18s = %-7s\n",
00808 "-m ", msg_lvl_str[cmd_line_flags.msg_lvl_suppressed],
00809 "-s float64", boolean_str[cmd_line_flags.s_float64]);
00810
00811 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00812 "-s default64", boolean_str[cmd_line_flags.s_default64],
00813 "-s default32", boolean_str[cmd_line_flags.s_default32],
00814 "-s cf77types", boolean_str[cmd_line_flags.s_cf77types]);
00815
00816 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00817 "-s integer8", boolean_str[cmd_line_flags.s_integer8],
00818 "-s logical8", boolean_str[cmd_line_flags.s_logical8],
00819 "-s real8", boolean_str[cmd_line_flags.s_real8]);
00820
00821
00822 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00823 "-s complex8", boolean_str[cmd_line_flags.s_complex8],
00824 "-s pointer8", boolean_str[cmd_line_flags.s_pointer8],
00825 "-s doublecomplex16", boolean_str[cmd_line_flags.s_doublecomplex16]);
00826
00827 fprintf(debug_file, " %-42s = %-2s\n",
00828 "-s doubleprecision16",
00829 boolean_str[cmd_line_flags.s_doubleprecision16]);
00830
00831 fprintf(debug_file, " %-17s = %-2s %-18s = %-s\n",
00832 "-t truncate_bits", boolean_str[cmd_line_flags.truncate_bits],
00833 "-G ", debug_lvl_str[cmd_line_flags.debug_lvl]);
00834
00835 fprintf(debug_file, " %-17s = ", "-N line_size");
00836
00837 if (cmd_line_flags.line_size_80) {
00838 fprintf(debug_file, "%-7d\n", 80);
00839 }
00840 else if (cmd_line_flags.line_size_132) {
00841 fprintf(debug_file, "%-7d\n", 132);
00842 }
00843 else {
00844 fprintf(debug_file, "%-7d\n", 72);
00845 }
00846
00847 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00848 "-Ps small pic", boolean_str[(cmd_line_flags.small_pic_model)],
00849 "-Pl large pic", boolean_str[(cmd_line_flags.large_pic_model)],
00850 "-R a", boolean_str[cmd_line_flags.runtime_argument]);
00851
00852 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00853 "-R b", boolean_str[cmd_line_flags.runtime_bounds],
00854 "-R c", boolean_str[cmd_line_flags.runtime_conformance],
00855 "-R C", boolean_str[cmd_line_flags.runtime_arg_call]);
00856
00857 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-7s\n",
00858 "-R E", boolean_str[cmd_line_flags.runtime_arg_entry],
00859 "-R s", boolean_str[cmd_line_flags.runtime_substring],
00860 "-R n", boolean_str[cmd_line_flags.runtime_arg_count_only]);
00861
00862 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-d\n",
00863 "-V verify_option", boolean_str[(cmd_line_flags.verify_option)],
00864 "-X m", boolean_str[(cmd_line_flags.malleable)],
00865 "-X npes", cmd_line_flags.MPP_num_pes);
00866
00867
00868 fprintf(debug_file, "\n%s On/Off Flags (-e/-d)%s\n\n",
00869 " -------------------------- ",
00870 " -------------------------- ");
00871
00872 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00873 "a abort_if_any_errors",
00874 boolean_str[on_off_flags.abort_if_any_errors],
00875 "e ieee",
00876 boolean_str[on_off_flags.ieee]);
00877 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00878 "f flowtrace_option",
00879 boolean_str[on_off_flags.flowtrace_option],
00880 "g assembly_listing_file",
00881 boolean_str[on_off_flags.assembly_listing_file]);
00882 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00883 "i indef_init",
00884 boolean_str[on_off_flags.indef_init],
00885 "j exec_doloops_once",
00886 boolean_str[on_off_flags.exec_doloops_once]);
00887 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00888 "n issue_ansi_messages",
00889 boolean_str[on_off_flags.issue_ansi_messages],
00890 "p enable_double_precision",
00891 boolean_str[on_off_flags.enable_double_precision]);
00892 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00893 "q abort_on_100_errors",
00894 boolean_str[on_off_flags.abort_on_100_errors],
00895 "r round_mult_operations",
00896 boolean_str[on_off_flags.round_mult_operations]);
00897 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00898 "t alloc_autos_on_stack",
00899 boolean_str[on_off_flags.alloc_autos_on_stack],
00900 "u round_integer_divide",
00901 boolean_str[on_off_flags.round_integer_divide]);
00902 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00903 "u reciprical_divide",
00904 boolean_str[on_off_flags.reciprical_divide],
00905 "v save_all_vars",
00906 boolean_str[on_off_flags.save_all_vars]);
00907 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00908 "x allow_leading_uscore",
00909 boolean_str[on_off_flags.allow_leading_uscore],
00910 "A MPP_apprentice",
00911 boolean_str[on_off_flags.MPP_apprentice]);
00912 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00913 "B binary_output",
00914 boolean_str[on_off_flags.binary_output],
00915 "C shared_to_private_coer",
00916 boolean_str[on_off_flags.shared_to_private_coer]);
00917 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00918 "I implicit_none",
00919 boolean_str[on_off_flags.implicit_none],
00920 "P preprocess_only",
00921 boolean_str[on_off_flags.preprocess_only]);
00922 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00923 "Q allow_leading_uscore",
00924 boolean_str[on_off_flags.allow_leading_uscore],
00925 "R recursive",
00926 boolean_str[on_off_flags.recursive]);
00927 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00928 "S assembly_output",
00929 boolean_str[on_off_flags.assembly_output],
00930 "U upper_case_names",
00931 boolean_str[on_off_flags.upper_case_names]);
00932 fprintf(debug_file, " %-26s = %-2s %-26s = %-2s\n",
00933 "X atexpert",
00934 boolean_str[on_off_flags.atexpert],
00935 "Z save_dot_i",
00936 boolean_str[on_off_flags.save_dot_i]);
00937
00938 fprintf(debug_file, "\n%s Optimization Flags (-O)%s\n\n",
00939 " ------------------------- ",
00940 " ------------------------- ");
00941
00942 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s\n",
00943 "aggress", boolean_str[opt_flags.aggress],
00944 "bottom_load", boolean_str[opt_flags.bottom_load]);
00945
00946 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2d\n",
00947 "fusion", boolean_str[opt_flags.fusion],
00948 "ieeeconform", boolean_str[opt_flags.ieeeconform],
00949 "inline_lvl", opt_flags.inline_lvl);
00950
00951 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
00952 "jump", boolean_str[opt_flags.jump],
00953 "loopalign", boolean_str[opt_flags.loopalign],
00954 "mark", boolean_str[opt_flags.mark]);
00955
00956 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
00957 "modinline", boolean_str[opt_flags.modinline],
00958 "msgs", boolean_str[opt_flags.msgs],
00959 "neg_msgs", boolean_str[opt_flags.neg_msgs]);
00960
00961 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
00962 "nointerchange", boolean_str[opt_flags.nointerchange],
00963 "overindex", boolean_str[opt_flags.over_index],
00964 "pattern", boolean_str[opt_flags.pattern]);
00965
00966 fprintf(debug_file, " %-17s = %-2d\n",
00967 "pipeline", opt_flags.pipeline_lvl);
00968
00969 fprintf(debug_file, " %-17s = %-2s %-18s = %-2d %-18s = %-2d\n",
00970 "recurrence", boolean_str[opt_flags.recurrence],
00971 "scalar", opt_flags.scalar_lvl,
00972 "split", opt_flags.split_lvl);
00973
00974 fprintf(debug_file, " %-17s = %-2d %-18s = %-2d %-18s = %-2s\n",
00975 "support_lvl", opt_flags.support_lvl,
00976 "task", opt_flags.task_lvl,
00977 "taskinner", boolean_str[opt_flags.taskinner]);
00978
00979 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2d\n",
00980 "threshold", boolean_str[opt_flags.threshold],
00981 "vsearch", boolean_str[opt_flags.vsearch],
00982 "unroll", opt_flags.unroll_lvl);
00983
00984 fprintf(debug_file, " %-17s = %-2d %-18s = %-2s %-18s = %-2s\n",
00985 "vector", opt_flags.vector_lvl,
00986 "vsearch", boolean_str[opt_flags.vsearch],
00987 "zeroinc", boolean_str[opt_flags.zeroinc]);
00988
00989
00990 fprintf(debug_file, "\n%s Disregard Flags (-x)%s\n\n",
00991 " -------------------------- ",
00992 " -------------------------- ");
00993
00994 fprintf(debug_file, " ");
00995
00996
00997
00998 for (dir_idx = 1; (dir_idx < (Tok_Dir_End - Tok_Dir_Start -1)); dir_idx++) {
00999 fprintf(debug_file, "%-20s = %-2s ", directive_str[dir_idx],
01000 boolean_str[disregard_directive[dir_idx]]);
01001
01002 if ((dir_idx%3) == 0) {
01003 fprintf(debug_file, "\n ");
01004 }
01005 }
01006
01007 fprintf(debug_file, "\n\n%s Dump Flags (-u)%s\n\n",
01008 " ----------------------------- ",
01009 " ----------------------------- ");
01010
01011 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01012 "abort_ansi", boolean_str[dump_flags.abort_on_ansi],
01013 "no_dim_pad", boolean_str[dump_flags.no_dimension_padding],
01014 "no_mod_output", boolean_str[dump_flags.no_module_output]);
01015
01016 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s\n",
01017 "bd", boolean_str[dump_flags.bd_tbl],
01018 "blk", boolean_str[dump_flags.blk_stk]);
01019
01020 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01021 "cmd", boolean_str[dump_flags.cmd_line_tbls],
01022 "cn", boolean_str[dump_flags.cn_tbl],
01023 "defines", boolean_str[dump_flags.defines]);
01024
01025 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01026 "fortran", boolean_str[dump_flags.fort_out],
01027 "fp", boolean_str[dump_flags.fp_tbl],
01028 "ftrace", boolean_str[dump_flags.ftrace_info]);
01029
01030 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01031 "gl", boolean_str[dump_flags.gl_tbl],
01032 "intrin", boolean_str[dump_flags.intrin_tbl],
01033 "ir1", boolean_str[dump_flags.ir1_tbl]);
01034
01035 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01036 "ir2", boolean_str[dump_flags.ir2_tbl],
01037 "ir3", boolean_str[dump_flags.ir3_tbl],
01038 "ir4", boolean_str[dump_flags.ir4_tbl]);
01039
01040 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01041 "mem_report", boolean_str[dump_flags.mem_report],
01042 "mtrace", boolean_str[dump_flags.mtrace_info],
01043 "names", boolean_str[dump_flags.name_tbls]);
01044
01045 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01046 "pdg", boolean_str[dump_flags.pdgcs],
01047 "pdt", boolean_str[dump_flags.pdt_dump],
01048 "sb", boolean_str[dump_flags.sb_tbl]);
01049
01050 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01051 "scp", boolean_str[dump_flags.scp_tbl],
01052 "src", boolean_str[dump_flags.src_dmp],
01053 "stderr", boolean_str[dump_flags.std_err]);
01054
01055 fprintf(debug_file, " %-17s = %-2s %-18s = %-2s %-18s = %-2s\n",
01056 "stmt", boolean_str[dump_flags.stmt_dmp],
01057 "sytb", boolean_str[dump_flags.sytb],
01058 "typ", boolean_str[dump_flags.typ_tbl]);
01059
01060 fprintf(debug_file, "\n\n%s Message Options %s \n\n",
01061 " ----------------------------- ",
01062 " ----------------------------- ");
01063
01064 first = TRUE;
01065
01066 for (i = 0; i < MAX_MSG_SIZE; ++i) {
01067
01068 if (message_suppress_tbl[i] != 0) {
01069
01070 for (j = i * HOST_BITS_PER_WORD; j < (i+1) * HOST_BITS_PER_WORD; ++j) {
01071
01072 if (GET_MESSAGE_TBL(message_suppress_tbl, j)) {
01073
01074 if (!first) {
01075 first = FALSE;
01076 fprintf(debug_file, ",");
01077 }
01078 fprintf(debug_file, " %d", j);
01079 }
01080 }
01081 }
01082
01083 if (message_warning_tbl[i] != 0) {
01084
01085 for (j = i * HOST_BITS_PER_WORD; j < (i+1) * HOST_BITS_PER_WORD; ++j) {
01086
01087 if (GET_MESSAGE_TBL(message_warning_tbl, j)) {
01088
01089 if (!first) {
01090 first = FALSE;
01091 fprintf(debug_file, ",");
01092 }
01093 fprintf(debug_file, " W%d", j);
01094 }
01095 }
01096 }
01097
01098 if (message_error_tbl[i] != 0) {
01099
01100 for (j = i * HOST_BITS_PER_WORD; j < (i+1) * HOST_BITS_PER_WORD; ++j) {
01101
01102 if (GET_MESSAGE_TBL(message_error_tbl, j)) {
01103
01104 if (!first) {
01105 first = FALSE;
01106 fprintf(debug_file, ",");
01107 }
01108 fprintf(debug_file, " E%d", j);
01109 }
01110 }
01111 }
01112 }
01113
01114 putc ('\n', debug_file);
01115
01116 putc ('\n', debug_file);
01117 fflush (debug_file);
01118 return;
01119
01120 }
01121
01122
01123
01124
01125
01126
01127
01128
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140 void print_sytb (int scp_idx,
01141 boolean print_all_scps,
01142 boolean dump_all)
01143
01144 {
01145 int al_idx;
01146 char header[60];
01147 int ln_idx;
01148 int save_scp_idx;
01149
01150
01151 PROCESS_SIBLING:
01152
01153 if (scp_idx == INTRINSIC_SCP_IDX) {
01154 print_tbl_header("Intrinsic Symbol Table Dump");
01155 }
01156 else if (SCP_ATTR_IDX(scp_idx) != NULL_IDX) {
01157 header[0] = '\0';
01158 strcat(header, AT_OBJ_NAME_PTR(SCP_ATTR_IDX(scp_idx)));
01159 print_tbl_header(strcat(header, " Symbol Table Dump"));
01160 }
01161 else {
01162 print_tbl_header("Unnamed Symbol Table Dump");
01163 }
01164
01165 for (ln_idx = SCP_LN_FW_IDX(scp_idx)+1; ln_idx < SCP_LN_LW_IDX(scp_idx);
01166 ln_idx++) {
01167 fprintf(debug_file, "****************************************"
01168 "****************************************\n");
01169 dump_ln_ntry(debug_file, ln_idx, dump_all);
01170 }
01171
01172 al_idx = SCP_ATTR_LIST(scp_idx);
01173
01174 while (al_idx != NULL_IDX) {
01175 fprintf(debug_file, "****************************************"
01176 "****************************************\n");
01177 dump_at_ntry(debug_file, AL_ATTR_IDX(al_idx), dump_all);
01178 al_idx = AL_NEXT_IDX(al_idx);
01179 }
01180
01181 fprintf(debug_file, "****************************************"
01182 "****************************************\n");
01183
01184 if (print_all_scps) {
01185
01186 if (SCP_FIRST_CHILD_IDX(scp_idx) != NULL_IDX) {
01187 save_scp_idx = scp_idx;
01188 scp_idx = SCP_FIRST_CHILD_IDX(scp_idx);
01189 print_sytb(scp_idx, TRUE, TRUE);
01190 scp_idx = save_scp_idx;
01191 }
01192
01193 if (SCP_SIBLING_IDX(scp_idx) != NULL_IDX) {
01194 scp_idx = SCP_SIBLING_IDX(scp_idx);
01195 goto PROCESS_SIBLING;
01196 }
01197 }
01198
01199 return;
01200
01201 }
01202
01203
01204
01205
01206
01207
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218
01219 void print_compressed_sytb(int ln_start,
01220 int ln_end)
01221 {
01222 int ln_idx;
01223
01224 print_tbl_header("Compressed Symbol Table");
01225
01226 for (ln_idx = ln_start; ln_idx <= ln_end; ln_idx++) {
01227 dump_ln_ntry(debug_file, ln_idx, TRUE);
01228 }
01229
01230 putc ('\n', debug_file);
01231 fflush (debug_file);
01232
01233 return;
01234
01235 }
01236
01237
01238
01239
01240
01241
01242
01243
01244
01245
01246
01247
01248
01249
01250
01251
01252
01253
01254
01255
01256
01257
01258
01259
01260
01261
01262 void print_al (int al_idx)
01263
01264 {
01265 if (al_idx <= attr_list_tbl_idx) {
01266 dump_al_ntry(stderr, al_idx);
01267 }
01268 else {
01269 fprintf(stderr, "\n*FE90-ERROR* Invalid Attribute List Table index.\n");
01270 }
01271
01272 return;
01273
01274 }
01275
01276
01277
01278
01279
01280
01281
01282 void print_at(int at_idx)
01283
01284 {
01285
01286 if (at_idx <= attr_tbl_idx) {
01287 dump_at_ntry(stderr, at_idx, FALSE);
01288 }
01289 else {
01290 fprintf(stderr, "\n*FE90-ERROR* Invalid Attribute Table index.\n");
01291 }
01292
01293 return;
01294
01295 }
01296
01297 #ifdef KEY
01298
01299
01300
01301
01302 void print_at_table(FILE *file)
01303 {
01304 init_debug_file();
01305 dump_trace_info (debug_file, PU_Start, NULL, "print_at_all");
01306 for (int i = 0; i < attr_tbl_idx; i += 1) {
01307 dump_at_ntry(debug_file, i, TRUE);
01308 }
01309 }
01310 #endif
01311
01312
01313
01314
01315
01316
01317
01318 void print_at_all(int at_idx)
01319
01320 {
01321 if (at_idx <= attr_tbl_idx) {
01322 dump_at_ntry(stderr, at_idx, TRUE);
01323 }
01324 else {
01325 fprintf(stderr, "\n*FE90-ERROR* Invalid Attribute Table index.\n");
01326 }
01327
01328 return;
01329 }
01330
01331
01332
01333
01334
01335
01336
01337 void print_bd (int bd_idx)
01338
01339 {
01340 if (bd_idx <= bounds_tbl_idx) {
01341 dump_bd_ntry(stderr, bd_idx);
01342 }
01343 else {
01344 fprintf(stderr, "\n*FE90-ERROR* Invalid bounds table index.\n");
01345 }
01346
01347 return;
01348
01349 }
01350
01351
01352
01353
01354
01355
01356
01357 void print_blk (int blk_idx)
01358
01359 {
01360 if (blk_idx <= blk_stk_idx) {
01361 dump_blk_ntry(stderr, blk_idx);
01362 }
01363 else {
01364 fprintf(stderr, "\n*FE90-ERROR* Invalid block stack index.\n");
01365 }
01366
01367 return;
01368
01369 }
01370
01371
01372
01373
01374
01375
01376
01377 void print_cn (int cn_idx)
01378
01379 {
01380 if (cn_idx <= const_tbl_idx) {
01381 dump_cn_ntry(stderr, cn_idx);
01382 }
01383 else {
01384 fprintf(stderr, "\n*FE90-ERROR* Invalid constant table index.\n");
01385 }
01386
01387 return;
01388
01389 }
01390
01391
01392
01393
01394
01395
01396
01397 void print_eq (int eq_idx)
01398
01399 {
01400
01401 if (eq_idx <= equiv_tbl_idx) {
01402 dump_eq_ntry(stderr, eq_idx);
01403 }
01404 else {
01405 fprintf(stderr, "\n*FE90-ERROR* Invalid equivalence table index.\n");
01406 }
01407
01408 return;
01409
01410 }
01411
01412
01413
01414
01415
01416
01417
01418 void print_fp (int fp_idx)
01419
01420 {
01421 if (fp_idx <= file_path_tbl_idx) {
01422 dump_fp_ntry(stderr, fp_idx, FALSE);
01423 }
01424 else {
01425 fprintf(stderr, "\n*FE90-ERROR* Invalid file path table index.\n");
01426 }
01427
01428 return;
01429
01430 }
01431
01432
01433
01434
01435
01436
01437
01438 void print_il (int il_idx)
01439
01440 {
01441 if (il_idx <= ir_list_tbl_idx) {
01442 dump_il_ntry(stderr, il_idx);
01443 }
01444 else {
01445 fprintf(stderr, "\n*FE90-ERROR* Invalid ir list table index %d.\n",
01446 il_idx);
01447 }
01448
01449 return;
01450 }
01451
01452
01453
01454
01455
01456
01457
01458 void print_ir (int ir_idx)
01459
01460 {
01461 if (ir_idx <= ir_tbl_idx) {
01462 dump_ir_ntry(stderr, ir_idx, 1);
01463 }
01464 else {
01465 fprintf(stderr, "\n*FE90-ERROR* Invalid ir table index.\n");
01466 }
01467
01468 return;
01469
01470 }
01471
01472
01473
01474
01475
01476
01477
01478 void print_ga (int ga_idx)
01479
01480 {
01481 if (ga_idx <= global_attr_tbl_idx) {
01482 dump_ga_ntry(stderr, ga_idx);
01483 }
01484 else {
01485 fprintf(stderr, "\n*FE90-ERROR* Invalid global attr table index.\n");
01486 }
01487
01488 return;
01489
01490 }
01491
01492
01493
01494
01495
01496
01497
01498 void print_gb (int gb_idx)
01499
01500 {
01501 if (gb_idx <= global_bounds_tbl_idx) {
01502 dump_gb_ntry(stderr, gb_idx);
01503 }
01504 else {
01505 fprintf(stderr, "\n*FE90-ERROR* Invalid global bounds table index.\n");
01506 }
01507
01508 return;
01509
01510 }
01511
01512
01513
01514
01515
01516
01517
01518 void print_gl (int gl_idx)
01519
01520 {
01521 if (gl_idx <= global_line_tbl_idx) {
01522 dump_gl_ntry(stderr, gl_idx);
01523 }
01524 else {
01525 fprintf(stderr, "\n*FE90-ERROR* Invalid global name table index.\n");
01526 }
01527
01528 return;
01529
01530 }
01531
01532
01533
01534
01535
01536
01537
01538 void print_gn (int gn_idx)
01539
01540 {
01541 if (gn_idx <= global_name_tbl_idx) {
01542 dump_gn_ntry(stderr, gn_idx);
01543 }
01544 else {
01545 fprintf(stderr, "\n*FE90-ERROR* Invalid global name table index.\n");
01546 }
01547
01548 return;
01549
01550 }
01551
01552
01553
01554
01555
01556
01557
01558 void print_gt (int gt_idx)
01559
01560 {
01561 if (gt_idx <= global_type_tbl_idx) {
01562 dump_gt_ntry(stderr, gt_idx);
01563 }
01564 else {
01565 fprintf(stderr, "\n*FE90-ERROR* Invalid global type table index.\n");
01566 }
01567
01568 return;
01569
01570 }
01571
01572
01573
01574
01575
01576
01577
01578 void print_hn (int hn_idx)
01579 {
01580
01581 if (hn_idx <= hidden_name_tbl_idx) {
01582 dump_hn_ntry(stderr, hn_idx, FALSE);
01583 }
01584 else {
01585 fprintf(stderr, "\n*FE90-ERROR* Invalid hidden name table index.\n");
01586 }
01587
01588 return;
01589
01590 }
01591
01592
01593
01594
01595
01596
01597
01598 void print_ln (int ln_idx)
01599 {
01600 if (ln_idx <= loc_name_tbl_idx) {
01601 dump_ln_ntry(stderr, ln_idx, FALSE);
01602 }
01603 else {
01604 fprintf(stderr, "\n*FE90-ERROR* Invalid local name table index.\n");
01605 }
01606
01607 return;
01608
01609 }
01610
01611
01612
01613
01614
01615
01616
01617 void print_lnr (int ln_idx,
01618 int end_idx)
01619 {
01620 while (ln_idx <= end_idx) {
01621
01622 if (ln_idx <= loc_name_tbl_idx) {
01623 dump_ln_ntry(stderr, ln_idx, FALSE);
01624 }
01625 else {
01626 fprintf(stderr, "\n*FE90-ERROR* Invalid local name table index.\n");
01627 }
01628 ++ln_idx;
01629 }
01630
01631 return;
01632
01633 }
01634
01635
01636
01637
01638
01639
01640
01641 void print_ml (int ml_idx)
01642
01643 {
01644 if (ml_idx <= mod_link_tbl_idx) {
01645 dump_ml_ntry(stderr, ml_idx);
01646 }
01647 else {
01648 fprintf(stderr, "\n*FE90-ERROR* Invalid module link table index.\n");
01649 }
01650
01651 return;
01652
01653 }
01654
01655
01656
01657
01658
01659
01660
01661 void print_ro (int ro_idx)
01662
01663 {
01664 if (ro_idx <= rename_only_tbl_idx) {
01665 dump_ro_ntry(stderr, ro_idx);
01666 }
01667 else {
01668 fprintf(stderr, "\n*FE90-ERROR* Invalid rename only table index.\n");
01669 }
01670
01671 return;
01672
01673 }
01674
01675
01676
01677
01678
01679
01680
01681 void print_sb (int sb_idx)
01682
01683 {
01684 if (sb_idx <= stor_blk_tbl_idx) {
01685 dump_sb_ntry(stderr, sb_idx);
01686 }
01687 else {
01688 fprintf(stderr, "\n*FE90-ERROR* Invalid Storage Block Table index.\n");
01689 }
01690
01691 return;
01692
01693 }
01694
01695
01696
01697
01698
01699
01700
01701 void print_scp(int scp_idx,
01702 boolean print_impl_tbl)
01703
01704 {
01705 if (scp_idx <= scp_tbl_idx) {
01706 dump_scp_ntry(stderr, scp_idx, 0, print_impl_tbl, FALSE);
01707 }
01708 else {
01709 fprintf(stderr, "\n*FE90-ERROR* Invalid scope table index.\n");
01710 }
01711
01712 return;
01713
01714 }
01715
01716
01717
01718
01719
01720
01721
01722 void print_sh (int stmt_idx)
01723
01724 {
01725 int save_curr_stmt_sh_idx;
01726
01727
01728 if (stmt_idx <= sh_tbl_idx) {
01729 save_curr_stmt_sh_idx = curr_stmt_sh_idx;
01730 curr_stmt_sh_idx = stmt_idx;
01731
01732 dump_stmt_ntry(stderr, TRUE);
01733
01734 curr_stmt_sh_idx = save_curr_stmt_sh_idx;
01735 }
01736 else {
01737 fprintf(stderr, "\n*FE90-ERROR* Invalid statement header index.\n");
01738 }
01739
01740 return;
01741
01742 }
01743
01744
01745
01746
01747
01748
01749
01750 void print_sn (int sn_idx)
01751
01752 {
01753 dump_sn_ntry(stderr, sn_idx);
01754
01755 return;
01756
01757 }
01758
01759
01760
01761
01762
01763
01764
01765 void print_typ (int type_idx)
01766
01767 {
01768 dump_typ_ntry(stderr, type_idx);
01769
01770 return;
01771
01772 }
01773
01774
01775
01776
01777
01778
01779
01780
01781
01782
01783
01784
01785
01786
01787
01788
01789
01790
01791
01792
01793
01794 void print_dv (int_dope_type *dv,
01795 boolean dump_it)
01796
01797 {
01798 dump_dv(stderr, dv, dump_it);
01799
01800 return;
01801
01802 }
01803
01804
01805
01806
01807
01808
01809
01810
01811
01812
01813
01814
01815
01816
01817
01818
01819
01820
01821 void print_ln_by_name (void)
01822
01823 {
01824 char name_string[MAX_ID_LEN + 1];
01825 int ln_tbl_idx;
01826
01827
01828 printf("Enter LOCAL name->");
01829 #ifdef KEY
01830 fgets(name_string, MAX_ID_LEN, stdin);
01831 #else
01832 gets(name_string);
01833 #endif
01834 build_fake_token(name_string);
01835
01836 if (srch_sym_tbl(TOKEN_STR(fake_token), TOKEN_LEN(fake_token),
01837 &ln_tbl_idx) != NULL_IDX) {
01838 dump_ln_ntry(stderr, ln_tbl_idx, FALSE);
01839 }
01840 else {
01841 fprintf(stderr, "\n*FE90-ERROR* No such name in the current scope.");
01842 }
01843 return;
01844
01845 }
01846
01847
01848
01849
01850
01851
01852
01853
01854
01855
01856
01857
01858
01859
01860
01861
01862
01863
01864
01865
01866
01867
01868
01869
01870
01871 void print_at_by_name(void)
01872
01873 {
01874 int attr_idx;
01875 int ln_tbl_idx;
01876 char name_string[MAX_ID_LEN + 1];
01877 char reply;
01878
01879 printf("Entity name->");
01880 #ifdef KEY
01881 fgets(name_string, MAX_ID_LEN, stdin);
01882 #else
01883 gets(name_string);
01884 #endif
01885
01886
01887
01888 build_fake_token(name_string);
01889 attr_idx = srch_sym_tbl(TOKEN_STR(fake_token), TOKEN_LEN(fake_token),
01890 &ln_tbl_idx);
01891
01892 if (attr_idx != NULL_IDX) {
01893 dump_at_ntry(stderr, attr_idx, FALSE);
01894 }
01895 else {
01896 printf(
01897 "\n*POSSIBLE FE90-ERROR* No such entity name in the local scope.\n");
01898 printf("Search host scope? (y) ");
01899 reply = getchar();
01900
01901 if (reply == '\n' || reply == 'y') {
01902
01903 if (reply == 'y') {
01904 reply = getchar();
01905 }
01906 attr_idx = srch_host_sym_tbl(TOKEN_STR(fake_token),
01907 TOKEN_LEN(fake_token),
01908 &ln_tbl_idx,
01909 TRUE);
01910
01911 if (attr_idx != NULL_IDX) {
01912 dump_at_ntry(stderr, attr_idx, FALSE);
01913 }
01914 else {
01915 printf("\n*FE90-ERROR* No such entity name in the host either.\n");
01916 }
01917 }
01918 else {
01919 reply = getchar();
01920 }
01921 }
01922
01923 return;
01924
01925 }
01926
01927
01928
01929
01930
01931
01932
01933
01934
01935
01936
01937
01938
01939
01940
01941
01942
01943
01944
01945 void print_sb_by_name (void)
01946
01947 {
01948 int sb_idx;
01949 char name_string[MAX_ID_LEN + 1];
01950
01951 printf("Enter common block or module name->");
01952 #ifdef KEY
01953 fgets(name_string, MAX_ID_LEN, stdin);
01954 #else
01955 gets(name_string);
01956 #endif
01957
01958 if (strlen(name_string) > 0) {
01959 build_fake_token(name_string);
01960 }
01961 else {
01962 build_fake_token("//");
01963 }
01964
01965 sb_idx = srch_stor_blk_tbl(TOKEN_STR(fake_token),
01966 TOKEN_LEN(fake_token),
01967 curr_scp_idx);
01968
01969 if (sb_idx != NULL_IDX) {
01970 dump_sb_ntry(stderr, sb_idx);
01971 }
01972 else {
01973 fprintf(stderr,"\n*FE90-ERROR* No such common block or module name.\n");
01974 }
01975
01976 return;
01977
01978 }
01979
01980
01981
01982
01983
01984
01985
01986
01987
01988
01989
01990
01991
01992
01993
01994
01995
01996 void print_al_list(FILE *out_file,
01997 int al_idx)
01998
01999 {
02000
02001 while (al_idx != NULL_IDX) {
02002 dump_al_ntry(out_file, al_idx);
02003 al_idx = AL_NEXT_IDX(al_idx);
02004 }
02005
02006 return;
02007
02008 }
02009
02010
02011
02012
02013
02014
02015
02016
02017
02018
02019
02020
02021
02022
02023
02024
02025
02026
02027
02028 void print_sn_list (int attr_idx)
02029
02030 {
02031 if (attr_idx > attr_tbl_idx) {
02032 fprintf(stderr,
02033 "\n*FE90-ERROR* Attribute entry index [%d] is too large.\n",
02034 attr_idx);
02035 return;
02036 }
02037
02038
02039
02040
02041
02042
02043 if (AT_OBJ_CLASS(attr_idx) == Pgm_Unit &&
02044 Pgm_Unknown < ATP_PGM_UNIT(attr_idx) < Program) {
02045 loop_thru_sn_ntries(stderr, attr_idx, FALSE);
02046 }
02047 else if (AT_OBJ_CLASS(attr_idx) == Interface ||
02048 AT_OBJ_CLASS(attr_idx) == Namelist_Grp ||
02049 AT_OBJ_CLASS(attr_idx) == Derived_Type) {
02050 chain_thru_sn_ntries(stderr, attr_idx, FALSE);
02051 }
02052 else {
02053 fprintf(stderr,
02054 "\n*FE90-ERROR* %s can not have Secondary Name table entries.\n",
02055 &name_pool[AT_NAME_IDX(attr_idx)].name_char);
02056 }
02057 return;
02058
02059 }
02060
02061
02062
02063
02064
02065
02066
02067
02068
02069
02070
02071
02072
02073
02074
02075
02076
02077 void print_fp_includes (void)
02078
02079 {
02080 int fp_idx;
02081
02082 fp_idx = include_path_idx;
02083
02084 while (fp_idx != NULL_IDX) {
02085 fprintf(debug_file, "%4s%-s\n", " ", FP_NAME_PTR(fp_idx));
02086
02087 fp_idx = FP_NEXT_FILE_IDX(fp_idx);
02088 }
02089
02090 fflush(debug_file);
02091
02092 return;
02093
02094 }
02095
02096
02097
02098
02099
02100
02101
02102
02103
02104
02105
02106
02107
02108
02109
02110
02111
02112
02113
02114 void print_name(int idx)
02115 {
02116
02117 fprintf(stderr, "%d is %s\n", idx, AT_OBJ_NAME_PTR(idx));
02118
02119 return;
02120
02121 }
02122
02123
02124
02125
02126
02127
02128
02129
02130
02131
02132
02133
02134
02135
02136
02137
02138
02139
02140
02141
02142
02143
02144 static void loop_thru_sn_ntries (FILE *out_file,
02145 int attr_idx,
02146 boolean output_attr)
02147
02148 {
02149 int count;
02150 int first_idx;
02151 int i;
02152
02153
02154 if (AT_OBJ_CLASS(attr_idx) == Pgm_Unit) {
02155 first_idx = ATP_FIRST_IDX(attr_idx);
02156 count = ATP_NUM_DARGS(attr_idx);
02157
02158 if (first_idx == NULL_IDX) {
02159 fprintf(out_file, "\n %s\n",
02160 " ** No Dummy Arguments - ATP_FIRST_IDX = 0.");
02161 return;
02162 }
02163 }
02164 else {
02165 first_idx = ATP_FIRST_IDX(attr_idx);
02166 count = ATP_NUM_DARGS(attr_idx);
02167
02168 if (first_idx == NULL_IDX) {
02169 fprintf(out_file, "\n %s\n",
02170 " ** No Dummy Arguments - ATP_FIRST_IDX = 0.");
02171 return;
02172 }
02173 }
02174
02175 fprintf(out_file, "\n %s %s:\n\n",
02176 "Dummy Arguments for",
02177 &name_pool[AT_NAME_IDX(attr_idx)].name_char);
02178
02179 for (i = first_idx;
02180 i < (first_idx + count);
02181 i++) {
02182
02183 dump_sn_ntry(out_file, i);
02184
02185 if (output_attr) {
02186 putc('\n', out_file);
02187 dump_at_ntry(out_file, SN_ATTR_IDX(i), FALSE);
02188 }
02189 else if (AT_OBJ_CLASS(SN_ATTR_IDX(i)) == Data_Obj &&
02190 ATD_CLASS(SN_ATTR_IDX(i)) == Dummy_Argument) {
02191
02192 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
02193 "ATD_ARRAY_IDX", ATD_ARRAY_IDX(SN_ATTR_IDX(i)),
02194 "ATD_POINTER", boolean_str[ATD_POINTER(SN_ATTR_IDX(i))],
02195 "ATD_TYPE_IDX", ATD_TYPE_IDX(SN_ATTR_IDX(i)));
02196
02197 # ifdef _F_MINUS_MINUS
02198 fprintf(out_file, " %-16s= %-7d \n",
02199 "ATD_PE_ARRAY_IDX", ATD_PE_ARRAY_IDX(SN_ATTR_IDX(i)));
02200 # endif
02201
02202
02203 putc('\n', out_file);
02204 }
02205 else if (AT_OBJ_CLASS(SN_ATTR_IDX(i)) == Pgm_Unit &&
02206 ATP_PROC(SN_ATTR_IDX(i)) == Dummy_Proc) {
02207 fprintf(out_file, " %-25s\n", "Dummy_Proc");
02208 putc('\n', out_file);
02209 }
02210 else {
02211 putc('\n', out_file);
02212 }
02213 }
02214
02215 fflush(out_file);
02216
02217 return;
02218
02219 }
02220
02221
02222
02223
02224
02225
02226
02227
02228
02229
02230
02231
02232
02233
02234
02235
02236
02237
02238
02239
02240
02241
02242 static void chain_thru_sn_ntries (FILE *out_file,
02243 int attr_idx,
02244 boolean output_attr)
02245
02246 {
02247 char conv_str[80];
02248 int first_idx;
02249 int i;
02250 int idx;
02251 char str[80];
02252
02253
02254
02255 if (AT_OBJ_CLASS(attr_idx) == Derived_Type) {
02256 first_idx = ATT_FIRST_CPNT_IDX(attr_idx);
02257
02258 if (first_idx == NULL_IDX) {
02259 fprintf(out_file, "\n %s\n",
02260 "** No Secondary Name table entries - ATT_FIRST_CPNT_IDX = 0");
02261 return;
02262 }
02263 fprintf(out_file, "\n %s %s:\n\n",
02264 "Component entries for",
02265 &name_pool[AT_NAME_IDX(attr_idx)].name_char);
02266 }
02267 else if (AT_OBJ_CLASS(attr_idx) == Interface) {
02268 first_idx = ATI_FIRST_SPECIFIC_IDX(attr_idx);
02269
02270 if (first_idx == NULL_IDX) {
02271 fprintf(out_file, "\n %s\n",
02272 "** No Secondary Name table entries - ATI_FIRST_SPECIFIC_IDX = 0");
02273 return;
02274 }
02275 fprintf(out_file, "\n %s %s:\n\n",
02276 "Interface bodies for",
02277 &name_pool[AT_NAME_IDX(attr_idx)].name_char);
02278 }
02279 else if (AT_OBJ_CLASS(attr_idx) == Namelist_Grp) {
02280 first_idx = ATN_FIRST_NAMELIST_IDX(attr_idx);
02281
02282 if (first_idx == NULL_IDX) {
02283 fprintf(out_file, "\n %s\n",
02284 " ** No Secondary Name table entries - ATN_FIRST_NAMELIST_IDX = 0");
02285 return;
02286 }
02287 fprintf(out_file, "\n %s %s:\n\n",
02288 "Namelist objects for",
02289 &name_pool[AT_NAME_IDX(attr_idx)].name_char);
02290 }
02291 else {
02292 fprintf(out_file, "\n %s %s:\n\n",
02293 "Invalid attribute entry ",
02294 &name_pool[AT_NAME_IDX(attr_idx)].name_char);
02295 return;
02296 }
02297
02298 for (i = first_idx; i != NULL_IDX; i = SN_SIBLING_LINK(i)) {
02299 dump_sn_ntry(out_file, i);
02300
02301 if (output_attr) {
02302 putc('\n', out_file);
02303 dump_at_ntry(out_file, SN_ATTR_IDX(i), FALSE);
02304
02305 }
02306 else if (AT_OBJ_CLASS(attr_idx) == Interface &&
02307 AT_OBJ_CLASS(SN_ATTR_IDX(i)) == Pgm_Unit) {
02308
02309 fprintf(out_file, " %-25s %-16s= %-7d %-16s= %-8d\n",
02310 atp_pgm_unit_str[ATP_PGM_UNIT(SN_ATTR_IDX(i))],
02311 "ATP_FIRST_IDX", ATP_FIRST_IDX(SN_ATTR_IDX(i)),
02312 "ATP_NUM_DARGS", ATP_NUM_DARGS(SN_ATTR_IDX(i)));
02313
02314 if (ATP_PGM_UNIT(SN_ATTR_IDX(i)) == Function) {
02315 idx = ATP_RSLT_IDX(SN_ATTR_IDX(i));
02316 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
02317 "ATD_ARRAY_IDX", ATD_ARRAY_IDX(idx),
02318 "ATD_POINTER", boolean_str[ATD_POINTER(idx)],
02319 "ATD_TYPE_IDX", ATD_TYPE_IDX(idx));
02320 }
02321
02322 if (ATP_FIRST_IDX(SN_ATTR_IDX(i)) != NULL_IDX) {
02323 loop_thru_sn_ntries(out_file, SN_ATTR_IDX(i), FALSE);
02324 }
02325
02326 putc('\n', out_file);
02327 }
02328 else if (AT_OBJ_CLASS(SN_ATTR_IDX(i)) == Data_Obj &&
02329 ATD_CLASS(SN_ATTR_IDX(i)) == Struct_Component) {
02330
02331 if (ATD_OFFSET_FLD(SN_ATTR_IDX(i)) == CN_Tbl_Idx ||
02332 ATD_OFFSET_FLD(SN_ATTR_IDX(i)) == NO_Tbl_Idx) {
02333 sprintf(str, "(%10s)", convert_to_string(
02334 &CN_CONST(ATD_CPNT_OFFSET_IDX(SN_ATTR_IDX(i))),
02335 CN_TYPE_IDX(ATD_CPNT_OFFSET_IDX(SN_ATTR_IDX(i))),
02336 conv_str));
02337 }
02338 else if (ATD_OFFSET_FLD(SN_ATTR_IDX(i)) == AT_Tbl_Idx) {
02339 sprintf(str, "(%10s)",
02340 AT_OBJ_NAME_PTR(ATD_CPNT_OFFSET_IDX(SN_ATTR_IDX(i))));
02341 }
02342 else {
02343 sprintf(str,"%12s", " ");
02344 }
02345
02346
02347 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-7s\n",
02348 "ATD_ALIGNMENT", align_str[ATD_ALIGNMENT(SN_ATTR_IDX(i))],
02349 "ATD_ARRAY_IDX", ATD_ARRAY_IDX(SN_ATTR_IDX(i)),
02350 "AT_DCL_ERR", boolean_str[AT_DCL_ERR(SN_ATTR_IDX(i))]);
02351
02352 print_fld_idx(out_file, "ATD_CPNT_OFFSET_",
02353 ATD_OFFSET_FLD(SN_ATTR_IDX(i)),
02354 ATD_CPNT_OFFSET_IDX(SN_ATTR_IDX(i)));
02355
02356 fprintf(out_file, " %-16s= %-7s %-16s= %-7s \n",
02357 "ATD_IM_A_DOPE", boolean_str[ATD_IM_A_DOPE(SN_ATTR_IDX(i))],
02358 "ATD_POINTER", boolean_str[ATD_IM_A_DOPE(SN_ATTR_IDX(i))]);
02359
02360 fprintf(out_file, " %-16s= %-7d %-s\n",
02361 "ATD_TYPE_IDX", ATD_TYPE_IDX(SN_ATTR_IDX(i)),
02362 print_type_f(ATD_TYPE_IDX(SN_ATTR_IDX(i))));
02363
02364 if (ATD_CPNT_INIT_IDX(SN_ATTR_IDX(i)) != NULL_IDX) {
02365 print_fld_idx(out_file, "ATD_CPNT_INIT_ID",
02366 (fld_type) ATD_FLD(SN_ATTR_IDX(i)),
02367 ATD_CPNT_INIT_IDX(SN_ATTR_IDX(i)));
02368
02369 if (ATD_FLD(SN_ATTR_IDX(i)) == IR_Tbl_Idx) {
02370 dump_ir_ntry(out_file, ATD_CPNT_INIT_IDX(SN_ATTR_IDX(i)), 5);
02371 }
02372 else if (ATD_FLD(SN_ATTR_IDX(i)) == CN_Tbl_Idx) {
02373 dump_cn_ntry(out_file, ATD_CPNT_INIT_IDX(SN_ATTR_IDX(i)));
02374 }
02375 }
02376
02377
02378 putc('\n', out_file);
02379 }
02380 }
02381
02382 fflush(out_file);
02383
02384 return;
02385
02386 }
02387
02388
02389
02390
02391
02392
02393
02394
02395
02396
02397
02398
02399
02400
02401
02402
02403
02404
02405
02406
02407
02408
02409
02410
02411 static void build_fake_token (char *name_string)
02412
02413 {
02414 int i;
02415 int len;
02416
02417
02418
02419
02420
02421 len = strlen(name_string);
02422 CREATE_ID(TOKEN_ID(fake_token), name_string, len);
02423
02424 TOKEN_LEN(fake_token) = len;
02425
02426 for (i = 0; i < len; i++) {
02427 TOKEN_STR(fake_token)[i] = toupper(TOKEN_STR(fake_token)[i]);
02428 }
02429
02430 return;
02431
02432 }
02433
02434
02435
02436
02437
02438
02439
02440
02441
02442
02443
02444
02445
02446
02447
02448
02449
02450
02451 void dump_func_trace_info (trace_type trace,
02452 char *func_name,
02453 char *info)
02454 {
02455
02456 if (trace_file == NULL) {
02457 trace_file = fopen (trace_file_name, "w");
02458
02459 if (trace_file == NULL) {
02460 PRINTMSG(1, 17, Error, 0, trace_file_name);
02461 exit_compiler(RC_USER_ERROR);
02462 }
02463
02464 fprintf (trace_file, "\nTRACE DUMP OF PROGRAM %s:\n\n", src_file);
02465 }
02466
02467 dump_trace_info(trace_file, trace, func_name, info);
02468
02469 return;
02470
02471 }
02472
02473
02474
02475
02476
02477
02478
02479
02480
02481
02482
02483
02484
02485
02486
02487
02488
02489
02490
02491 static void dump_trace_info (FILE *out_file,
02492 trace_type trace,
02493 char *func_name,
02494 char *info)
02495 {
02496
02497 int idx;
02498 char *indent_str;
02499
02500
02501 switch (trace) {
02502
02503 case Func_Entry:
02504 case Func_Exit:
02505 if (trace == Func_Exit) {
02506 trace_indent -= trace_indent_len;
02507
02508 if (trace_indent < 0) {
02509 trace_indent = 0;
02510 }
02511 }
02512
02513 indent_str = (char *) malloc (trace_indent+1);
02514
02515 for (idx = 0; idx < trace_indent; idx++) {
02516 indent_str[idx] = (idx % trace_indent_len == 0) ? '|' : BLANK;
02517 }
02518
02519 indent_str[idx] = NULL_CHAR;
02520
02521 if (trace == Func_Entry) {
02522 fprintf (out_file, "%sIN %s", indent_str, func_name);
02523 trace_indent += trace_indent_len;
02524 }
02525 else {
02526 fprintf (out_file, "%sOUT %s", indent_str, func_name);
02527 }
02528 if (info == NULL) {
02529 putc (NEWLINE, out_file);
02530 }
02531 else {
02532 fprintf (out_file, " (%s)\n", info);
02533 }
02534
02535 free (indent_str);
02536 indent_str = NULL;
02537 break;
02538
02539 case Syntax_Pass:
02540 fprintf(out_file, "\n> > > > > > > > > > B e g i n S y n t a x "
02541 " P a s s < < < < < < < < < <\n\n");
02542 trace_indent = 0;
02543 break;
02544
02545 case Semantics_Pass:
02546 fprintf(out_file, "\n> > > > > > > > B e g i n S e m a n t i c s"
02547 " P a s s < < < < < < < <\n\n");
02548 trace_indent = 0;
02549 break;
02550
02551 case PU_Start:
02552 if (info == NULL) {
02553 fprintf (out_file, "\n\n# NEW PROGRAM UNIT ########################"
02554 "####################################\n");
02555 }
02556 else {
02557 fprintf (out_file, "\n\n# NEW PROGRAM UNIT # %s ##################"
02558 "#######\n",
02559 AT_OBJ_NAME_PTR(SCP_ATTR_IDX(curr_scp_idx)));
02560
02561 if (SCP_IN_ERR(curr_scp_idx)) {
02562 fprintf (out_file,
02563 "# # # SCP entry is marked in error # # #\n");
02564 }
02565 }
02566
02567 break;
02568
02569 case Stmt_Start:
02570 if (info == NULL) {
02571 fprintf (out_file, "\n- NEW STMT ---------------------------"
02572 "-----------------------------------------\n");
02573 }
02574 else {
02575 fprintf (out_file, "\n- %s%s - %d %s-------------------------"
02576 "-------------------------\n",
02577 (SH_COMPILER_GEN(curr_stmt_sh_idx)) ? "CG " : "",
02578 stmt_type_str[SH_STMT_TYPE(curr_stmt_sh_idx)],
02579 SH_GLB_LINE(curr_stmt_sh_idx),
02580 (SH_P2_SKIP_ME(curr_stmt_sh_idx)) ? "SKIP ME " :
02581 "--------");
02582
02583 if (SH_ERR_FLG(curr_stmt_sh_idx)) {
02584 fprintf (out_file,
02585 "\n* * * Stmt Header is marked in error * * *\n");
02586 }
02587 }
02588
02589 break;
02590
02591 }
02592
02593 return;
02594
02595 }
02596
02597
02598
02599
02600
02601
02602
02603
02604
02605
02606
02607
02608
02609
02610
02611
02612
02613
02614 void dump_mem_trace_info (trace_type trace,
02615 char *struct_name,
02616 void *new_struct_ptr,
02617 void *old_struct_ptr,
02618 long struct_bsize_or_num_used,
02619 int num_entries)
02620 {
02621 int idx;
02622 char *indent_str = NULL;
02623
02624
02625 if (trace_file == NULL) {
02626 trace_file = fopen (trace_file_name, "w");
02627
02628 if (trace_file == NULL) {
02629 PRINTMSG(1, 17, Error, 0, trace_file_name);
02630 exit_compiler(RC_USER_ERROR);
02631 }
02632
02633 fprintf (trace_file, "\nTRACE DUMP OF PROGRAM %s:\n\n", src_file);
02634 }
02635
02636 if (trace_indent > 0) {
02637 indent_str = (char *) malloc (trace_indent+1);
02638
02639 for (idx = 0; idx < trace_indent; idx++) {
02640 indent_str[idx] = (idx % trace_indent_len == 0) ? '|' : BLANK;
02641 }
02642
02643 indent_str[idx] = NULL_CHAR;
02644
02645 fprintf (trace_file, "%s", indent_str);
02646 }
02647
02648 switch (trace) {
02649 case Mem_Alloc:
02650 fprintf (trace_file, "ALLOC %s (%#o) BSIZE=%ld(%d ENTRIES)\n",
02651 struct_name, (uint) new_struct_ptr,
02652 struct_bsize_or_num_used, num_entries);
02653 break;
02654
02655 case Mem_Realloc:
02656 if (new_struct_ptr == old_struct_ptr) {
02657 fprintf (trace_file, "REALLOC %s (%#o) BSIZE=%ld(%d ENTRIES)\n",
02658 struct_name, (uint) new_struct_ptr,
02659 struct_bsize_or_num_used, num_entries);
02660 }
02661 else {
02662 fprintf (trace_file, "REALLOC/MOVE %s (%#o->%#o) "
02663 "BSIZE=%ld(%d ENTRIES)\n",
02664 struct_name, (uint) old_struct_ptr, (uint) new_struct_ptr,
02665 struct_bsize_or_num_used, num_entries);
02666 }
02667 break;
02668
02669 case Mem_Free:
02670 fprintf (trace_file, "FREE %s (%#o) (%d ENTRIES) "
02671 "(%ld USED ENTRIES)\n",
02672 struct_name,
02673 (uint) new_struct_ptr,
02674 num_entries,
02675 struct_bsize_or_num_used);
02676 break;
02677
02678 case Mem_Compress:
02679 fprintf (trace_file, "COMPRESS %s (%ld BEFORE ENTRIES) "
02680 "(%d AFTER ENTRIES)\n",
02681 struct_name,
02682 struct_bsize_or_num_used,
02683 num_entries);
02684 break;
02685 }
02686
02687 if (indent_str != NULL) {
02688 free (indent_str);
02689 indent_str = NULL;
02690 }
02691
02692 return;
02693
02694 }
02695
02696
02697
02698
02699
02700
02701
02702
02703
02704
02705
02706
02707
02708
02709
02710
02711 void print_mem_usage_report(char *name,
02712 int final_size,
02713 int largest_idx)
02714
02715 {
02716
02717 static boolean first_call = TRUE;
02718
02719 print_tbl_header("Memory Report");
02720
02721 if (first_call == TRUE) {
02722 first_call = FALSE;
02723
02724
02725
02726 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02727 "attr_list_tbl",
02728 "init size", attr_list_tbl_init_size,
02729 "increment", attr_list_tbl_inc,
02730 "num words", attr_list_tbl_num_wds);
02731 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02732 "attr_tbl",
02733 "init size", attr_tbl_init_size,
02734 "increment", attr_tbl_inc,
02735 "num words", attr_tbl_num_wds);
02736 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02737 "blk_stk",
02738 "init size", blk_stk_init_size,
02739 "increment", blk_stk_inc,
02740 "num words", blk_stk_num_wds);
02741 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02742 "bounds_tbl",
02743 "init size", bounds_tbl_init_size,
02744 "increment", bounds_tbl_inc,
02745 "num words", bounds_tbl_num_wds);
02746 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02747 "const_tbl",
02748 "init size", const_tbl_init_size,
02749 "increment", const_tbl_inc,
02750 "num words", const_tbl_num_wds);
02751 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02752 "const_pool",
02753 "init size", const_pool_init_size,
02754 "increment", const_pool_inc,
02755 "num words", const_pool_num_wds);
02756 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02757 "equiv_tbl",
02758 "init size", equiv_tbl_init_size,
02759 "increment", equiv_tbl_inc,
02760 "num words", equiv_tbl_num_wds);
02761 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02762 "file_path_tbl",
02763 "init size", file_path_tbl_init_size,
02764 "increment", file_path_tbl_inc,
02765 "num words", file_path_tbl_num_wds);
02766 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02767 "global_line_tbl",
02768 "init size", global_line_tbl_init_size,
02769 "increment", global_line_tbl_inc,
02770 "num words", global_line_tbl_num_wds);
02771 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02772 "global_name_tbl",
02773 "init size", global_name_tbl_init_size,
02774 "increment", global_name_tbl_inc,
02775 "num words", global_name_tbl_num_wds);
02776 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02777 "hidden_name_tbl",
02778 "init size", hidden_name_tbl_init_size,
02779 "increment", hidden_name_tbl_inc,
02780 "num words", hidden_name_tbl_num_wds);
02781 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02782 "ir_tbl",
02783 "init size", ir_tbl_init_size,
02784 "increment", ir_tbl_inc,
02785 "num words", ir_tbl_num_wds);
02786 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02787 "ir_list_tbl",
02788 "init size", ir_list_tbl_init_size,
02789 "increment", ir_list_tbl_inc,
02790 "num words", ir_list_tbl_num_wds);
02791 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02792 "loc_name_tbl",
02793 "init size", loc_name_tbl_init_size,
02794 "increment", loc_name_tbl_inc,
02795 "num words", loc_name_tbl_num_wds);
02796 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02797 "mod_link_tbl",
02798 "init size", mod_link_tbl_init_size,
02799 "increment", mod_link_tbl_inc,
02800 "num words", mod_link_tbl_num_wds);
02801 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02802 "name_pool",
02803 "init size", name_pool_init_size,
02804 "increment", name_pool_inc,
02805 "num words", name_pool_num_wds);
02806 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02807 "rename_only_tbl",
02808 "init size", rename_only_tbl_init_size,
02809 "increment", rename_only_tbl_inc,
02810 "num words", rename_only_tbl_num_wds);
02811 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02812 "scp_tbl",
02813 "init size", scp_tbl_init_size,
02814 "increment", scp_tbl_inc,
02815 "num words", scp_tbl_num_wds);
02816 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02817 "sec_name_tbl",
02818 "init size", sec_name_tbl_init_size,
02819 "increment", sec_name_tbl_inc,
02820 "num words", sec_name_tbl_num_wds);
02821 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02822 "sh_tbl",
02823 "init size", sh_tbl_init_size,
02824 "increment", sh_tbl_inc,
02825 "num words", sh_tbl_num_wds);
02826 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02827 "stor_blk_tbl",
02828 "init size", stor_blk_tbl_init_size,
02829 "increment", stor_blk_tbl_inc,
02830 "num words", stor_blk_tbl_num_wds);
02831 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02832 "str_pool",
02833 "init size", str_pool_init_size,
02834 "increment", str_pool_inc,
02835 "num words", str_pool_num_wds);
02836 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d %-9s= %-7d\n",
02837 "type_tbl",
02838 "init size", type_tbl_init_size,
02839 "increment", type_tbl_inc,
02840 "num words", type_tbl_num_wds);
02841 print_src_input_tbls();
02842 }
02843
02844
02845 fprintf (debug_file, "%-20s %-9s= %-8d %-9s= %-6d\n",
02846 name,
02847 "finalsize", final_size,
02848 "large idx", largest_idx);
02849
02850 fflush (debug_file);
02851 return;
02852
02853 }
02854
02855
02856
02857
02858
02859
02860
02861
02862
02863
02864
02865
02866
02867
02868
02869
02870
02871
02872 void print_defines(void)
02873
02874 {
02875
02876 print_tbl_header("Compiler Defines Dump");
02877
02878 # ifdef _PVP_PVP
02879 fprintf(debug_file, "\t\t\t_PVP_PVP\n");
02880 # endif
02881
02882 # ifdef _MPP_MPP
02883 fprintf(debug_file, "\t\t\t_MPP_MPP\n");
02884 # endif
02885
02886 # ifdef _SOLARIS_SOLARIS
02887 fprintf(debug_file, "\t\t\t_SOLARIS_SOLARIS\n");
02888 # endif
02889
02890 # ifdef _SOLARIS_MPP
02891 fprintf(debug_file, "\t\t\t_SOLARIS_MPP\n");
02892 # endif
02893
02894 # ifdef _SOLARIS_PVP
02895 fprintf(debug_file, "\t\t\t_SOLARIS_PVP\n");
02896 # endif
02897
02898 # ifdef _PVP_MPP
02899 fprintf(debug_file, "\t\t\t_PVP_MPP\n");
02900 # endif
02901
02902 fprintf(debug_file, "\n");
02903
02904 # ifdef _PDGCS
02905 fprintf(debug_file, "\t\t\t_PDGCS\n");
02906 # endif
02907
02908 # ifdef _HOST32
02909 fprintf(debug_file, "\t\t\t_HOST32\n");
02910 # endif
02911
02912 # ifdef _HOST64
02913 fprintf(debug_file, "\t\t\t_HOST64\n");
02914 # endif
02915
02916 # ifdef _TARGET32
02917 fprintf(debug_file, "\t\t\t_TARGET32\n");
02918 # endif
02919
02920 # ifdef _TARGET64
02921 fprintf(debug_file, "\t\t\t_TARGET64\n");
02922 # endif
02923
02924 # if defined(_HOST_OS_IRIX)
02925 fprintf(debug_file, "\t\t\t_HOST_OS_IRIX\n");
02926 # endif
02927
02928 # if defined(_HOST_OS_LINUX)
02929 fprintf(debug_file, "\t\t\t_HOST_OS_LINUX\n");
02930 # endif
02931
02932 # if defined(_HOST_OS_DARWIN)
02933 fprintf(debug_file, "\t\t\t_HOST_OS_DARWIN\n");
02934 # endif
02935 # ifdef _HOST_OS_MAX
02936 fprintf(debug_file, "\t\t\t_HOST_OS_MAX\n");
02937 # endif
02938
02939 # ifdef _HOST_OS_SOLARIS
02940 fprintf(debug_file, "\t\t\t_HOST_OS_SOLARIS\n");
02941 # endif
02942
02943 # ifdef _HOST_OS_UNICOS
02944 fprintf(debug_file, "\t\t\t_HOST_OS_UNICOS\n");
02945 # endif
02946
02947
02948 # if defined(_TARGET_OS_IRIX)
02949 fprintf(debug_file, "\t\t\t_TARGET_OS_IRIX\n");
02950 # endif
02951
02952 # if defined(_TARGET_OS_LINUX)
02953 fprintf(debug_file, "\t\t\t_TARGET_OS_LINUX\n");
02954 # endif
02955
02956 # if defined(_TARGET_OS_DARWIN)
02957 fprintf(debug_file, "\t\t\t_TARGET_OS_DARWIN\n");
02958 # endif
02959
02960 # ifdef _TARGET_OS_MAX
02961 fprintf(debug_file, "\t\t\t_TARGET_OS_MAX\n");
02962 # endif
02963
02964 # ifdef _TARGET_OS_SOLARIS
02965 fprintf(debug_file, "\t\t\t_TARGET_OS_SOLARIS\n");
02966 # endif
02967
02968 # ifdef _TARGET_OS_UNICOS
02969 fprintf(debug_file, "\t\t\t_TARGET_OS_UNICOS\n");
02970 # endif
02971
02972 # ifdef _TARGET_SV2
02973 fprintf(debug_file, "\t\t\t_TARGET_SV2\n");
02974 # endif
02975
02976 # ifdef _TARGET_IEEE
02977 fprintf(debug_file, "\t\t\t_TARGET_IEEE\n");
02978 # endif
02979
02980 # ifdef _TARGET_BYTE_ADDRESS
02981 fprintf(debug_file, "\t\t\t_TARGET_BYTE_ADDRESS\n");
02982 # endif
02983
02984 # ifdef _TARGET_WORD_ADDRESS
02985 fprintf(debug_file, "\t\t\t_TARGET_WORD_ADDRESS\n");
02986 # endif
02987
02988 # ifdef _HEAP_REQUEST_IN_BYTES
02989 fprintf(debug_file, "\t\t\t_HEAP_REQUEST_IN_BYTES\n");
02990 # endif
02991
02992 # ifdef _HEAP_REQUEST_IN_WORDS
02993 fprintf(debug_file, "\t\t\t_HEAP_REQUEST_IN_WORDS\n");
02994 # endif
02995
02996 # ifdef _MODULE_DOT_TO_o
02997 fprintf(debug_file, "\t\t\t_MODULE_DOT_TO_o\n");
02998 # endif
02999
03000 # ifdef _MODULE_DOT_TO_M
03001 fprintf(debug_file, "\t\t\t_MODULE_DOT_TO_M\n");
03002 # endif
03003
03004 # ifdef _MODULE_DOT_TO_mod
03005 fprintf(debug_file, "\t\t\t_MODULE_DOT_TO_mod\n");
03006 # endif
03007
03008 # ifdef _ARITH_INPUT_CONV
03009 fprintf(debug_file, "\t\t\t_ARITH_INPUT_CONV\n");
03010 # endif
03011
03012 # ifdef _ARITH_H
03013 fprintf(debug_file, "\t\t\t_ARITH_H\n");
03014 # endif
03015
03016 # ifdef _ALLOCATE_IS_CALL
03017 fprintf(debug_file, "\t\t\t_ALLOCATE_IS_CALL\n");
03018 # endif
03019
03020 # ifdef _SEPARATE_FUNCTION_RETURNS
03021 fprintf(debug_file, "\t\t\t_SEPARATE_FUNCTION_RETURNS\n");
03022 # endif
03023
03024 # ifdef _TARGET_DOUBLE_ALIGN
03025 fprintf(debug_file, "\t\t\t_TARGET_DOUBLE_ALIGN\n");
03026 # endif
03027
03028 # ifdef _ERROR_DUPLICATE_GLOBALS
03029 fprintf(debug_file, "\t\t\t_ERROR_DUPLICATE_GLOBALS\n");
03030 # endif
03031
03032
03033 if (char_len_in_bytes) {
03034 fprintf(debug_file, "\t\t\t_CHAR_LEN_IN_BYTES\n");
03035 }
03036 # ifdef _NO_BINARY_OUTPUT
03037 fprintf(debug_file, "\t\t\t_NO_BINARY_OUTPUT\n");
03038 # endif
03039
03040 # ifdef _CHECK_MAX_MEMORY
03041 fprintf(debug_file, "\t\t\t_CHECK_MAX_MEMORY\n");
03042 # endif
03043
03044 # ifdef _TASK_COMMON_EXTENSION
03045 fprintf(debug_file, "\t\t\t_TASK_COMMON_EXTENSION\n");
03046 # endif
03047
03048 # ifdef _TWO_WORD_FCD
03049 fprintf(debug_file, "\t\t\t_TWO_WORD_FCD\n");
03050 # endif
03051
03052 # ifdef _TRANSFORM_CHAR_SEQUENCE
03053 fprintf(debug_file, "\t\t\t_TRANSFORM_CHAR_SEQUENCE\n");
03054 # endif
03055
03056 # ifdef _TMP_GIVES_COMMON_LENGTH
03057 fprintf(debug_file, "\t\t\t_TMP_GIVES_COMMON_LENGTH\n");
03058 # endif
03059
03060 # ifdef _SPLIT_STATIC_STORAGE_2
03061 fprintf(debug_file, "\t\t\t_SPLIT_STATIC_STORAGE_2\n");
03062 # endif
03063
03064 # ifdef _SPLIT_STATIC_STORAGE_3
03065 fprintf(debug_file, "\t\t\t_SPLIT_STATIC_STORAGE_3\n");
03066 # endif
03067
03068 # ifdef _ALLOW_DATA_INIT_OF_COMMON
03069 fprintf(debug_file, "\t\t\t_ALLOW_DATA_INIT_OF_COMMON\n");
03070 # endif
03071
03072 # ifdef _FRONTEND_CONDITIONAL_COMP
03073 fprintf(debug_file, "\t\t\t_FRONTEND_CONDITIONAL_COMP\n");
03074 # endif
03075
03076
03077 fprintf(debug_file, "\n\n\t\t\tINTEGER_DEFAULT_TYPE\t%s\n",
03078 lin_type_str[INTEGER_DEFAULT_TYPE]);
03079
03080 fprintf(debug_file, "\t\t\tREAL_DEFAULT_TYPE\t%s\n",
03081 lin_type_str[REAL_DEFAULT_TYPE]);
03082
03083 fprintf(debug_file, "\t\t\tDOUBLE_DEFAULT_TYPE\t%s\n",
03084 lin_type_str[DOUBLE_DEFAULT_TYPE]);
03085
03086 fprintf(debug_file, "\t\t\tCOMPLEX_DEFAULT_TYPE\t%s\n",
03087 lin_type_str[COMPLEX_DEFAULT_TYPE]);
03088
03089 fprintf(debug_file, "\t\t\tLOGICAL_DEFAULT_TYPE\t%s\n",
03090 lin_type_str[LOGICAL_DEFAULT_TYPE]);
03091
03092 fprintf(debug_file, "\t\t\tTRUE_VALUE = %d\n", TRUE_VALUE);
03093 fprintf(debug_file, "\t\t\tFALSE_VALUE = %d\n", FALSE_VALUE);
03094
03095 if (target_triton) {
03096 fprintf(debug_file, "\n\t\t\ttarget_triton\n");
03097 }
03098
03099 if (target_ieee) {
03100 fprintf(debug_file, "\n\t\t\ttarget_ieee\n");
03101 }
03102
03103 if (char_len_in_bytes) {
03104 fprintf(debug_file, "\n\t\t\tchar_len_in_bytes\n");
03105 }
03106
03107 putc ('\n', debug_file);
03108 fflush(debug_file);
03109
03110 return;
03111
03112 }
03113
03114
03115
03116
03117
03118
03119
03120
03121
03122
03123
03124
03125
03126
03127
03128
03129
03130
03131 static void dump_dv(FILE *out_file,
03132 int_dope_type *dv,
03133 boolean dump_it)
03134
03135 {
03136 long *lptr;
03137 int k;
03138 int i;
03139 int idx;
03140 int dec_len = 0;
03141 int dp_flag = 0;
03142 int dv_type;
03143 int int_len = 0;
03144 int kind_star = 0;
03145 int type_idx;
03146 int num_chars;
03147 char *char_ptr;
03148
03149 # if 0
03150 char str[80];
03151 # endif
03152
03153
03154 if (dv == NULL) {
03155 fprintf(out_file, "\nDOPE VECTOR ADDRESS IS NULL\n\n");
03156 return;
03157 }
03158 #if defined(_HOST32) && defined(_TARGET64)
03159 fprintf(out_file, "base_addr = 0x%x\n", dv->base_addr);
03160 fprintf(out_file, "el_len = %d\n", dv->el_len);
03161 #else
03162 fprintf(out_file, "base_addr = 0x%" LONG_TYPE_X_FMT "\n", dv->base_addr);
03163 fprintf(out_file, "el_len = %" LONG_TYPE_FMT "\n", dv->el_len);
03164 #endif
03165 fprintf(out_file, "assoc = %d\n", dv->assoc);
03166 fprintf(out_file, "ptr_alloc = %d\n", dv->ptr_alloc);
03167 fprintf(out_file, "p_or_a = %s\n", (dv->p_or_a == 2 ? "ALLOCATABLE" :
03168 (dv->p_or_a == 1 ? "POINTER" : "OTHER")));
03169 fprintf(out_file, "a_contig = %s\n",
03170 (dv->a_contig == 1 ? "TRUE" : "FALSE"));
03171 fprintf(out_file, "unused_1 = %d\n", dv->unused_1);
03172 # if defined(_TARGET64)
03173 fprintf(out_file, "unused_2 = %d\n", dv->unused_2);
03174 # endif
03175 fprintf(out_file, "num_dims = %d\n", dv->num_dims);
03176
03177 # if 0
03178 dump_io_type_code_ntry(out_file, (long_type *)&(dv->type_code), 0);
03179 # endif
03180
03181 #if defined(_HOST32) && defined(_TARGET64)
03182 fprintf(out_file, "orig_base = 0x%x\n", dv->orig_base);
03183 fprintf(out_file, "orig_size = %d\n", dv->orig_size);
03184
03185 for(k = 0; k < (int)(dv->num_dims); k++) {
03186 fprintf(out_file, "low_bound[%d] = %d\n",k+1,
03187 dv->dim[k].low_bound);
03188 fprintf(out_file, "extent[%d] = %d\n",
03189 k+1, dv->dim[k].extent);
03190 fprintf(out_file, "stride_mult[%d] = %d\n\n",k+1,
03191 dv->dim[k].stride_mult);
03192 }
03193 #else
03194 fprintf(out_file, "orig_base = 0x%" LONG_TYPE_X_FMT "\n", dv->orig_base);
03195 fprintf(out_file, "orig_size = %" LONG_TYPE_FMT "\n", dv->orig_size);
03196
03197 for(k = 0; k < (int)(dv->num_dims); k++) {
03198 fprintf(out_file, "low_bound[%d] = %" LONG_TYPE_FMT "\n",k+1,
03199 dv->dim[k].low_bound);
03200 fprintf(out_file, "extent[%d] = %" LONG_TYPE_FMT "\n",
03201 k+1, dv->dim[k].extent);
03202 fprintf(out_file, "stride_mult[%d] = %" LONG_TYPE_FMT "\n\n",k+1,
03203 dv->dim[k].stride_mult);
03204 }
03205 #endif
03206
03207
03208 # if 0
03209 lptr = (long *)(dv->base_addr);
03210
03211 if (lptr != NULL &&
03212 dv->num_dims == 1 &&
03213 dump_it) {
03214
03215
03216
03217 if (dv_type == DV_ASCII_CHAR) {
03218
03219 char_ptr = (char *)(dv->base_addr);
03220
03221 idx = 0;
03222
03223 for (k = 0; k < dv->dim[0].extent; k++) {
03224 fprintf(out_file,"\"");
03225 for (i = 0; i < num_chars; i++) {
03226 fprintf(out_file, "%c", char_ptr[idx]);
03227 idx++;
03228 }
03229 fprintf(out_file,"\" ");
03230 }
03231 fprintf(out_file, "\n");
03232 }
03233 else {
03234
03235 for (k = 0; k < dv->dim[0].extent; k++) {
03236 #if 1
03237 fprintf(out_file, " %x ",
03238 lptr[num_host_wds[TYP_LINEAR(type_idx)] * k]);
03239 # else
03240
03241 fprintf(out_file, " %s ",
03242 convert_to_string(&(lptr[num_host_wds[TYP_LINEAR(type_idx)] * k]),
03243 type_idx,
03244 str));
03245 # endif
03246 }
03247 fprintf(out_file, "\n");
03248 }
03249 }
03250 # endif
03251
03252 return;
03253
03254 }
03255
03256
03257
03258
03259
03260
03261
03262
03263
03264
03265
03266
03267
03268
03269
03270
03271
03272 void print_so (size_offset_type so)
03273
03274 {
03275 char str[80];
03276
03277 switch(so.fld) {
03278
03279 case NO_Tbl_Idx:
03280 print_fld_idx(stderr, "Idx", (fld_type) so.fld, 0);
03281 fprintf(stderr, "Type = (%d) %s", so.type_idx,
03282 print_type_f(so.type_idx));
03283
03284 switch (TYP_TYPE(so.type_idx)) {
03285 case Typeless:
03286 convert_to_string_fmt = Hex_Fmt;
03287 fprintf(stderr,"0x%s",
03288 convert_to_string((long_type *)&(so.constant),
03289 so.type_idx, str));
03290
03291 if (TYP_BIT_LEN(so.type_idx) > TARGET_BITS_PER_WORD) {
03292 convert_to_string_fmt = Hex_Fmt;
03293 fprintf(stderr, " %s",
03294 convert_to_string((long_type *)&(so.constant[1]),
03295 so.type_idx, str));
03296 }
03297
03298 break;
03299
03300 case Integer:
03301 fprintf(stderr,"%s",
03302 convert_to_string((long_type *)&(so.constant),
03303 so.type_idx, str));
03304 break;
03305
03306 case Real:
03307 fprintf(stderr, "%s",
03308 convert_to_string((long_type *)&(so.constant),
03309 so.type_idx, str));
03310 break;
03311
03312 case Character:
03313 break;
03314
03315 case Logical:
03316 fprintf(stderr, "%s",
03317 (THIS_IS_TRUE((long_type *)&(so.constant), so.type_idx) ?
03318 ".TRUE." : ".FALSE."));
03319 break;
03320
03321 case Complex:
03322 fprintf(stderr, "%s",
03323 convert_to_string((long_type *)&(so.constant),
03324 so.type_idx, str));
03325 break;
03326 }
03327
03328 fprintf(stderr,"\n");
03329 break;
03330
03331 case CN_Tbl_Idx:
03332 print_fld_idx(stderr, "Idx", (fld_type) so.fld, so.idx);
03333 fprintf(stderr, "Constant = *Unset*\n");
03334
03335 print_const_entry(stderr, so.idx, 0);
03336 break;
03337
03338 case AT_Tbl_Idx:
03339 print_fld_idx(stderr, "Idx", (fld_type) so.fld, so.idx);
03340 fprintf(stderr, "Constant = *Unset*\n");
03341 print_attr_name(stderr, so.idx, 0);
03342 break;
03343
03344 case IR_Tbl_Idx:
03345 print_fld_idx(stderr, "Idx", (fld_type) so.fld, so.idx);
03346 fprintf(stderr, "Constant = *Unset*\n");
03347 dump_ir_ntry(stderr, so.idx, 0);
03348 break;
03349 }
03350
03351 return;
03352
03353 }
03354
03355
03356
03357
03358
03359
03360
03361
03362
03363
03364
03365
03366
03367
03368
03369
03370
03371
03372
03373
03374
03375 static void print_fld_idx(FILE *out_file,
03376 char *name,
03377 fld_type fld,
03378 int idx)
03379
03380 {
03381 static char str[80];
03382 char conv_str[80];
03383
03384 if (idx == NULL_IDX) {
03385 fprintf(out_file, " %-16s= %-7d %-9s\n", name, idx, field_str[fld]);
03386 }
03387 else {
03388 switch (fld) {
03389
03390 case CN_Tbl_Idx:
03391 sprintf(str,"( %-s )",
03392 convert_to_string(&CN_CONST(idx), CN_TYPE_IDX(idx), conv_str));
03393 break;
03394
03395 case AT_Tbl_Idx:
03396 sprintf(str,"( %-s )", AT_OBJ_NAME_PTR(idx));
03397 break;
03398
03399 case IR_Tbl_Idx:
03400 case IL_Tbl_Idx:
03401 case SH_Tbl_Idx:
03402 case SB_Tbl_Idx:
03403 sprintf(str,"%s", " ");
03404 break;
03405
03406 default:
03407 sprintf(str,"%s", " ");
03408 break;
03409 }
03410
03411 fprintf(out_file, " %-16s= %-7d %-9s%15s %-s\n",
03412 name, idx,
03413 field_str[fld], " ",
03414 str);
03415 }
03416
03417 return;
03418
03419 }
03420
03421
03422
03423
03424
03425
03426
03427
03428
03429
03430
03431
03432
03433
03434
03435
03436
03437
03438
03439
03440 static char *print_at_name(int idx)
03441
03442 {
03443 static char str[1] = "0";
03444
03445
03446 if (idx == NULL_IDX) {
03447 return(str);
03448 }
03449 else {
03450 return(AT_OBJ_NAME_PTR(idx));
03451 }
03452
03453 }
03454
03455
03456
03457
03458
03459
03460
03461
03462
03463
03464
03465 static void print_tbl_header (char *table_name)
03466
03467 {
03468 init_debug_file();
03469
03470 fprintf(debug_file, "****************************************"
03471 "****************************************\n");
03472 fprintf(debug_file, "\n\t\t\t%s\n\n", table_name);
03473 fprintf(debug_file, "****************************************"
03474 "****************************************\n");
03475 return;
03476
03477 }
03478
03479
03480
03481
03482
03483
03484
03485
03486
03487
03488
03489
03490
03491
03492
03493
03494
03495 static char *print_global_type_f(int gt_idx)
03496
03497 {
03498 int kind;
03499 static char str[80];
03500 char str1[80];
03501
03502
03503 if (gt_idx == NULL_IDX) {
03504 sprintf(str, "NULL");
03505 }
03506 else if (GT_TYPE(gt_idx) <= Last_Linear_Type) {
03507
03508 if (GT_DESC(gt_idx) == Star_Typed) {
03509 sprintf(str, "%s * %d",
03510 basic_type_str[GT_TYPE(gt_idx)],
03511 GT_DCL_VALUE(gt_idx));
03512 }
03513 else if (GT_DESC(gt_idx) == Kind_Typed) {
03514 sprintf(str, "%s (kind=%d)",
03515 basic_type_str[GT_TYPE(gt_idx)],
03516 GT_DCL_VALUE(gt_idx));
03517 }
03518 else {
03519
03520
03521
03522 switch (GT_LINEAR_TYPE(gt_idx)) {
03523 case Integer_1:
03524 case Logical_1:
03525 kind = 1;
03526 break;
03527 case Integer_2:
03528 case Logical_2:
03529 kind = 2;
03530 break;
03531 case Integer_4:
03532 case Logical_4:
03533 case Real_4:
03534 case Complex_4:
03535 kind = 4;
03536 break;
03537 case Integer_8:
03538 case Logical_8:
03539 case Real_8:
03540 case Complex_8:
03541 kind = 8;
03542 break;
03543 case Real_16:
03544 case Complex_16:
03545 kind = 16;
03546 break;
03547 default:
03548 kind = 0;
03549 break;
03550 }
03551
03552 if (kind == 0) {
03553 sprintf(str, "%s", basic_type_str[GT_TYPE(gt_idx)]);
03554 }
03555 else {
03556 sprintf(str, "%s (%d)", basic_type_str[GT_TYPE(gt_idx)], kind);
03557 }
03558 }
03559 }
03560 else if (GT_TYPE(gt_idx) == Typeless) {
03561 sprintf(str, "Typeless * %s",
03562 CONVERT_CVAL_TO_STR(&TYP_BIT_LEN(gt_idx), Integer_8, str1));
03563 }
03564 else if (GT_TYPE(gt_idx) != Character) {
03565 sprintf(str, "type(%s)", GA_OBJ_NAME_PTR(GT_STRUCT_IDX(gt_idx)));
03566 }
03567 else if (GT_CHAR_CLASS(gt_idx) == Assumed_Size_Char) {
03568 sprintf(str, "CHARACTER*(*)");
03569 }
03570 else if (GT_CHAR_CLASS(gt_idx) == Const_Len_Char) {
03571 sprintf(str, "CHARACTER*(Const_Len_Char)");
03572
03573
03574
03575 }
03576 else {
03577 sprintf(str, "CHARACTER*(tmp)");
03578 }
03579
03580 return(str);
03581
03582 }
03583
03584
03585
03586
03587
03588
03589
03590
03591
03592
03593
03594
03595
03596
03597
03598
03599
03600
03601
03602
03603
03604
03605
03606 static void print_all_text (boolean print_all_scps)
03607
03608 {
03609 int save_curr_scp_idx;
03610
03611
03612 PROCESS_SIBLING:
03613
03614 init_debug_file();
03615
03616 dump_trace_info (debug_file, PU_Start, NULL, "IR_dump");
03617
03618 if (!SCP_IN_ERR(curr_scp_idx) ) {
03619
03620 curr_stmt_sh_idx = SCP_FIRST_SH_IDX(curr_scp_idx);
03621
03622 while (curr_stmt_sh_idx != NULL_IDX) {
03623
03624 dump_stmt_ntry(debug_file, TRUE);
03625
03626 if (SH_NEXT_IDX(curr_stmt_sh_idx) == curr_stmt_sh_idx) {
03627
03628
03629
03630 dump_flags.ir1_tbl = FALSE;
03631 dump_flags.ir2_tbl = FALSE;
03632 dump_flags.ir3_tbl = FALSE;
03633 dump_flags.ir4_tbl = FALSE;
03634 dump_flags.sytb = FALSE;
03635
03636 PRINTMSG(SH_GLB_LINE(curr_stmt_sh_idx), 871, Internal,
03637 SH_COL_NUM(curr_stmt_sh_idx), "SH_NEXT_IDX",
03638 curr_stmt_sh_idx);
03639 }
03640 else if (SH_PREV_IDX(curr_stmt_sh_idx) == curr_stmt_sh_idx) {
03641
03642
03643
03644 dump_flags.ir1_tbl = FALSE;
03645 dump_flags.ir2_tbl = FALSE;
03646 dump_flags.ir3_tbl = FALSE;
03647 dump_flags.ir4_tbl = FALSE;
03648 dump_flags.sytb = FALSE;
03649
03650 PRINTMSG(SH_GLB_LINE(curr_stmt_sh_idx), 871, Internal,
03651 SH_COL_NUM(curr_stmt_sh_idx), "SH_PREV_IDX",
03652 curr_stmt_sh_idx);
03653 }
03654
03655 curr_stmt_sh_idx = SH_NEXT_IDX(curr_stmt_sh_idx);
03656 }
03657 }
03658
03659 if (!print_all_scps) {
03660 return;
03661 }
03662
03663 if (SCP_FIRST_CHILD_IDX(curr_scp_idx) != NULL_IDX) {
03664 save_curr_scp_idx = curr_scp_idx;
03665 curr_scp_idx = SCP_FIRST_CHILD_IDX(curr_scp_idx);
03666 print_all_text(TRUE);
03667 curr_scp_idx = save_curr_scp_idx;
03668 }
03669
03670 if (SCP_SIBLING_IDX(curr_scp_idx) != NULL_IDX) {
03671 curr_scp_idx = SCP_SIBLING_IDX(curr_scp_idx);
03672 goto PROCESS_SIBLING;
03673 }
03674
03675 fflush(debug_file);
03676 return;
03677
03678 }
03679
03680
03681
03682
03683
03684
03685
03686
03687
03688
03689
03690
03691
03692
03693
03694
03695
03696
03697
03698 static void print_Dv_Whole_Def_Opr(FILE *out_file,
03699 int idx,
03700 int indent,
03701 int cnt,
03702 #ifdef KEY
03703 int n_dim
03704 #endif
03705 )
03706
03707 {
03708 int dim;
03709 char shift[80];
03710 char n_shift[INDENT_SIZE + 1];
03711 char str[16];
03712 int i;
03713
03714 for (i = 0; i < INDENT_SIZE * indent; i++) {
03715 shift[i] = ' ';
03716 if (i == 79)
03717 break;
03718 }
03719 shift[i] = '\0';
03720 for (i = 0; i < INDENT_SIZE; i++) {
03721 n_shift[i] = ' ';
03722 }
03723 n_shift[i] = '\0';
03724
03725 dim = 0;
03726
03727 for (i = 0; i < cnt; i++) {
03728
03729 if (idx == NULL_IDX) {
03730 break;
03731 }
03732
03733 #ifdef KEY
03734
03735
03736 int first_bound =
03737 ((sizeof(dv_whole_def_str))/(sizeof(*dv_whole_def_str)));
03738 int first_alloc_cpnt = first_bound + 3 * n_dim;
03739 if (i < first_bound) {
03740 strcpy(str, dv_whole_def_str[i]);
03741 }
03742 else if (i < first_alloc_cpnt) {
03743 sprintf(str, dv_whole_def_bound_str[(i - first_bound) % 3],
03744 (i - first_bound) / 3);
03745 }
03746 else {
03747 sprintf(str, dv_whole_def_alloc_cpnt_str, i - first_alloc_cpnt);
03748 }
03749 #else
03750 if (i < 10) {
03751 strcpy(str, dv_whole_def_str[i]);
03752 }
03753 else {
03754 if ((i - 10)%3 == 0) {
03755 dim++;
03756 }
03757 sprintf(str, dv_whole_def_str[i], dim);
03758 }
03759 #endif
03760
03761 fprintf(out_file,"%s%-15s, idx = %d, %s",shift, str, idx,
03762 field_str[IL_FLD(idx)]);
03763
03764 if (i == DEBUG_STR_TYPE_CODE) {
03765 convert_to_string_fmt = Hex_Fmt;
03766 }
03767
03768 switch (IL_FLD(idx)) {
03769 case CN_Tbl_Idx :
03770 case AT_Tbl_Idx :
03771 fprintf(out_file," line = %d col = %d\n",IL_LINE_NUM(idx),
03772 IL_COL_NUM(idx));
03773 break;
03774 case IL_Tbl_Idx :
03775 fprintf(out_file," list cnt = %d\n", IL_LIST_CNT(idx));
03776 break;
03777 default :
03778 fprintf(out_file,"\n");
03779 break;
03780 }
03781
03782
03783 switch (IL_FLD(idx)) {
03784 case NO_Tbl_Idx :
03785 break;
03786 case CN_Tbl_Idx :
03787 print_const_entry(out_file, IL_IDX(idx), indent + 1);
03788 break;
03789 case AT_Tbl_Idx :
03790 print_attr_name(out_file, IL_IDX(idx), indent + 1);
03791 break;
03792 case IR_Tbl_Idx :
03793 dump_ir_ntry(out_file, IL_IDX(idx), indent + 1);
03794 break;
03795 case IL_Tbl_Idx :
03796 print_list(out_file, IL_IDX(idx),
03797 indent + 1, IL_LIST_CNT(idx), FALSE);
03798 break;
03799 case SH_Tbl_Idx :
03800 fprintf(out_file, "%s%sstmt header idx = %d\n",shift,n_shift,
03801 IL_IDX(idx));
03802 break;
03803 }
03804 idx = IL_NEXT_LIST_IDX(idx);
03805 }
03806
03807 return;
03808
03809 }
03810
03811
03812
03813
03814
03815
03816
03817
03818
03819
03820
03821
03822
03823
03824
03825
03826
03827
03828
03829 static void print_mp_dir_opr(FILE *out_file,
03830 int idx,
03831 int indent,
03832 int cnt)
03833
03834 {
03835 char shift[80];
03836 char n_shift[INDENT_SIZE + 1];
03837 char str[80];
03838 int i;
03839
03840
03841 for (i = 0; i < INDENT_SIZE * indent; i++) {
03842 shift[i] = ' ';
03843 if (i == 79)
03844 break;
03845 }
03846 shift[i] = '\0';
03847 for (i = 0; i < INDENT_SIZE; i++) {
03848 n_shift[i] = ' ';
03849 }
03850 n_shift[i] = '\0';
03851
03852
03853 for (i = 0; i < cnt; i++) {
03854
03855 if (idx == NULL_IDX) {
03856 break;
03857 }
03858
03859 strcpy(str, mp_dir_opr_str[i]);
03860
03861 fprintf(out_file,"%s%-15s, idx = %d, %s",shift, str, idx,
03862 field_str[IL_FLD(idx)]);
03863
03864 switch (IL_FLD(idx)) {
03865 case CN_Tbl_Idx :
03866 case AT_Tbl_Idx :
03867 fprintf(out_file," line = %d col = %d\n",IL_LINE_NUM(idx),
03868 IL_COL_NUM(idx));
03869 break;
03870 case IL_Tbl_Idx :
03871 fprintf(out_file," list cnt = %d\n", IL_LIST_CNT(idx));
03872 break;
03873 default :
03874 fprintf(out_file,"\n");
03875 break;
03876 }
03877
03878
03879 switch (IL_FLD(idx)) {
03880 case NO_Tbl_Idx :
03881 break;
03882 case CN_Tbl_Idx :
03883 print_const_entry(out_file, IL_IDX(idx), indent + 1);
03884 break;
03885 case AT_Tbl_Idx :
03886 print_attr_name(out_file, IL_IDX(idx), indent + 1);
03887 break;
03888 case IR_Tbl_Idx :
03889 dump_ir_ntry(out_file, IL_IDX(idx), indent + 1);
03890 break;
03891 case IL_Tbl_Idx :
03892 print_list(out_file, IL_IDX(idx),
03893 indent + 1, IL_LIST_CNT(idx), FALSE);
03894 break;
03895 case SH_Tbl_Idx :
03896 fprintf(out_file, "%s%sstmt header idx = %d\n",shift,n_shift,
03897 IL_IDX(idx));
03898 break;
03899 }
03900 idx = IL_NEXT_LIST_IDX(idx);
03901 }
03902
03903 return;
03904
03905 }
03906
03907
03908
03909
03910
03911
03912
03913
03914
03915
03916
03917
03918
03919
03920
03921
03922
03923
03924
03925 static void print_open_mp_dir_opr(FILE *out_file,
03926 int idx,
03927 int indent,
03928 int cnt)
03929
03930 {
03931 char shift[80];
03932 char n_shift[INDENT_SIZE + 1];
03933 char str[80];
03934 int i;
03935
03936
03937 for (i = 0; i < INDENT_SIZE * indent; i++) {
03938 shift[i] = ' ';
03939 if (i == 79)
03940 break;
03941 }
03942 shift[i] = '\0';
03943 for (i = 0; i < INDENT_SIZE; i++) {
03944 n_shift[i] = ' ';
03945 }
03946 n_shift[i] = '\0';
03947
03948 for (i = 0; i < cnt; i++) {
03949
03950 if (idx == NULL_IDX) {
03951 break;
03952 }
03953
03954 strcpy(str, open_mp_dir_opr_str[i]);
03955
03956 fprintf(out_file,"%s%-15s, idx = %d, %s",shift, str, idx,
03957 field_str[IL_FLD(idx)]);
03958
03959 switch (IL_FLD(idx)) {
03960 case CN_Tbl_Idx :
03961 case AT_Tbl_Idx :
03962 fprintf(out_file," line = %d col = %d\n",IL_LINE_NUM(idx),
03963 IL_COL_NUM(idx));
03964 break;
03965 case IL_Tbl_Idx :
03966 fprintf(out_file," list cnt = %d\n", IL_LIST_CNT(idx));
03967 break;
03968 default :
03969 fprintf(out_file,"\n");
03970 break;
03971 }
03972
03973
03974 switch (IL_FLD(idx)) {
03975 case NO_Tbl_Idx :
03976 break;
03977 case CN_Tbl_Idx :
03978 print_const_entry(out_file, IL_IDX(idx), indent + 1);
03979 break;
03980 case AT_Tbl_Idx :
03981 print_attr_name(out_file, IL_IDX(idx), indent + 1);
03982 break;
03983 case IR_Tbl_Idx :
03984 dump_ir_ntry(out_file, IL_IDX(idx), indent + 1);
03985 break;
03986 case IL_Tbl_Idx :
03987 print_list(out_file, IL_IDX(idx),
03988 indent + 1, IL_LIST_CNT(idx), FALSE);
03989 break;
03990 case SH_Tbl_Idx :
03991 fprintf(out_file, "%s%sstmt header idx = %d\n",shift,n_shift,
03992 IL_IDX(idx));
03993 break;
03994 }
03995 idx = IL_NEXT_LIST_IDX(idx);
03996 }
03997
03998 return;
03999
04000 }
04001
04002
04003
04004
04005
04006
04007
04008
04009
04010
04011
04012
04013
04014
04015
04016
04017
04018
04019 static void print_attr_name(FILE *out_file,
04020 int idx,
04021 int indent)
04022
04023 {
04024 int i;
04025 char shift[80];
04026 char str[80];
04027 int type_idx;
04028
04029
04030 for (i = 0; i < INDENT_SIZE * indent; i++) {
04031 shift[i] = ' ';
04032 if (i == 79)
04033 break;
04034 }
04035
04036 shift[i] = '\0';
04037
04038 fprintf(out_file,"%s%s idx = %d",shift, AT_OBJ_NAME_PTR(idx), idx);
04039
04040 if (AT_OBJ_CLASS(idx) == Data_Obj) {
04041 type_idx = ATD_TYPE_IDX(idx);
04042
04043 if (type_idx == NULL_IDX && AT_ATTR_LINK(idx) == NULL_IDX) {
04044
04045
04046
04047 dump_flags.ir1_tbl = FALSE;
04048 dump_flags.ir2_tbl = FALSE;
04049 dump_flags.ir3_tbl = FALSE;
04050 dump_flags.ir4_tbl = FALSE;
04051 dump_flags.sytb = FALSE;
04052
04053 PRINTMSG(AT_DEF_LINE(idx), 891, Internal, AT_DEF_COLUMN(idx),
04054 idx, AT_OBJ_NAME_PTR(idx));
04055 }
04056
04057 fprintf(out_file," %s * ", basic_type_str[TYP_TYPE(type_idx)]);
04058
04059 if (TYP_TYPE(type_idx) <= Last_Linear_Type) {
04060 fprintf(out_file, "%s ", lin_type_str[TYP_LINEAR(type_idx)]);
04061 }
04062 else if (TYP_TYPE(type_idx) == Typeless) {
04063 fprintf(out_file, "%s ", CONVERT_CVAL_TO_STR(&TYP_BIT_LEN(type_idx),
04064 Integer_8,
04065 str));
04066 }
04067 else if (TYP_TYPE(type_idx) != Character) {
04068 fprintf(out_file, "%d ", TYP_IDX(type_idx));
04069 }
04070 else if (TYP_CHAR_CLASS(type_idx) == Assumed_Size_Char) {
04071 fprintf(out_file, "(*) ");
04072 }
04073 else if (TYP_CHAR_CLASS(type_idx) == Const_Len_Char) {
04074 fprintf(out_file, "%s ",
04075 convert_to_string(&CN_CONST(TYP_IDX(type_idx)),
04076 CN_TYPE_IDX(TYP_IDX(type_idx)),
04077 str));
04078 }
04079 else {
04080 fprintf(out_file, "(tmp_idx = %d) ", TYP_IDX(type_idx));
04081 }
04082 }
04083
04084 if (AT_ATTR_LINK(idx)) {
04085 fprintf(out_file," AT_ATTR_LINK = %d\n",AT_ATTR_LINK(idx));
04086 }
04087 else {
04088 fprintf(out_file,"\n");
04089 }
04090
04091 return;
04092 }
04093
04094
04095
04096
04097
04098
04099
04100
04101
04102
04103
04104
04105
04106
04107
04108
04109
04110
04111 static void print_list(FILE *out_file,
04112 int idx,
04113 int indent,
04114 int cnt,
04115 boolean io_list)
04116
04117 {
04118 char shift[80];
04119 char n_shift[INDENT_SIZE + 1];
04120 int i;
04121
04122 for (i = 0; i < INDENT_SIZE * indent; i++) {
04123 shift[i] = ' ';
04124 if (i == 79)
04125 break;
04126 }
04127 shift[i] = '\0';
04128 for (i = 0; i < INDENT_SIZE; i++) {
04129 n_shift[i] = ' ';
04130 }
04131 n_shift[i] = '\0';
04132
04133 for (i = 0; i < cnt; i++) {
04134
04135 if (idx == NULL_IDX) {
04136 break;
04137 }
04138
04139 fprintf(out_file,"%slist item #%d, idx = %d, %s",shift, i + 1, idx,
04140 field_str[IL_FLD(idx)]);
04141
04142 if (IL_ARG_DESC_VARIANT(idx)) {
04143 fprintf(out_file, " IL_ARG_DESC_VARIANT ");
04144 }
04145
04146 if (io_list) {
04147 if (IL_HAS_FUNCTIONS(idx)) {
04148 fprintf(out_file, " IL_HAS_FUNCTIONS ");
04149 }
04150
04151 if (IL_MUST_FLATTEN(idx)) {
04152 fprintf(out_file, " IL_MUST_FLATTEN ");
04153 }
04154
04155 if (IL_MUST_BE_LOOP(idx)) {
04156 fprintf(out_file, " IL_MUST_BE_LOOP ");
04157 }
04158 }
04159 else {
04160 if (IL_VECTOR_SUBSCRIPT(idx)) {
04161 fprintf(out_file, " IL_VECTOR_SUBSCRIPT ");
04162 }
04163
04164 if (IL_CONSTANT_SUBSCRIPT(idx)) {
04165 fprintf(out_file, " IL_CONSTANT_SUBSCRIPT ");
04166 }
04167
04168 if (IL_PE_SUBSCRIPT(idx)) {
04169 fprintf(out_file, " IL_PE_SUBSCRIPT ");
04170 }
04171 }
04172
04173 if (IL_DISTRIBUTION_VARIANT(idx)) {
04174 fprintf(out_file, " %s ", distribution_str[IL_DISTRIBUTION(idx)]);
04175 }
04176
04177 switch (IL_FLD(idx)) {
04178 case CN_Tbl_Idx :
04179 case AT_Tbl_Idx :
04180 case SB_Tbl_Idx :
04181 fprintf(out_file," line = %d col = %d\n",IL_LINE_NUM(idx),
04182 IL_COL_NUM(idx));
04183 break;
04184 case IL_Tbl_Idx :
04185 fprintf(out_file," list cnt = %d\n", IL_LIST_CNT(idx));
04186 break;
04187 default :
04188 fprintf(out_file,"\n");
04189 break;
04190 }
04191
04192
04193 switch (IL_FLD(idx)) {
04194 case NO_Tbl_Idx :
04195 break;
04196 case CN_Tbl_Idx :
04197 print_const_entry(out_file, IL_IDX(idx), indent + 1);
04198 break;
04199 case AT_Tbl_Idx :
04200 print_attr_name(out_file, IL_IDX(idx), indent + 1);
04201 break;
04202 case SB_Tbl_Idx :
04203 fprintf(out_file,"%s%s%s\n", shift, n_shift,
04204 SB_NAME_PTR(IL_IDX(idx)));
04205 break;
04206 case IR_Tbl_Idx :
04207 dump_ir_ntry(out_file, IL_IDX(idx), indent + 1);
04208 break;
04209 case IL_Tbl_Idx :
04210 print_list(out_file, IL_IDX(idx),
04211 indent + 1, IL_LIST_CNT(idx), io_list);
04212 break;
04213 case SH_Tbl_Idx :
04214 fprintf(out_file, "%s%sstmt header idx = %d\n",shift,n_shift,
04215 IL_IDX(idx));
04216 break;
04217 }
04218 idx = IL_NEXT_LIST_IDX(idx);
04219 }
04220
04221 if (idx != NULL_IDX) {
04222
04223
04224
04225 dump_flags.sytb = FALSE;
04226 dump_flags.ir1_tbl = FALSE;
04227 dump_flags.ir2_tbl = FALSE;
04228 dump_flags.ir3_tbl = FALSE;
04229 dump_flags.ir4_tbl = FALSE;
04230
04231 PRINTMSG(1, 670, Internal, 0);
04232 }
04233
04234 return;
04235
04236 }
04237
04238
04239
04240
04241
04242
04243
04244
04245
04246
04247
04248
04249
04250
04251
04252
04253
04254 static void print_const_entry(FILE *out_file,
04255 int idx,
04256 int indent)
04257
04258 {
04259 long i;
04260 char shift[80];
04261 int type_idx;
04262 char str[80];
04263
04264
04265 if (idx == 0 || idx > const_tbl_idx) {
04266 fprintf(out_file, "\n*FE90-ERROR* CN index value [%d] is out of range.\n",
04267 idx);
04268 return;
04269 }
04270
04271 type_idx = CN_TYPE_IDX(idx);
04272
04273 for (i = 0; i < INDENT_SIZE * indent; i++) {
04274 shift[i] = ' ';
04275 if (i == 79)
04276 break;
04277 }
04278
04279 shift[i] = '\0';
04280 fprintf(out_file,"%s", shift);
04281 print_const_f(out_file, idx);
04282 fprintf(out_file, " IDX = %d", idx);
04283
04284 if (TYP_TYPE(type_idx) == Character) {
04285 fprintf(out_file, " LEN = %s",
04286 convert_to_string(&CN_CONST(TYP_IDX(type_idx)),
04287 CG_INTEGER_DEFAULT_TYPE,
04288 str));
04289
04290 }
04291
04292 if (TYP_TYPE(type_idx) == Typeless) {
04293 fprintf(out_file, " %s BIT LEN = %s\n",
04294 basic_type_str[TYP_TYPE(type_idx)],
04295 CONVERT_CVAL_TO_STR(&TYP_BIT_LEN(type_idx),
04296 Integer_8,
04297 str));
04298 }
04299 else if (TYP_TYPE(type_idx) <= Last_Linear_Type) {
04300 fprintf(out_file, " %s * %s\n",
04301 basic_type_str[TYP_TYPE(type_idx)],
04302 lin_type_str[TYP_LINEAR(type_idx)]);
04303 }
04304 else {
04305
04306
04307
04308 fprintf(out_file, " %s\n", print_type_f(type_idx));
04309 }
04310
04311 return;
04312
04313 }
04314
04315
04316
04317
04318
04319
04320
04321
04322
04323
04324
04325
04326
04327
04328
04329
04330
04331
04332
04333
04334
04335
04336
04337
04338 void print_expanded_stmt(void)
04339 {
04340 int save_curr_scp_idx;
04341 int save_curr_stmt_sh_idx;
04342
04343 save_curr_scp_idx = curr_scp_idx;
04344 curr_scp_idx = 1;
04345 save_curr_stmt_sh_idx = curr_stmt_sh_idx;
04346
04347 print_expanded_stmt_for_scp();
04348
04349 curr_scp_idx = save_curr_scp_idx;
04350 curr_stmt_sh_idx = save_curr_stmt_sh_idx;
04351
04352 return;
04353 }
04354
04355
04356
04357
04358
04359
04360
04361
04362
04363
04364
04365
04366
04367
04368
04369
04370
04371
04372 static void print_expanded_stmt_for_scp(void)
04373 {
04374 int sh_idx;
04375 int save_curr_scp_idx;
04376
04377 init_debug_file();
04378
04379 PROCESS_SIBLING:
04380
04381 fprintf(debug_file, "\n****************************************"
04382 "****************************************\n");
04383 fprintf(debug_file, "\n\t\t\t EXPANDED IR FOR %s\n\n",
04384 AT_OBJ_NAME_PTR(SCP_ATTR_IDX(curr_scp_idx)));
04385 fprintf(debug_file, "****************************************"
04386 "****************************************\n\n");
04387
04388
04389 sh_idx = SCP_FIRST_SH_IDX(curr_scp_idx);
04390
04391 while (sh_idx != NULL_IDX) {
04392 print_expanded_ir(SH_IR_IDX(sh_idx));
04393 fprintf(debug_file, "\n");
04394 sh_idx = SH_NEXT_IDX(sh_idx);
04395 }
04396
04397 fprintf(debug_file, "\n****************************************"
04398 "****************************************\n");
04399
04400 if (SCP_FIRST_CHILD_IDX(curr_scp_idx) != NULL_IDX) {
04401 save_curr_scp_idx = curr_scp_idx;
04402 curr_scp_idx = SCP_FIRST_CHILD_IDX(curr_scp_idx);
04403 print_expanded_stmt_for_scp();
04404 curr_scp_idx = save_curr_scp_idx;
04405 }
04406
04407 if (SCP_SIBLING_IDX(curr_scp_idx) != NULL_IDX) {
04408 curr_scp_idx = SCP_SIBLING_IDX(curr_scp_idx);
04409 goto PROCESS_SIBLING;
04410 }
04411
04412 return;
04413 }
04414
04415
04416
04417
04418
04419
04420
04421
04422
04423
04424
04425
04426
04427
04428
04429
04430
04431
04432 static void print_expanded_const(int idx)
04433
04434 {
04435 long64 i;
04436 int type_idx;
04437 char str[80];
04438
04439
04440 type_idx = CN_TYPE_IDX(idx);
04441
04442 switch (TYP_TYPE(type_idx)) {
04443 case Typeless:
04444 convert_to_string_fmt = Hex_Fmt;
04445 fprintf(debug_file,"0x%s",
04446 convert_to_string(&CN_CONST(idx), type_idx, str));
04447
04448 if (TYP_BIT_LEN(type_idx) > TARGET_BITS_PER_WORD) {
04449
04450 for (i = 1;
04451 i < (TYP_BIT_LEN(type_idx) + TARGET_BITS_PER_WORD - 1) /
04452 TARGET_BITS_PER_WORD;
04453 i++) {
04454 convert_to_string_fmt = Hex_Fmt;
04455 fprintf(debug_file, "%s",
04456 convert_to_string(&CP_CONSTANT(CN_POOL_IDX(idx)+i),
04457 type_idx,
04458 str));
04459 }
04460 }
04461 break;
04462
04463 case Integer:
04464 fprintf(debug_file, "%s", convert_to_string(&CN_CONST(idx),
04465 type_idx, str));
04466 break;
04467
04468 case Real:
04469 fprintf(debug_file, "%s", convert_to_string(&CN_CONST(idx),
04470 type_idx, str));
04471 break;
04472
04473 case Character:
04474 fprintf(debug_file,"\"%s\"", (char *) &CN_CONST(idx));
04475 break;
04476
04477 case Logical:
04478 fprintf(debug_file, "%s", (THIS_IS_TRUE(&(CN_CONST(idx)),
04479 CN_TYPE_IDX(idx)) ?
04480 ".TRUE." : ".FALSE."));
04481 break;
04482
04483 case Complex:
04484 fprintf(debug_file, "%s", convert_to_string(&CN_CONST(idx),
04485 CN_TYPE_IDX(idx),
04486 str));
04487 break;
04488 }
04489
04490 fprintf(debug_file, " ");
04491
04492 return;
04493
04494 }
04495
04496
04497
04498
04499
04500
04501
04502
04503
04504
04505
04506
04507
04508
04509
04510
04511
04512 static void print_expanded_ir(int ir_idx)
04513
04514 {
04515 switch (IR_OPR(ir_idx)) {
04516 case Null_Opr:
04517 case Defined_Un_Opr:
04518 case Alloc_Opr:
04519 case SSD_Alloc_Opr:
04520 case Cvrt_Opr:
04521 case Dealloc_Opr:
04522 fprintf(debug_file, "%s ", opr_str[IR_OPR(ir_idx)]);
04523 break;
04524
04525
04526
04527 case Uplus_Opr:
04528 case Uminus_Opr:
04529 case Not_Opr:
04530 fprintf(debug_file, "%s ", opr_str[IR_OPR(ir_idx)]);
04531 print_expanded_opnd(IR_OPND_L(ir_idx));
04532 break;
04533
04534
04535
04536 case Power_Opr:
04537 case Mult_Opr:
04538 case Div_Opr:
04539 case Plus_Opr:
04540 case Minus_Opr:
04541 case Concat_Opr:
04542 case Eq_Opr:
04543 case Ne_Opr:
04544 case Lt_Opr:
04545 case Le_Opr:
04546 case Gt_Opr:
04547 case Ge_Opr:
04548 case And_Opr:
04549 case Or_Opr:
04550 case Eqv_Opr:
04551 case Neqv_Opr:
04552 case Asg_Opr:
04553 print_expanded_opnd(IR_OPND_L(ir_idx));
04554 fprintf(debug_file, "%s ", opr_str[IR_OPR(ir_idx)]);
04555 print_expanded_opnd(IR_OPND_R(ir_idx));
04556 break;
04557
04558
04559
04560 case Bnot_Opr:
04561 case Bor_Opr:
04562 case Beqv_Opr:
04563 case Bneqv_Opr:
04564
04565 case Abs_Opr:
04566 case Cos_Opr:
04567 case Sin_Opr:
04568 case Log_E_Opr:
04569 case Log_10_Opr:
04570 case Tan_Opr:
04571 case Tanh_Opr:
04572 case Sinh_Opr:
04573 case Acos_Opr:
04574 case Asin_Opr:
04575 case Atan_Opr:
04576 case Cosh_Opr:
04577 case Atan2_Opr:
04578 case Aimag_Opr:
04579 case Sqrt_Opr:
04580 case Cot_Opr:
04581 case Exp_Opr:
04582 case Int_Opr:
04583 case Band_Opr:
04584 case Mod_Opr:
04585 case Anint_Opr:
04586 case Nint_Opr:
04587 case Sign_Opr:
04588 case Modulo_Opr:
04589 case Shift_Opr:
04590 case Shiftl_Opr:
04591 case Shiftr_Opr:
04592 case Leadz_Opr:
04593 case Popcnt_Opr:
04594 case Poppar_Opr:
04595 case Aint_Opr:
04596 case Dim_Opr:
04597 case Ranget_Opr:
04598 case Ranset_Opr:
04599 case Ranf_Opr:
04600 case Real_Opr:
04601 case Dble_Opr:
04602 case Mask_Opr:
04603 case Conjg_Opr:
04604 case Dprod_Opr:
04605 case Length_Opr:
04606 case Getpos_Opr:
04607 case Unit_Opr:
04608 case Cmplx_Opr:
04609 case Ichar_Opr:
04610 case Char_Opr:
04611 case Index_Opr:
04612 case Lge_Opr:
04613 case Lgt_Opr:
04614 case Lle_Opr:
04615 case Llt_Opr:
04616 case Fcd_Opr:
04617 case Numarg_Opr:
04618 case Rtc_Opr:
04619 case Cvmgp_Opr:
04620 case Cvmgm_Opr:
04621 case Cvmgz_Opr:
04622 case Cvmgn_Opr:
04623 case Cvmgt_Opr:
04624 case Csmg_Opr:
04625 case Adjustl_Opr:
04626 case Adjustr_Opr:
04627 case Ceiling_Opr:
04628 case Exponent_Opr:
04629 case Floor_Opr:
04630 case Fraction_Opr:
04631 case Spacing_Opr:
04632 case Logical_Opr:
04633 case Nearest_Opr:
04634 case Rrspacing_Opr:
04635 case Scale_Opr:
04636 case Scan_Opr:
04637 case Set_Exponent_Opr:
04638 case Verify_Opr:
04639 case Len_Trim_Opr:
04640 case Dshiftl_Opr:
04641 case Dshiftr_Opr:
04642 case Mmx_Opr:
04643 case Mldmx_Opr:
04644 case Mld_Opr:
04645 case Mul_Opr:
04646 case Mcbl_Opr:
04647 case Cshift_Opr:
04648 case Dot_Product_Opr:
04649 case Matmul_Opr:
04650 case Spread_Opr:
04651 case Transpose_Opr:
04652 case All_Opr:
04653 case Any_Opr:
04654 case Count_Opr:
04655 case Product_Opr:
04656 case Sum_Opr:
04657 case Eoshift_Opr:
04658 case Maxval_Opr:
04659 case Minval_Opr:
04660 case Maxloc_Opr:
04661 case Minloc_Opr:
04662 case Reshape_Opr:
04663 case SRK_Opr:
04664 case SIK_Opr:
04665 case Repeat_Opr:
04666 case Trim_Opr:
04667 case Transfer_Opr:
04668 #ifdef KEY
04669 case Erf_Opr:
04670 case Erfc_Opr:
04671 #endif
04672 #ifdef KEY
04673 case Cselect_Opr:
04674 #endif
04675 # ifdef _TARGET_OS_MAX
04676 case My_Pe_Opr:
04677 # endif
04678 fprintf(debug_file, "%s ", opr_str[IR_OPR(ir_idx)]);
04679 print_expanded_opnd(IR_OPND_L(ir_idx));
04680 print_expanded_opnd(IR_OPND_R(ir_idx));
04681 fprintf(debug_file, ")");
04682 break;
04683
04684 case Call_Opr:
04685 fprintf(debug_file, "%s ", opr_str[IR_OPR(ir_idx)]);
04686 print_expanded_opnd(IR_OPND_L(ir_idx));
04687 fprintf(debug_file, "(");
04688 print_expanded_opnd(IR_OPND_R(ir_idx));
04689 fprintf(debug_file, ")");
04690 break;
04691
04692 case Defined_Bin_Opr:
04693
04694 case Alt_Return_Opr:
04695 case Case_Opr:
04696 case Allocate_Opr:
04697 case Deallocate_Opr:
04698 case End_Opr:
04699 case Entry_Opr:
04700 case Nullify_Opr:
04701 case Pause_Opr:
04702 case Ptr_Asg_Opr:
04703 case Flat_Array_Asg_Opr:
04704 case Return_Opr:
04705 case Select_Opr:
04706 case Stmt_Func_Call_Opr:
04707 case Stop_Opr:
04708 case Max_Opr:
04709 case Min_Opr:
04710 case Read_Formatted_Opr:
04711 case Read_Unformatted_Opr:
04712 case Read_Namelist_Opr:
04713 case Write_Formatted_Opr:
04714 case Write_Unformatted_Opr:
04715 case Write_Namelist_Opr:
04716 case Inquire_Iolength_Opr:
04717 case Dv_Whole_Copy_Opr:
04718 case Dv_Whole_Def_Opr:
04719 case Dv_Deref_Opr:
04720 case Dv_Access_Base_Addr:
04721 case Dv_Set_Base_Addr:
04722 case Dv_Access_El_Len:
04723 case Dv_Set_El_Len:
04724 case Dv_Access_Assoc:
04725 case Dv_Set_Assoc:
04726 case Dv_Access_Ptr_Alloc:
04727 case Dv_Set_Ptr_Alloc:
04728 case Dv_Access_P_Or_A:
04729 case Dv_Set_P_Or_A:
04730 case Dv_Access_A_Contig:
04731 case Dv_Set_A_Contig:
04732 case Dv_Access_N_Dim:
04733 case Dv_Set_N_Dim:
04734 case Dv_Access_Typ_Code:
04735 case Dv_Set_Typ_Code:
04736 case Dv_Access_Orig_Base:
04737 case Dv_Set_Orig_Base:
04738 case Dv_Access_Orig_Size:
04739 case Dv_Set_Orig_Size:
04740 case Dv_Access_Low_Bound:
04741 case Dv_Set_Low_Bound:
04742 case Dv_Access_Extent:
04743 case Dv_Set_Extent:
04744 case Dv_Access_Stride_Mult:
04745 case Dv_Set_Stride_Mult:
04746 case Br_Aif_Opr:
04747 case Br_Asg_Opr:
04748 case Br_Index_Opr:
04749 case Br_True_Opr:
04750 case Br_Uncond_Opr:
04751 case Case_Range_Opr:
04752 case Implied_Do_Opr:
04753 case Kwd_Opr:
04754 case Loc_Opr:
04755 case Aloc_Opr:
04756 case Const_Tmp_Loc_Opr:
04757 case Len_Opr:
04758 case Clen_Opr:
04759 case Paren_Opr:
04760 case Struct_Opr:
04761 case Struct_Construct_Opr:
04762 case Array_Construct_Opr:
04763 case Constant_Struct_Construct_Opr:
04764 case Constant_Array_Construct_Opr:
04765 case Subscript_Opr:
04766 case Whole_Subscript_Opr:
04767 case Section_Subscript_Opr:
04768 case Alloc_Obj_Opr:
04769 case Dealloc_Obj_Opr:
04770 case Substring_Opr:
04771 case Whole_Substring_Opr:
04772 case Triplet_Opr:
04773 case Label_Opr:
04774 case Loop_Info_Opr:
04775 case Loop_End_Opr:
04776 case Init_Opr:
04777 case Init_Reloc_Opr:
04778 case Use_Opr:
04779 case Where_Opr:
04780 case Real_Div_To_Int_Opr:
04781 case Suppress_Opr:
04782 case Cache_Bypass_Cdir_Opr:
04783 case Vector_Cdir_Opr:
04784 case Novector_Cdir_Opr:
04785 case Task_Cdir_Opr:
04786 case Notask_Cdir_Opr:
04787 case Bounds_Cdir_Opr:
04788 case Nobounds_Cdir_Opr:
04789 case Recurrence_Cdir_Opr:
04790 case Norecurrence_Cdir_Opr:
04791 case Vsearch_Cdir_Opr:
04792 case Novsearch_Cdir_Opr:
04793 case Bl_Cdir_Opr:
04794 case Nobl_Cdir_Opr:
04795 case Inline_Cdir_Opr:
04796 case Noinline_Cdir_Opr:
04797 case Ivdep_Cdir_Opr:
04798 case Nextscalar_Cdir_Opr:
04799 case Prefervector_Cdir_Opr:
04800 case Prefertask_Cdir_Opr:
04801 case Shortloop_Cdir_Opr:
04802 case Shortloop128_Cdir_Opr:
04803 case Cachealign_Cdir_Opr:
04804 case Nounroll_Cdir_Opr:
04805 case Unroll_Cdir_Opr:
04806 case Align_Cdir_Opr:
04807 case Case_Cmic_Opr:
04808 case Endcase_Cmic_Opr:
04809 case Continue_Cmic_Opr:
04810 case Cncall_Cmic_Opr:
04811 case Doall_Cmic_Opr:
04812 case Doparallel_Cmic_Opr:
04813 case Enddo_Cmic_Opr:
04814 case Guard_Cmic_Opr:
04815 case Endguard_Cmic_Opr:
04816 case Numcpus_Cmic_Opr:
04817 case Parallel_Cmic_Opr:
04818 case Endparallel_Cmic_Opr:
04819 case Permutation_Cmic_Opr:
04820 case Taskcommon_Cmic_Opr:
04821 case Wait_Cmic_Opr:
04822 case Send_Cmic_Opr:
04823 case The_Last_Opr:
04824 fprintf(debug_file, "%s ", opr_str[IR_OPR(ir_idx)]);
04825 print_expanded_opnd(IR_OPND_L(ir_idx));
04826 print_expanded_opnd(IR_OPND_R(ir_idx));
04827 break;
04828
04829 }
04830 return;
04831 }
04832
04833
04834
04835
04836
04837
04838
04839
04840
04841
04842
04843
04844
04845
04846
04847
04848
04849
04850 static void print_expanded_opnd(opnd_type the_opnd)
04851
04852 {
04853 switch(OPND_FLD(the_opnd)) {
04854
04855 case AT_Tbl_Idx:
04856 fprintf(debug_file, "%s ", AT_OBJ_NAME_PTR(OPND_IDX(the_opnd)));
04857 break;
04858
04859 case CN_Tbl_Idx:
04860 print_expanded_const(OPND_IDX(the_opnd));
04861 break;
04862
04863 case IR_Tbl_Idx:
04864 print_expanded_ir(OPND_IDX(the_opnd));
04865 break;
04866
04867 case IL_Tbl_Idx:
04868 print_expanded_il(OPND_IDX(the_opnd));
04869 break;
04870
04871 }
04872
04873 return;
04874 }
04875
04876
04877
04878
04879
04880
04881
04882
04883
04884
04885
04886
04887
04888
04889
04890
04891
04892
04893 static void print_expanded_il(int il_idx)
04894
04895 {
04896 while (il_idx != NULL_IDX) {
04897 switch (IL_FLD(il_idx)) {
04898 case AT_Tbl_Idx:
04899 fprintf(debug_file, "%s ", AT_OBJ_NAME_PTR(IL_IDX(il_idx)));
04900 break;
04901
04902 case CN_Tbl_Idx:
04903 print_expanded_const(IL_IDX(il_idx));
04904 break;
04905
04906 case IR_Tbl_Idx:
04907 print_expanded_ir(IL_IDX(il_idx));
04908 break;
04909
04910 case IL_Tbl_Idx:
04911 print_expanded_il(IL_IDX(il_idx));
04912 break;
04913
04914 case SH_Tbl_Idx:
04915 break;
04916 }
04917 il_idx = IL_NEXT_LIST_IDX(il_idx);
04918
04919 if (il_idx != NULL_IDX) {
04920 fprintf(debug_file, ", ");
04921 }
04922 }
04923
04924 return;
04925
04926 }
04927
04928
04929
04930
04931
04932
04933
04934
04935
04936
04937
04938
04939
04940
04941
04942
04943
04944
04945
04946
04947
04948
04949
04950
04951
04952
04953
04954 static void dump_al_ntry (FILE *out_file,
04955 int al_idx)
04956
04957 {
04958 if (al_idx > attr_list_tbl_idx) {
04959 fprintf(out_file, "\n*FE90-ERROR* AL index value [%d] is out of range.\n",
04960 al_idx);
04961 return;
04962 }
04963
04964 if (AL_IDX_IS_EQ(al_idx)) {
04965 fprintf(out_file, " %-10s= %-6d %-5s= %-6d\n",
04966 "AL_EQ_IDX", AL_EQ_IDX(al_idx),
04967 "NEXT", AL_NEXT_IDX(al_idx));
04968 }
04969 else if (AL_FREE(al_idx)) {
04970 fprintf(out_file, " %-10s= %-6s %-5s= %-6d\n",
04971 "AL_FREE", boolean_str[AL_FREE(al_idx)],
04972 "NEXT", AL_NEXT_IDX(al_idx));
04973 }
04974 else {
04975 fprintf(out_file, " %-4s= %-6d %-4s= %-6d %-14s= %-6d %-s\n",
04976 "ATTR", AL_ATTR_IDX(al_idx),
04977 "NEXT", AL_NEXT_IDX(al_idx),
04978 "Special field", AL_ENTRY_COUNT(al_idx),
04979 AT_OBJ_NAME_PTR(AL_ATTR_IDX(al_idx)));
04980 }
04981
04982 return;
04983
04984 }
04985
04986
04987
04988
04989
04990
04991
04992
04993
04994
04995
04996
04997
04998
04999
05000
05001
05002
05003 static void dump_at_ntry (FILE *out_file,
05004 int at_idx,
05005 boolean dump_all)
05006
05007 {
05008 int il_idx;
05009 int ro_idx;
05010 char str[80];
05011 char conv_str[80];
05012
05013
05014 if (at_idx > attr_tbl_idx) {
05015 fprintf(out_file, "\n*FE90-ERROR* AT index value [%d] is out of range.\n",
05016 at_idx);
05017 return;
05018 }
05019
05020
05021
05022 fprintf(out_file, "%-s\n", AT_OBJ_NAME_PTR(at_idx));
05023
05024 fprintf(out_file, " %-25s %-25s %-16s= %-8d\n",
05025 obj_class_str[AT_OBJ_CLASS(at_idx)],
05026 reference_str[AT_REFERENCED(at_idx)],
05027 "IDX", at_idx);
05028
05029 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05030 "AT_ACCESS_SET", boolean_str[AT_ACCESS_SET(at_idx)],
05031 "AT_ACTUAL_ARG", boolean_str[AT_ACTUAL_ARG(at_idx)],
05032 "AT_ALT_DARG", boolean_str[AT_ALT_DARG(at_idx)]);
05033
05034 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05035 "AT_ARG_TO_KIND", boolean_str[AT_ARG_TO_KIND(at_idx)],
05036 "AT_ATTR_LINK", AT_ATTR_LINK(at_idx),
05037 "AT_CIF_DONE", boolean_str[AT_CIF_DONE(at_idx)]);
05038
05039 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05040 "AT_CIF_IN_USAGE_",boolean_str[AT_CIF_IN_USAGE_REC(at_idx)],
05041 "AT_CIF_SYMBOL_ID", AT_CIF_SYMBOL_ID(at_idx),
05042 "AT_CIF_USE_IN_BN", boolean_str[AT_CIF_USE_IN_BND(at_idx)]);
05043
05044 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05045 "AT_COMPILER_GEND", boolean_str[AT_COMPILER_GEND(at_idx)],
05046 "AT_DCL_ERR", boolean_str[AT_DCL_ERR(at_idx)],
05047 "AT_DEF_COLUMN", AT_DEF_COLUMN(at_idx));
05048
05049 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05050 "AT_DEF_LINE", AT_DEF_LINE(at_idx),
05051 "AT_DEF_IN_CHILD", boolean_str[AT_DEF_IN_CHILD(at_idx)],
05052 "AT_DEFINED", boolean_str[AT_DEFINED(at_idx)]);
05053
05054 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05055 "AT_ELEMENTAL_INT", boolean_str[AT_ELEMENTAL_INTRIN(at_idx)],
05056 "AT_HOST_ASSOCIAT",boolean_str[AT_HOST_ASSOCIATED(at_idx)],
05057 "AT_IGNORE_ATTR_L",boolean_str[AT_IGNORE_ATTR_LINK(at_idx)]);
05058
05059 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05060 "AT_IS_DARG", boolean_str[AT_IS_DARG(at_idx)],
05061 "AT_IS_INTRIN", boolean_str[AT_IS_INTRIN(at_idx)],
05062 "AT_LOCKED_IN", boolean_str[AT_LOCKED_IN(at_idx)]);
05063
05064 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
05065 "AT_MODULE_IDX", AT_MODULE_IDX(at_idx),
05066 "AT_MODULE_OBJECT", boolean_str[AT_MODULE_OBJECT(at_idx)],
05067 "AT_NAME_LEN", AT_NAME_LEN(at_idx));
05068
05069 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05070 "AT_NAMELIST_OBJ", boolean_str[AT_NAMELIST_OBJ(at_idx)],
05071 "AT_NOT_VISIBLE", boolean_str[AT_NOT_VISIBLE(at_idx)],
05072 "AT_ORIG_MODULE_I", AT_ORIG_MODULE_IDX(at_idx));
05073
05074 fprintf(out_file, " %-16s= %-7d %-16s= %-s\n",
05075 "AT_ORIG_NAME_LEN", AT_ORIG_NAME_LEN(at_idx),
05076 "AT_ORIG_NAME_IDX", (AT_ORIG_NAME_IDX(at_idx) == NULL_IDX)
05077 ? "0": AT_ORIG_NAME_PTR(at_idx));
05078
05079 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05080 "AT_OPTIONAL", boolean_str[AT_OPTIONAL(at_idx)],
05081 "AT_PRIVATE", access_str[AT_PRIVATE(at_idx)],
05082 "AT_REF_IN_CHILD", boolean_str[AT_REF_IN_CHILD(at_idx)]);
05083
05084 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05085 "AT_SEMANTICS_DON", boolean_str[AT_SEMANTICS_DONE(at_idx)],
05086 "AT_TYPED", boolean_str[AT_TYPED(at_idx)],
05087 "AT_USE_ASSOCIATE",boolean_str[AT_USE_ASSOCIATED(at_idx)]);
05088
05089
05090
05091 switch (AT_OBJ_CLASS(at_idx)) {
05092
05093 case Data_Obj:
05094
05095 fprintf(out_file, " %-25s %-16s= %-7s %-16s= %-8s\n",
05096 atd_class_str[ATD_CLASS(at_idx)],
05097 "ATD_ALIGN_SYMBOL", boolean_str[ATD_ALIGN_SYMBOL(at_idx)],
05098 "ATD_ALIGNMENT", align_str[ATD_ALIGNMENT(at_idx)]);
05099
05100 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05101 "ATD_ALLOCATABLE", boolean_str[ATD_ALLOCATABLE(at_idx)],
05102 "ATD_ARRAY_IDX", ATD_ARRAY_IDX(at_idx),
05103 "ATD_AUTOMATIC", boolean_str[ATD_AUTOMATIC(at_idx)]);
05104
05105 if (ATD_AUTOMATIC(at_idx)) {
05106 fprintf(out_file, " %-16s= %-7d %-33s\n",
05107 "ATD_AUTO_BASE_ID", ATD_AUTO_BASE_IDX(at_idx),
05108 print_at_name(ATD_AUTO_BASE_IDX(at_idx)));
05109 }
05110
05111 #ifdef KEY
05112 if (ATD_CLASS(at_idx) != Dummy_Argument) {
05113 fprintf(out_file, " %-16s= %-7s\n",
05114 "AT_BIND_ATTR", boolean_str[AT_BIND_ATTR(at_idx)]);
05115 }
05116 #endif
05117 if (ATD_CLASS(at_idx) == Variable) {
05118 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05119 "ATD_ASSIGN_TMP_I", ATD_ASSIGN_TMP_IDX(at_idx),
05120 "ATD_AUXILIARY", boolean_str[ATD_AUXILIARY(at_idx)],
05121 "ATD_BOUNDS_CHECK", boolean_str[ATD_BOUNDS_CHECK(at_idx)]);
05122
05123 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05124 "ATD_CACHE_ALIGN", boolean_str[ATD_CACHE_ALIGN(at_idx)],
05125 "ATD_CACHE_BYPASS", boolean_str[ATD_CACHE_BYPASS_ARRAY(at_idx)],
05126 "ATD_CACHE_NOALLO", boolean_str[ATD_CACHE_NOALLOC(at_idx)]);
05127
05128 fprintf(out_file, " %-16s= %-7s\n",
05129 "ATD_CHAR_LEN_IN_", boolean_str[ATD_CHAR_LEN_IN_DV(at_idx)]);
05130 }
05131 else {
05132 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05133 "ATD_AUXILIARY", boolean_str[ATD_AUXILIARY(at_idx)],
05134 "ATD_BOUNDS_CHECK", boolean_str[ATD_BOUNDS_CHECK(at_idx)],
05135 "ATD_CACHE_BYPASS", boolean_str[ATD_CACHE_BYPASS_ARRAY(at_idx)]);
05136
05137 if (ATD_CLASS(at_idx) == Compiler_Tmp) {
05138 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05139 "ATD_CACHE_NOALLO", boolean_str[ATD_CACHE_NOALLOC(at_idx)],
05140 "ATD_CHAR_LEN_IN_", boolean_str[ATD_CHAR_LEN_IN_DV(at_idx)],
05141 "ATD_DEFINING_ATT", ATD_DEFINING_ATTR_IDX(at_idx));
05142 }
05143 else {
05144 fprintf(out_file, " %-16s= %-7s %-16s= %-7s\n",
05145 "ATD_CACHE_NOALLO", boolean_str[ATD_CACHE_NOALLOC(at_idx)],
05146 "ATD_CHAR_LEN_IN_", boolean_str[ATD_CHAR_LEN_IN_DV(at_idx)]);
05147 }
05148 }
05149
05150
05151 if (ATD_CLASS(at_idx) == Struct_Component) {
05152 fprintf(out_file, " %-16s= %-7d \n",
05153 "ATD_DERIVED_TYPE", ATD_DERIVED_TYPE_IDX(at_idx));
05154
05155 print_fld_idx(out_file, "ATD_CPNT_OFFSET_",
05156 ATD_OFFSET_FLD(at_idx),
05157 ATD_CPNT_OFFSET_IDX(at_idx));
05158
05159 print_fld_idx(out_file, "ATD_CPNT_INIT_ID",
05160 (fld_type) ATD_FLD(at_idx),
05161 ATD_CPNT_INIT_IDX(at_idx));
05162
05163 if (ATD_CPNT_INIT_IDX(at_idx) != NULL_IDX) {
05164
05165 if (ATD_FLD(at_idx) == IR_Tbl_Idx) {
05166 dump_ir_ntry(out_file, ATD_CPNT_INIT_IDX(at_idx), 5);
05167 }
05168 else if (ATD_FLD(at_idx) == CN_Tbl_Idx) {
05169 dump_cn_ntry(out_file, ATD_CPNT_INIT_IDX(at_idx));
05170 }
05171 }
05172 }
05173 else if (ATD_CLASS(at_idx) == Constant) {
05174 print_fld_idx(out_file, "ATD_CONST_IDX",
05175 (fld_type) ATD_FLD(at_idx),
05176 ATD_CONST_IDX(at_idx));
05177 }
05178
05179 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05180 "ATD_COPY_ASSUMED",boolean_str[ATD_COPY_ASSUMED_SHAPE(at_idx)],
05181 "ATD_DATA_INIT", boolean_str[ATD_DATA_INIT(at_idx)],
05182 "ATD_DCL_EQUIV", boolean_str[ATD_DCL_EQUIV(at_idx)]);
05183
05184 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05185 "ATD_DISTRIBUTION", ATD_DISTRIBUTION_IDX(at_idx),
05186 "ATD_WAS_SCOPED", boolean_str[ATD_WAS_SCOPED(at_idx)],
05187 "ATD_DYNAMIC", boolean_str[ATD_DYNAMIC(at_idx)]);
05188
05189 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05190 "ATD_EQUIV", boolean_str[ATD_EQUIV(at_idx)],
05191 "ATD_EQUIV_IN_BND",boolean_str[ATD_EQUIV_IN_BNDS_EXPR(at_idx)],
05192 "ATD_EQUIV_LIST", ATD_EQUIV_LIST(at_idx));
05193
05194 if (ATD_EQUIV_LIST(at_idx) != NULL_IDX) {
05195 print_al_list(out_file, ATD_EQUIV_LIST(at_idx));
05196 }
05197
05198 # if defined(_EXPRESSION_EVAL)
05199
05200 if (cmd_line_flags.expression_eval_stmt ||
05201 cmd_line_flags.expression_eval_expr) {
05202 fprintf(out_file, " %-16s= %-7s\n",
05203 "ATD_EXPR_EVAL_TMP", boolean_str[ATD_EXPR_EVAL_TMP(at_idx)]);
05204 }
05205 # endif
05206
05207 fprintf(out_file," %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05208 "ATD_FILL_SYMBOL", boolean_str[ATD_FILL_SYMBOL(at_idx)],
05209 "ATD_FIRST_SEEN_I", ATD_FIRST_SEEN_IL_IDX(at_idx),
05210 "ATD_FORALL_INDEX",boolean_str[ATD_FORALL_INDEX(at_idx)]);
05211
05212 if (ATD_CLASS(at_idx) == Function_Result) {
05213 fprintf(out_file, " %-16s= %-s\n",
05214 "Function Name", print_at_name(ATD_FUNC_IDX(at_idx)));
05215 }
05216 else if (ATD_CLASS(at_idx) == Dummy_Argument) {
05217 #ifdef KEY
05218 fprintf(out_file," %-16s= %-7s %-16s= %-7s %-16s= %-7s\n",
05219 "ATD_INTENT",intent_str[ATD_INTENT(at_idx)],
05220 "ATD_INTRIN_DARG", boolean_str[ATD_INTRIN_DARG(at_idx)],
05221 "ATD_VALUE_ATTR", boolean_str[ATD_VALUE_ATTR(at_idx)]
05222 );
05223 #else
05224 fprintf(out_file," %-16s= %-7s %-16s= %-7s\n",
05225 "ATD_INTENT",intent_str[ATD_INTENT(at_idx)],
05226 "ATD_INTRIN_DARG", boolean_str[ATD_INTRIN_DARG(at_idx)]);
05227 #endif
05228
05229 if (ATD_INTRIN_DARG(at_idx)) {
05230 fprintf(out_file," %-20s= %-22o\n",
05231 "ATD_INTRIN_DARG_TYPE", ATD_INTRIN_DARG_TYPE(at_idx));
05232 }
05233 }
05234
05235 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05236 "ATD_IGNORE_TKR", boolean_str[ATD_IGNORE_TKR(at_idx)],
05237 "ATD_IM_A_DOPE", boolean_str[ATD_IM_A_DOPE(at_idx)],
05238 "ATD_IMP_DO_LCV", boolean_str[ATD_IMP_DO_LCV(at_idx)]);
05239
05240 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05241 "ATD_IN_ASSIGN", boolean_str[ATD_IN_ASSIGN(at_idx)],
05242 "ATD_IN_COMMON", boolean_str[ATD_IN_COMMON(at_idx)],
05243 "ATD_LCV_IS_CONST", boolean_str[ATD_LCV_IS_CONST(at_idx)]);
05244
05245 if (ATD_CLASS(at_idx) == Compiler_Tmp ||
05246 ATD_CLASS(at_idx) == Dummy_Argument) {
05247
05248 if (ATD_NO_ENTRY_LIST(at_idx) != NULL_IDX) {
05249 fprintf(out_file,"\n");
05250 print_al_list(out_file, ATD_NO_ENTRY_LIST(at_idx));
05251 }
05252 }
05253
05254 if ((ATD_CLASS(at_idx) == Variable ||
05255 ATD_CLASS(at_idx) == Compiler_Tmp) &&
05256 ATD_IN_COMMON(at_idx)) {
05257 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05258 "ATD_LIVE_DO_VAR", boolean_str[ATD_LIVE_DO_VAR(at_idx)],
05259 "ATD_NEXT_MEMBER_", ATD_NEXT_MEMBER_IDX(at_idx),
05260 "ATD_NOBOUNDS_CHE",boolean_str[ATD_NOBOUNDS_CHECK(at_idx)]);
05261
05262 fprintf(out_file, " %-16s= %-7s %-16s= %-7s\n",
05263 "ATD_NOT_PT_UNIQU", boolean_str[ATD_NOT_PT_UNIQUE_MEM(at_idx)],
05264 "ATD_OFFSET_ASSIG",boolean_str[ATD_OFFSET_ASSIGNED(at_idx)]);
05265 }
05266 else {
05267 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-7s\n",
05268 "ATD_LIVE_DO_VAR", boolean_str[ATD_LIVE_DO_VAR(at_idx)],
05269 "ATD_NOBOUNDS_CHE",boolean_str[ATD_NOBOUNDS_CHECK(at_idx)],
05270 "ATD_NOT_PT_UNIQU", boolean_str[ATD_NOT_PT_UNIQUE_MEM(at_idx)]);
05271
05272 fprintf(out_file, " %-16s= %-7s\n",
05273 "ATD_OFFSET_ASSIG",boolean_str[ATD_OFFSET_ASSIGNED(at_idx)]);
05274 }
05275
05276 if ((ATD_CLASS(at_idx) == Variable && !ATD_AUTOMATIC(at_idx)) ||
05277 ((ATD_CLASS(at_idx) == Dummy_Argument ||
05278 ATD_CLASS(at_idx) == Compiler_Tmp) &&
05279 ATD_OFFSET_ASSIGNED(at_idx)) ||
05280 ATD_CLASS(at_idx) == Function_Result) {
05281 print_fld_idx(out_file, "ATD_OFFSET_IDX",
05282 ATD_OFFSET_FLD(at_idx),
05283 ATD_OFFSET_IDX(at_idx));
05284 }
05285 else if (ATD_CLASS(at_idx) == CRI__Pointee) {
05286 fprintf(out_file," %-16s= %-7d %-s\n",
05287 "Pointer Name", ATD_PTR_IDX(at_idx),
05288 print_at_name(ATD_PTR_IDX(at_idx)));
05289 }
05290
05291 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05292 "ATD_PARENT_OBJEC",boolean_str[ATD_PARENT_OBJECT(at_idx)],
05293 "ATD_PE_ARRAY_IDX", ATD_PE_ARRAY_IDX(at_idx),
05294 "ATD_PERMUTATION", boolean_str[ATD_PERMUTATION(at_idx)]);
05295
05296 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05297 "ATD_POINTER", boolean_str[ATD_POINTER(at_idx)],
05298 "ATD_PTR_ASSIGNED", boolean_str[ATD_PTR_ASSIGNED(at_idx)],
05299 "ATD_PTR_HALF_WOR", boolean_str[ATD_PTR_HALF_WORD(at_idx)]);
05300
05301 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05302 "ATD_PTR_TYPE_SET",boolean_str[ATD_PTR_TYPE_SET(at_idx)],
05303 "ATD_PURE",boolean_str[ATD_PURE(at_idx)],
05304 "ATD_RESHAPE ARRA",boolean_str[ATD_RESHAPE_ARRAY_OPT(at_idx)]);
05305
05306 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05307 "ATD_RESHAPE_IDX", ATD_RESHAPE_ARRAY_IDX(at_idx),
05308 "ATD_SAVED", boolean_str[ATD_SAVED(at_idx)],
05309 "ATD_SECTION_GP", boolean_str[ATD_SECTION_GP(at_idx)]);
05310
05311 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05312 "ATD_SECTION_NON_", boolean_str[ATD_SECTION_NON_GP(at_idx)],
05313 "ATD_SEEN_AS_LCV", boolean_str[ATD_SEEN_AS_LCV(at_idx)],
05314 "ATD_SEEN_AS_IO_", boolean_str[ATD_SEEN_AS_IO_LCV(at_idx)]);
05315
05316
05317 if (ATD_CLASS(at_idx) == Dummy_Argument) {
05318
05319 if (ATD_SF_DARG(at_idx)) {
05320 print_fld_idx(out_file, "ATD_SF_ARG_IDX",
05321 (fld_type) ATD_FLD(at_idx),
05322 ATD_SF_ARG_IDX(at_idx));
05323
05324 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05325 "ATD_SF_LINK", ATD_SF_LINK(at_idx),
05326 "ATD_SYMBOLIC_CON",boolean_str[ATD_SYMBOLIC_CONSTANT(at_idx)],
05327 "ATD_SYMMETRIC", boolean_str[ATD_SYMMETRIC(at_idx)]);
05328 }
05329 else {
05330 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05331 "ATD_SF_DARG", boolean_str[ATD_SF_DARG(at_idx)],
05332 "ATD_SYMBOLIC_CON",boolean_str[ATD_SYMBOLIC_CONSTANT(at_idx)],
05333 "ATD_SYMMETRIC", boolean_str[ATD_SYMMETRIC(at_idx)]);
05334 }
05335
05336 fprintf(out_file, " %-16s= %-7s\n",
05337 "ATD_SEEN_IN_IMP", boolean_str[ATD_SEEN_IN_IMP_DO(at_idx)]);
05338 }
05339 else {
05340 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05341 "ATD_SEEN_IN_IMP", boolean_str[ATD_SEEN_IN_IMP_DO(at_idx)],
05342 "ATD_SYMBOLIC_CON",boolean_str[ATD_SYMBOLIC_CONSTANT(at_idx)],
05343 "ATD_SYMMETRIC", boolean_str[ATD_SYMMETRIC(at_idx)]);
05344 }
05345
05346 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05347 "ATD_SEEN_OUTSID",boolean_str[ATD_SEEN_OUTSIDE_IMP_DO(at_idx)],
05348 "ATD_STACK", boolean_str[ATD_STACK(at_idx)],
05349 "ATD_STOR_BLK_IDX", ATD_STOR_BLK_IDX(at_idx));
05350
05351 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05352 "ATD_TARGET", boolean_str[ATD_TARGET(at_idx)],
05353 "ATD_TASK_COPYIN", boolean_str[ATD_TASK_COPYIN(at_idx)],
05354 "ATD_TASK_FIRSTPR",boolean_str[ATD_TASK_FIRSTPRIVATE(at_idx)]);
05355
05356 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05357 "ATD_TASK_GETFIRS", boolean_str[ATD_TASK_GETFIRST(at_idx)],
05358 "ATD_TASK_LASTLOC",boolean_str[ATD_TASK_LASTLOCAL(at_idx)],
05359 "ATD_TASK_LASTPRI", boolean_str[ATD_TASK_LASTPRIVATE(at_idx)]);
05360
05361 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05362 "ATD_TASK_LASTTHR",boolean_str[ATD_TASK_LASTTHREAD(at_idx)],
05363 "ATD_TASK_PRIVATE", boolean_str[ATD_TASK_PRIVATE(at_idx)],
05364 "ATD_TASK_SHARED", boolean_str[ATD_TASK_SHARED(at_idx)]);
05365
05366
05367 if (ATD_CLASS(at_idx) == Compiler_Tmp) {
05368 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05369 "ATD_TMP_GEN_ZERO", boolean_str[ATD_TMP_GEN_ZERO(at_idx)],
05370 "ATD_TMP_HAS_CVRT", boolean_str[ATD_TMP_HAS_CVRT_OPR(at_idx)],
05371 "ATD_TMP_INIT_NOT",boolean_str[ATD_TMP_INIT_NOT_DONE(at_idx)]);
05372
05373 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s=%-7s\n",
05374 "ATD_TMP_NEEDS_CI",boolean_str[ATD_TMP_NEEDS_CIF(at_idx)],
05375 "ATD_TMP_SEMANTIC",boolean_str[ATD_TMP_SEMANTICS_DONE(at_idx)],
05376 "ATD_TOO_BIG_FOR_",boolean_str[ATD_TOO_BIG_FOR_DV(at_idx)]);
05377
05378 print_fld_idx(out_file, "ATD_TMP_IDX",
05379 (fld_type) ATD_FLD(at_idx),
05380 ATD_TMP_IDX(at_idx));
05381
05382 if (ATD_SYMBOLIC_CONSTANT(at_idx) && ATD_FLD(at_idx) == IR_Tbl_Idx){
05383 dump_ir_ntry(out_file, ATD_TMP_IDX(at_idx), 4);
05384 }
05385
05386 if (ATD_TMP_INIT_NOT_DONE(at_idx)) {
05387 fprintf(out_file, "\nCONSTANT FOR INIT\n");
05388
05389 if (ATD_FLD(at_idx) == CN_Tbl_Idx) {
05390 dump_cn_ntry(out_file, ATD_TMP_IDX(at_idx));
05391 }
05392 else {
05393 fprintf(out_file, "COUNT = \n");
05394 dump_cn_ntry(out_file, IR_IDX_L(ATD_TMP_IDX(at_idx)));
05395 fprintf(out_file, "VALUE = \n");
05396 dump_cn_ntry(out_file, IR_IDX_R(ATD_TMP_IDX(at_idx)));
05397 }
05398
05399 }
05400 }
05401 else {
05402 fprintf(out_file, " %-16s= %-7s\n",
05403 "ATD_TOO_BIG_FOR_",boolean_str[ATD_TOO_BIG_FOR_DV(at_idx)]);
05404 }
05405
05406 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-s\n",
05407 "ATD_VOLATILE",boolean_str[ATD_VOLATILE(at_idx)],
05408 "ATD_TYPE_IDX", ATD_TYPE_IDX(at_idx),
05409 print_type_f(ATD_TYPE_IDX(at_idx)));
05410
05411 if (ATD_CLASS(at_idx) == Variable) {
05412 fprintf(out_file," %-16s= %-7d\n",
05413 "ATD_VARIABLE_TMP", ATD_VARIABLE_TMP_IDX(at_idx));
05414 }
05415
05416 if (dump_all && ATD_STOR_BLK_IDX(at_idx) != NULL_IDX) {
05417 fprintf(out_file, "\n");
05418 dump_sb_ntry(out_file, ATD_STOR_BLK_IDX(at_idx));
05419 }
05420
05421 if (dump_all && ATD_ARRAY_IDX(at_idx) != NULL_IDX) {
05422 fprintf(out_file, "\n");
05423 dump_bd_ntry(out_file, ATD_ARRAY_IDX(at_idx));
05424 }
05425
05426 if (dump_all && ATD_DISTRIBUTION_IDX(at_idx) != NULL_IDX) {
05427 fprintf(out_file, "\n");
05428 fprintf(out_file, "ATD_DISTRIBUTION_IDX bounds table dump\n");
05429 dump_bd_ntry(out_file, ATD_DISTRIBUTION_IDX(at_idx));
05430 }
05431
05432 #ifdef _F_MINUS_MINUS
05433 if (dump_all && ATD_PE_ARRAY_IDX(at_idx) != NULL_IDX) {
05434 fprintf(out_file, "\n");
05435 fprintf(out_file, "ATD_PE_ARRAY_IDX bounds table dump\n");
05436 dump_bd_ntry(out_file, ATD_PE_ARRAY_IDX(at_idx));
05437 }
05438 # endif
05439
05440 break;
05441
05442
05443 case Pgm_Unit:
05444 fprintf(out_file, " %-25s %-25s %-16s= %-8s\n",
05445 atp_pgm_unit_str[ATP_PGM_UNIT(at_idx)],
05446 atp_proc_str[ATP_PROC(at_idx)],
05447 "ATP_ALIGN", boolean_str[ATP_ALIGN(at_idx)]);
05448
05449 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05450 "ATP_ALL_INTENT_I", boolean_str[ATP_ALL_INTENT_IN(at_idx)],
05451 "ATP_ALT_ENTRY", boolean_str[ATP_ALT_ENTRY(at_idx)],
05452 "ATP_ARGCHCK_CALL", boolean_str[ATP_ARGCHCK_CALL(at_idx)]);
05453
05454 if (ATP_PGM_UNIT(at_idx) != Module) {
05455 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05456 "ATP_ARGCHCK_ENTR", boolean_str[ATP_ARGCHCK_ENTRY(at_idx)],
05457 "ATP_DCL_EXTERNAL", boolean_str[ATP_DCL_EXTERNAL(at_idx)],
05458 "ATP_DUPLICATE_IN", ATP_DUPLICATE_INTERFACE_IDX(at_idx));
05459
05460 #ifdef KEY
05461 if (ATP_PGM_UNIT(at_idx) == Function ||
05462 ATP_PGM_UNIT(at_idx) == Pgm_Unknown ||
05463 ATP_PGM_UNIT(at_idx) == Subroutine) {
05464 fprintf(out_file, " %-16s= %-7s\n",
05465 "AT_BIND_ATTR", boolean_str[AT_BIND_ATTR(at_idx)]);
05466 }
05467 #endif
05468 if (ATP_PROC(at_idx) == Dummy_Proc) {
05469 fprintf(out_file, " %-16s= %-7s %-16s= %-7d\n",
05470 "ATP_CIF_DARG_PRO", boolean_str[ATP_CIF_DARG_PROC(at_idx)],
05471 "ATP_DUMMY_PROC_L", ATP_DUMMY_PROC_LINK(at_idx));
05472 }
05473
05474 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05475 "ATP_ELEMENTAL", boolean_str[ATP_ELEMENTAL(at_idx)],
05476 "ATP_ENTRY_LABEL_", ATP_ENTRY_LABEL_SH_IDX(at_idx),
05477 "ATP_EXPL_ITRFC", boolean_str[ATP_EXPL_ITRFC(at_idx)]);
05478
05479 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-s\n",
05480 "ATP_EXT_NAME_IDX", ATP_EXT_NAME_IDX(at_idx),
05481 "ATP_EXT_NAME_LEN", ATP_EXT_NAME_LEN(at_idx),
05482 ATP_EXT_NAME_PTR(at_idx));
05483
05484 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05485 "ATP_EXTERNAL_INT",boolean_str[ATP_EXTERNAL_INTRIN(at_idx)],
05486 "ATP_EXTRA_DARG", boolean_str[ATP_EXTRA_DARG(at_idx)],
05487 "ATP_FIRST_IDX", ATP_FIRST_IDX(at_idx));
05488
05489 if (ATP_PROC(at_idx) == Extern_Proc) {
05490 fprintf(out_file, " %-16s= %-7d %-16s= %-7d\n",
05491 "ATP_FIRST_SH_IDX", ATP_FIRST_SH_IDX(at_idx),
05492 "ATP_GLOBAL_ATTR_", ATP_GLOBAL_ATTR_IDX(at_idx));
05493 }
05494 else {
05495 fprintf(out_file, " %-16s= %-7d\n",
05496 "ATP_GLOBAL_ATTR_", ATP_GLOBAL_ATTR_IDX(at_idx));
05497 }
05498
05499 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05500 "ATP_HAS_ALT_RET", boolean_str[ATP_HAS_ALT_RETURN(at_idx)],
05501 "ATP_HAS_OVER_IND",boolean_str[ATP_HAS_OVER_INDEXING(at_idx)],
05502 "ATP_HAS_TASK_DIR", boolean_str[ATP_HAS_TASK_DIRS(at_idx)]);
05503
05504 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05505 "ATP_IN_INTERFACE",boolean_str[ATP_IN_INTERFACE_BLK(at_idx)],
05506 "ATP_IN_UNNAMED_I",boolean_str[ATP_IN_UNNAMED_INTERFACE(at_idx)],
05507 "ATP_INLINE_ALWAY",boolean_str[ATP_INLINE_ALWAYS(at_idx)]);
05508
05509 if (ATP_PROC(at_idx) == Intrin_Proc) {
05510 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05511 "ATP_INLINE_NEVER",boolean_str[ATP_INLINE_NEVER(at_idx)],
05512 "ATP_INTERFACE_ID", ATP_INTERFACE_IDX(at_idx),
05513 "ATP_INTRIN_ENUM", intrin_str[ATP_INTRIN_ENUM(at_idx)]);
05514
05515 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05516 "ATP_MAY_INLINE", boolean_str[ATP_MAY_INLINE(at_idx)],
05517 "ATP_NAME_IN_STON", boolean_str[ATP_NAME_IN_STONE(at_idx)],
05518 "ATP_NO_ENTRY_LIS", ATP_NO_ENTRY_LIST(at_idx));
05519
05520 if (ATP_NO_ENTRY_LIST(at_idx) != NULL_IDX) {
05521 print_al_list(out_file, ATP_NO_ENTRY_LIST(at_idx));
05522 }
05523
05524 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05525 "ATP_NON_ANSI_INT",boolean_str[ATP_NON_ANSI_INTRIN(at_idx)],
05526 "ATP_NOSIDE_EFFEC", boolean_str[ATP_NOSIDE_EFFECTS(at_idx)],
05527 "ATP_NUM_DARGS", ATP_NUM_DARGS(at_idx));
05528
05529 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05530 "ATP_OPTIONAL_DIR",boolean_str[ATP_OPTIONAL_DIR(at_idx)],
05531 "ATP_PURE", boolean_str[ATP_PURE(at_idx)],
05532 "ATP_RECURSIVE", boolean_str[ATP_RECURSIVE(at_idx)]);
05533 }
05534 else {
05535 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05536 "ATP_INLINE_NEVER",boolean_str[ATP_INLINE_NEVER(at_idx)],
05537 "ATP_MAY_INLINE", boolean_str[ATP_MAY_INLINE(at_idx)],
05538 "ATP_NAME_IN_STON", boolean_str[ATP_NAME_IN_STONE(at_idx)]);
05539
05540 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05541 "ATP_NO_ENTRY_LIS", ATP_NO_ENTRY_LIST(at_idx),
05542 "ATP_NON_ANSI_INT",boolean_str[ATP_NON_ANSI_INTRIN(at_idx)],
05543 "ATP_NOSIDE_EFFEC", boolean_str[ATP_NOSIDE_EFFECTS(at_idx)]);
05544
05545 if (ATP_NO_ENTRY_LIST(at_idx) != NULL_IDX) {
05546 print_al_list(out_file, ATP_NO_ENTRY_LIST(at_idx));
05547 }
05548
05549 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
05550 "ATP_NUM_DARGS", ATP_NUM_DARGS(at_idx),
05551 "ATP_OPTIONAL_DIR",boolean_str[ATP_OPTIONAL_DIR(at_idx)],
05552 "ATP_PARENT_IDX", ATP_PARENT_IDX(at_idx));
05553
05554 fprintf(out_file, " %-16s= %-7s %-16s= %-7s\n",
05555 "ATP_PURE", boolean_str[ATP_PURE(at_idx)],
05556 "ATP_RECURSIVE", boolean_str[ATP_RECURSIVE(at_idx)]);
05557 }
05558
05559 if (ATP_RSLT_IDX(at_idx) != NULL_IDX) {
05560 fprintf(out_file, " %-16s= %-7s %-s\n",
05561 "ATP_RSLT_NAME", boolean_str[ATP_RSLT_NAME(at_idx)],
05562 AT_OBJ_NAME_PTR(ATP_RSLT_IDX(at_idx)));
05563 }
05564
05565 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05566 "ATP_RSLT_IDX", ATP_RSLT_IDX(at_idx),
05567 "ATP_SAVE_ALL", boolean_str[ATP_SAVE_ALL(at_idx)],
05568 "ATP_SCP_ALIVE", boolean_str[ATP_SCP_ALIVE(at_idx)]);
05569
05570 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05571 "ATP_SCP_IDX", ATP_SCP_IDX(at_idx),
05572 "ATP_SGI_RTN_INL", boolean_str[ATP_SGI_ROUTINE_INLINE(at_idx)],
05573 "ATP_SGI_RTN_NOIN",boolean_str[ATP_SGI_ROUTINE_NOINLINE(at_idx)]);
05574
05575 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05576 "ATP_SGI_GLB_INL",boolean_str[ATP_SGI_GLOBAL_INLINE(at_idx)],
05577 "ATP_SGI_GLB_NOIN",boolean_str[ATP_SGI_GLOBAL_NOINLINE(at_idx)],
05578 "ATP_SGI_LOC_INL", boolean_str[ATP_SGI_LOCAL_INLINE(at_idx)]);
05579
05580 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05581 "ATP_SGI_LOC_NOIN",boolean_str[ATP_SGI_LOCAL_NOINLINE(at_idx)],
05582 "ATP_STACK_DIR",boolean_str[ATP_STACK_DIR(at_idx)],
05583 "ATP_SYMMETRIC",boolean_str[ATP_SYMMETRIC(at_idx)]);
05584
05585 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05586 "ATP_TASK_SHARED",boolean_str[ATP_TASK_SHARED(at_idx)],
05587 "ATP_USES_EREGS",boolean_str[ATP_USES_EREGS(at_idx)],
05588 "ATP_VFUNCTION",boolean_str[ATP_VFUNCTION(at_idx)]);
05589 }
05590 else {
05591
05592 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05593 "ATP_ARGCHCK_ENTR", boolean_str[ATP_ARGCHCK_ENTRY(at_idx)],
05594 "ATP_DCL_EXTERNAL",boolean_str[ATP_DCL_EXTERNAL(at_idx)],
05595 "ATP_ENTRY_LABEL_", ATP_ENTRY_LABEL_SH_IDX(at_idx));
05596
05597 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05598 "ATP_EXPL_ITRFC", boolean_str[ATP_EXPL_ITRFC(at_idx)],
05599 "ATP_EXTERNAL_INT",boolean_str[ATP_EXTERNAL_INTRIN(at_idx)],
05600 "ATP_EXTRA_DARG", boolean_str[ATP_EXTRA_DARG(at_idx)]);
05601
05602 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-s\n",
05603 "ATP_EXT_NAME_IDX", ATP_EXT_NAME_IDX(at_idx),
05604 "ATP_EXT_NAME_LEN", ATP_EXT_NAME_LEN(at_idx),
05605 ATP_EXT_NAME_PTR(at_idx));
05606
05607 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05608 "ATP_GLOBAL_ATTR_", ATP_GLOBAL_ATTR_IDX(at_idx),
05609 "ATP_HAS_ALT_RET", boolean_str[ATP_HAS_ALT_RETURN(at_idx)],
05610 "ATP_HAS_OVER_IND", boolean_str[ATP_HAS_OVER_INDEXING(at_idx)]);
05611
05612 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-7s\n",
05613 "ATP_HAS_TASK_DIR", boolean_str[ATP_HAS_TASK_DIRS(at_idx)],
05614 "ATP_IMPLICIT_USE", boolean_str[ATP_IMPLICIT_USE_MODULE(at_idx)],
05615 "ATP_INDIRECT_MOD", boolean_str[ATP_INDIRECT_MODULE(at_idx)]);
05616
05617 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05618 "ATP_IN_CURRENT_", boolean_str[ATP_IN_CURRENT_COMPILE(at_idx)],
05619 "ATP_IN_INTERFACE", boolean_str[ATP_IN_INTERFACE_BLK(at_idx)],
05620 "ATP_INLINE_ALWAY", boolean_str[ATP_INLINE_ALWAYS(at_idx)]);
05621
05622 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05623 "ATP_INLINE_NEVER", boolean_str[ATP_INLINE_NEVER(at_idx)],
05624 "ATP_MAY_INLINE", boolean_str[ATP_MAY_INLINE(at_idx)],
05625 "ATP_MODULE_STR_I", ATP_MODULE_STR_IDX(at_idx));
05626
05627 if (ATP_MOD_PATH_IDX(at_idx) != NULL_IDX) {
05628 fprintf(out_file," %-16s= %-7d %-16s= %-s\n",
05629 "ATP_MOD_PATH_LEN", ATP_MOD_PATH_LEN(at_idx),
05630 "ATP_MOD_PATH_IDX", ATP_MOD_PATH_NAME_PTR(at_idx));
05631 }
05632
05633 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05634 "ATP_NOSIDE_EFFEC", boolean_str[ATP_NOSIDE_EFFECTS(at_idx)],
05635 "ATP_RECURSIVE", boolean_str[ATP_RECURSIVE(at_idx)],
05636 "ATP_RSLT_NAME", boolean_str[ATP_RSLT_NAME(at_idx)]);
05637
05638 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
05639 "ATP_SAVE_ALL", boolean_str[ATP_SAVE_ALL(at_idx)],
05640 "ATP_SCP_ALIVE", boolean_str[ATP_SCP_ALIVE(at_idx)],
05641 "ATP_SCP_IDX", ATP_SCP_IDX(at_idx));
05642
05643 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05644 "ATP_STACK_DIR",boolean_str[ATP_STACK_DIR(at_idx)],
05645 "ATP_SYSTEM_MODUL", boolean_str[ATP_SYSTEM_MODULE(at_idx)],
05646 "ATP_TASK_SHARED",boolean_str[ATP_TASK_SHARED(at_idx)]);
05647
05648 fprintf(out_file, " %-16s= %-7d %-25s\n",
05649 "ATP_USE_LIST", ATP_USE_LIST(at_idx),
05650 use_type_str[ATP_USE_TYPE(at_idx)]);
05651
05652 #ifdef KEY
05653 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-7s\n",
05654 "ATP_USES_EREGS",boolean_str[ATP_USES_EREGS(at_idx)],
05655 "ATP_VFUNCTION",boolean_str[ATP_VFUNCTION(at_idx)],
05656 "ATT_NON_INTRIN",boolean_str[ATT_NON_INTRIN(at_idx)]);
05657 fprintf(out_file, " %-16s= %-7s\n", "ATT_NO_MODULE_NA",
05658 boolean_str[ATT_NO_MODULE_NATURE(at_idx)]);
05659 #else
05660 fprintf(out_file, " %-16s= %-7s %-16s= %-7s\n",
05661 "ATP_USES_EREGS",boolean_str[ATP_USES_EREGS(at_idx)],
05662 "ATP_VFUNCTION",boolean_str[ATP_VFUNCTION(at_idx)]);
05663 #endif
05664
05665 if (ATP_USE_LIST(at_idx) != NULL_IDX) {
05666 ro_idx = ATP_USE_LIST(at_idx);
05667
05668 while (ro_idx != NULL_IDX) {
05669 dump_ro_ntry(out_file, ro_idx);
05670 ro_idx = RO_NEXT_IDX(ro_idx);
05671 }
05672 }
05673 }
05674
05675 fprintf(out_file, "\n");
05676
05677 if (dump_all) {
05678
05679
05680
05681
05682
05683
05684
05685 if (ATP_PGM_UNIT(at_idx) <= Subroutine) {
05686
05687 if (ATP_RSLT_IDX(at_idx) != NULL_IDX) {
05688 fprintf(out_file, "\n");
05689 dump_at_ntry (out_file, ATP_RSLT_IDX(at_idx), dump_all);
05690 }
05691
05692 if (ATP_FIRST_IDX(at_idx) != NULL_IDX) {
05693 loop_thru_sn_ntries(out_file, at_idx, FALSE);
05694 }
05695 }
05696 }
05697
05698 break;
05699
05700 case Label:
05701 fprintf(out_file, " %-25s %-16s= %-7s %-16s= %-8s\n",
05702 atl_class_str[ATL_CLASS(at_idx)],
05703 "ATL_ALIGN", boolean_str[ATL_ALIGN(at_idx)],
05704 "ATL_AGGRESSIVEIN",
05705 boolean_str[ATL_AGGRESSIVEINNERLOOPFISSION(at_idx)]);
05706
05707
05708 if (ATL_CLASS(at_idx) <= Lbl_User) {
05709 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
05710 "ATL_ASG_LBL_CHAI",ATL_ASG_LBL_CHAIN_START(at_idx),
05711 "ATL_BL", boolean_str[ATL_BL(at_idx)],
05712 "ATL_BLK_STMT_IDX", ATL_BLK_STMT_IDX(at_idx));
05713
05714 fprintf(out_file, " %-16s= %-7s %-16s= %-7d\n",
05715 "ATL_CASE_LABEL", boolean_str[ATL_CASE_LABEL(at_idx)],
05716 "ATL_CMIC_BLK_STM", ATL_CMIC_BLK_STMT_IDX(at_idx));
05717 }
05718 else {
05719 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05720 "ATL_ASG_LBL_CHAI",ATL_ASG_LBL_CHAIN_START(at_idx),
05721 "ATL_BL", boolean_str[ATL_BL(at_idx)],
05722 "ATL_CASE_LABEL", boolean_str[ATL_CASE_LABEL(at_idx)]);
05723 }
05724
05725 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05726 "ATL_CNCALL", boolean_str[ATL_CNCALL(at_idx)],
05727 "ATL_CONSTRUCTOR_", boolean_str[ATL_CONSTRUCTOR_LOOP(at_idx)],
05728 "ATL_CYCLE_LBL", boolean_str[ATL_CYCLE_LBL(at_idx)]);
05729
05730 fprintf(out_file, " %-16s= %-33s %-16s= %-8d\n",
05731 "ATL_DEBUG_CLASS", atl_debug_class_str[ATL_DEBUG_CLASS(at_idx)],
05732 "ATL_DIRECTIVE_LI", ATL_DIRECTIVE_LIST(at_idx));
05733
05734 if (ATL_DIRECTIVE_LIST(at_idx) != NULL_IDX) {
05735 il_idx = IL_IDX(ATL_DIRECTIVE_LIST(at_idx)) + Safevl_Dir_Idx;
05736
05737 fprintf(out_file, " %-16s= %-7s", "safevl",
05738 (IL_FLD(il_idx) == CN_Tbl_Idx) ? convert_to_string(
05739 &CN_CONST(IL_IDX(il_idx)),
05740 CN_TYPE_IDX(IL_IDX(il_idx)),
05741 conv_str) : "0");
05742
05743 il_idx = IL_IDX(ATL_DIRECTIVE_LIST(at_idx)) + Unroll_Dir_Idx;
05744
05745 fprintf(out_file, " %-16s= %-7s", "unroll",
05746 (IL_FLD(il_idx) == CN_Tbl_Idx) ? convert_to_string(
05747 &CN_CONST(IL_IDX(il_idx)),
05748 CN_TYPE_IDX(IL_IDX(il_idx)),
05749 conv_str) : "0");
05750
05751 il_idx = IL_IDX(ATL_DIRECTIVE_LIST(at_idx)) + Mark_Dir_Idx;
05752
05753 fprintf(out_file, " %-16s= %-s\n", "mark",
05754 (IL_FLD(il_idx) == CN_Tbl_Idx) ?
05755 (char *) &CN_CONST(IL_IDX(il_idx)) : " ");
05756
05757 il_idx = IL_IDX(ATL_DIRECTIVE_LIST(at_idx)) + Maxcpus_Dir_Idx;
05758
05759 fprintf(out_file, " %-16s= %-7d %-16s= %-25s\n",
05760 "maxcpus idx", IL_IDX(il_idx),
05761 "maxcpus fld", field_str[IL_FLD(il_idx)]);
05762
05763 il_idx = IL_IDX(ATL_DIRECTIVE_LIST(at_idx)) + Cache_Bypass_Dir_Idx;
05764
05765 if (IL_FLD(il_idx) == IL_Tbl_Idx) {
05766 il_idx = IL_IDX(il_idx);
05767
05768 while (il_idx != NULL_IDX) {
05769 fprintf(out_file, " %-16s= %-25s \n",
05770 "cache_bypass", AT_OBJ_NAME_PTR(IL_IDX(il_idx)));
05771 il_idx = IL_NEXT_LIST_IDX(il_idx);
05772 }
05773 }
05774 }
05775
05776 if (AT_DEFINED(at_idx)) {
05777 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05778 "ATL_DEF_STMT_IDX", ATL_DEF_STMT_IDX(at_idx),
05779 "ATL_EXECUTABLE", boolean_str[ATL_EXECUTABLE(at_idx)],
05780 "ATL_FISSIONABLE", boolean_str[ATL_FISSIONABLE(at_idx)]);
05781 }
05782 else {
05783 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
05784 "ATL_EXECUTABLE", boolean_str[ATL_EXECUTABLE(at_idx)],
05785 "ATL_FWD_REF_IDX", ATL_FWD_REF_IDX(at_idx),
05786 "ATL_FISSIONABLE", boolean_str[ATL_FISSIONABLE(at_idx)]);
05787 }
05788
05789 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-7s\n",
05790 "ATL_FUSABLE", boolean_str[ATL_FUSABLE(at_idx)],
05791 "ATL_FUSION", boolean_str[ATL_FUSION(at_idx)],
05792 "ATL_IN_ASSIGN", boolean_str[ATL_IN_ASSIGN(at_idx)]);
05793
05794 if (ATL_CLASS(at_idx) == Lbl_Format) {
05795
05796 if (ATL_FORMAT_TMP(at_idx) == NULL_IDX) {
05797 fprintf(out_file," %-16s= %-7d\n",
05798 "ATL_FORMAT_TM", ATL_FORMAT_TMP(at_idx));
05799 }
05800 else {
05801 fprintf(out_file," %-16s= %-7d %-16s= \"%s\"\n\n",
05802 "ATL_FORMAT_TM", ATL_FORMAT_TMP(at_idx),
05803 "FORMAT CONSTANT",
05804 (char *)&CN_CONST(ATD_TMP_IDX(ATL_FORMAT_TMP(at_idx))));
05805 }
05806 }
05807
05808 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05809 "ATL_IN_ASSIGN_LB",boolean_str[ATL_IN_ASSIGN_LBL_CHAIN(at_idx)],
05810 "ATL_INFORM_ONLY",boolean_str[ATL_INFORM_ONLY(at_idx)],
05811 "ATL_IVDEP",boolean_str[ATL_IVDEP(at_idx)]);
05812
05813 if (ATL_CLASS(at_idx) == Lbl_Internal) {
05814 fprintf(out_file, " %-16s= %-7d\n",
05815 "ATL_NEW_LBL_IDX", ATL_NEW_LBL_IDX(at_idx));
05816 }
05817
05818 fprintf(out_file, " %-16s= %-7s %-16s %-7d %-16s= %-8s\n",
05819 "ATL_MAXCPUS",boolean_str[ATL_MAXCPUS(at_idx)],
05820 "ATL_NEXT_ASG_LBL", ATL_NEXT_ASG_LBL_IDX(at_idx),
05821 "ATL_NEXTSCALAR", boolean_str[ATL_NEXTSCALAR(at_idx)]);
05822
05823 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05824 "ATL_NOBLOCKING", boolean_str[ATL_NOBLOCKING(at_idx)],
05825 "ATL_NOFISSION", boolean_str[ATL_NOFISSION(at_idx)],
05826 "ATL_NOFUSION", boolean_str[ATL_NOFUSION(at_idx)]);
05827
05828 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05829 "ATL_NOINTERCHANG", boolean_str[ATL_NOINTERCHANGE(at_idx)],
05830 "ATL_NORECURRENCE", boolean_str[ATL_NORECURRENCE(at_idx)],
05831 "ATL_NOTASK",boolean_str[ATL_NOTASK(at_idx)]);
05832
05833 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05834 "ATL_NOVECTOR", boolean_str[ATL_NOVECTOR(at_idx)],
05835 "ATL_NOVSEARCH", boolean_str[ATL_NOVSEARCH(at_idx)],
05836 "ATL_PATTERN", boolean_str[ATL_PATTERN(at_idx)]);
05837
05838 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05839 "ATL_PERMUTATION", boolean_str[ATL_PERMUTATION(at_idx)],
05840 "ATL_PREFERSTREAM", boolean_str[ATL_PREFERSTREAM(at_idx)],
05841 "ATL_PREFER_NOCIN", boolean_str[ATL_PREFERSTREAM_NOCINV(at_idx)]);
05842
05843 fprintf(out_file, " %-16s= %-7s %-16s= %-7s\n",
05844 "ATL_PREFERTASK", boolean_str[ATL_PREFERTASK(at_idx)],
05845 "ATL_PREFERVECTOR", boolean_str[ATL_PREFERVECTOR(at_idx)]);
05846
05847 if (ATL_CLASS(at_idx) == Lbl_Format) {
05848 fprintf(out_file, " %-16s= %-7d\n",
05849 "ATL_PP_FORMAT_TM", ATL_PP_FORMAT_TMP(at_idx));
05850 }
05851
05852 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05853 "ATL_SHORTLOOP", boolean_str[ATL_SHORTLOOP(at_idx)],
05854 "ATL_SHORTLOOP128", boolean_str[ATL_SHORTLOOP128(at_idx)],
05855 "ATL_SPLIT", boolean_str[ATL_SPLIT(at_idx)]);
05856
05857 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05858 "ATL_STREAM",boolean_str[ATL_STREAM(at_idx)],
05859 "ATL_TOP_OF_LOOP", boolean_str[ATL_TOP_OF_LOOP(at_idx)],
05860 "ATL_UNROLL_DIR", boolean_str[ATL_UNROLL_DIR(at_idx)]);
05861
05862 break;
05863
05864 case Derived_Type:
05865
05866 #ifdef KEY
05867 fprintf(out_file, " %-16s= %-7s\n",
05868 "AT_BIND_ATTR", boolean_str[AT_BIND_ATTR(at_idx)]);
05869 #endif
05870
05871 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05872 "ATT_CHAR_CPNT", boolean_str[ATT_CHAR_CPNT(at_idx)],
05873 "ATT_CHAR_SEQ", boolean_str[ATT_CHAR_SEQ(at_idx)],
05874 "ATT_ALIGNMENT", align_str[ATT_ALIGNMENT(at_idx)]);
05875
05876 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05877 "ATT_CIF_DT_ID", ATT_CIF_DT_ID(at_idx),
05878 "ATT_DALIGN_ME", boolean_str[ATT_DALIGN_ME(at_idx)],
05879 "ATT_DCL_NUMERIC_", boolean_str[ATT_DCL_NUMERIC_SEQ(at_idx)]);
05880
05881 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8d\n",
05882 "ATT_DEFAULT_INIT", boolean_str[ATT_DEFAULT_INITIALIZED(at_idx)],
05883 "ATT_FIRST_CPNT_I", ATT_FIRST_CPNT_IDX(at_idx),
05884 "ATT_GLOBAL_TYPE_", ATT_GLOBAL_TYPE_IDX(at_idx));
05885
05886 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
05887 "ATT_LABEL_LIST_I", ATT_LABEL_LIST_IDX(at_idx),
05888 "ATT_NON_DEFAULT_", boolean_str[ATT_NON_DEFAULT_CPNT(at_idx)],
05889 "ATT_NUM_CPNTS", ATT_NUM_CPNTS(at_idx));
05890
05891 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05892 "ATT_NUMERIC_CPNT", boolean_str[ATT_NUMERIC_CPNT(at_idx)],
05893 "ATT_POINTER_CPNT", boolean_str[ATT_POINTER_CPNT(at_idx)],
05894 "ATT_PRIVATE_CPNT", boolean_str[ATT_PRIVATE_CPNT(at_idx)]);
05895
05896 #ifdef KEY
05897 fprintf(out_file, " %-16s= %-7s\n",
05898 "ATT_ALLOCAT_CPNT", boolean_str[ATT_ALLOCATABLE_CPNT(at_idx)]);
05899 #endif
05900
05901 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
05902 "ATT_SCP_IDX", ATT_SCP_IDX(at_idx),
05903 "ATT_SEQUENCE_SET", boolean_str[ATT_SEQUENCE_SET(at_idx)],
05904 "ATT_UNIQUE_ID", ATT_UNIQUE_ID(at_idx));
05905
05906 if (ATT_STRUCT_BIT_LEN_IDX(at_idx) != NULL_IDX) {
05907 sprintf(str, "(%10s)",
05908 convert_to_string(&CN_CONST(ATT_STRUCT_BIT_LEN_IDX(at_idx)),
05909 CN_TYPE_IDX(ATT_STRUCT_BIT_LEN_IDX(at_idx)),
05910 conv_str));
05911 }
05912 else {
05913 sprintf(str,"%12s", " ");
05914 }
05915
05916 fprintf(out_file, " %-16s= %-7d %-25s %-26s\n",
05917 "ATT_STRUCT_SIZE", ATT_STRUCT_BIT_LEN_IDX(at_idx),
05918 field_str[CN_Tbl_Idx],
05919 str);
05920
05921
05922
05923
05924
05925
05926
05927 if (dump_all) {
05928 chain_thru_sn_ntries(out_file, at_idx, FALSE);
05929 }
05930
05931 break;
05932
05933
05934 case Interface:
05935
05936 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
05937 "ATI_CIF_SCOPE_ID", ATI_CIF_SCOPE_ID(at_idx),
05938 "ATI_CIF_SEEN_IN_", boolean_str[ATI_CIF_SEEN_IN_CALL(at_idx)],
05939 "ATI_DCL_INTRINSI", boolean_str[ATI_DCL_INTRINSIC(at_idx)]);
05940
05941 fprintf(out_file, " %-16s= %-33s %-16s= %-8d\n",
05942 "ATI_DEFINED_OPR", operator_str[ATI_DEFINED_OPR(at_idx)],
05943 "ATI_FIRST_SPECIF", ATI_FIRST_SPECIFIC_IDX(at_idx));
05944
05945 fprintf(out_file, " %-16s= %-7s %-16s= %-33s\n",
05946 "ATI_HAS_NON_MOD_", boolean_str[ATI_HAS_NON_MOD_PROC(at_idx)],
05947 "ATI_INTERFACE_CL", interface_str[ATI_INTERFACE_CLASS(at_idx)]);
05948
05949 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05950 "ATI_INLINE_ALWAY",boolean_str[ATI_INLINE_ALWAYS(at_idx)],
05951 "ATI_INLINE_NEVER",boolean_str[ATI_INLINE_NEVER(at_idx)],
05952 "ATI_INTRIN_PASSA", boolean_str[ATI_INTRIN_PASSABLE(at_idx)]);
05953
05954 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
05955 "ATI_INTRIN_TBL_I", ATI_INTRIN_TBL_IDX(at_idx),
05956 "ATI_IPA_DIR_SPEC",boolean_str[ATI_IPA_DIR_SPECIFIED(at_idx)],
05957 "ATI_NUM_SPECIFIC", ATI_NUM_SPECIFICS(at_idx));
05958
05959 fprintf(out_file, " %-16s= %-7s %-16s= %-7d\n",
05960 "ATI_GENERIC_INT", boolean_str[ATI_GENERIC_INTRINSIC(at_idx)],
05961 "ATI_PROC_IDX", ATI_PROC_IDX(at_idx));
05962
05963 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
05964 "ATI_UNNAMED_INTE", boolean_str[ATI_UNNAMED_INTERFACE(at_idx)],
05965 "ATI_SGI_RTN_INLI", boolean_str[ATI_SGI_ROUTINE_INLINE(at_idx)],
05966 "ATI_SGI_RTN_NOIN", boolean_str[ATI_SGI_ROUTINE_NOINLINE(at_idx)]);
05967
05968 if (ATD_TYPE_IDX(at_idx) != NULL_IDX) {
05969 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-s\n",
05970 "ATI_USER_SPECIFI", boolean_str[ATI_USER_SPECIFIED(at_idx)],
05971 "ATD_TYPE_IDX", ATD_TYPE_IDX(at_idx),
05972 print_type_f(ATD_TYPE_IDX(at_idx)));
05973 }
05974 else {
05975 fprintf(out_file, " %-16s= %-7s %-16s= %-7d\n",
05976 "ATI_USER_SPECIFI", boolean_str[ATI_USER_SPECIFIED(at_idx)],
05977 "ATD_TYPE_IDX", ATD_TYPE_IDX(at_idx));
05978 }
05979
05980 if (ATI_PROC_IDX(at_idx) != NULL_IDX) {
05981 fprintf(out_file, "\n");
05982 dump_at_ntry(out_file, ATI_PROC_IDX(at_idx), dump_all);
05983 }
05984
05985
05986
05987
05988
05989
05990
05991 if (dump_all) {
05992 chain_thru_sn_ntries(out_file, at_idx, FALSE);
05993 }
05994
05995 break;
05996
05997
05998 case Namelist_Grp:
05999
06000 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8d\n",
06001 "ATN_FIRST_NAMELI", ATN_FIRST_NAMELIST_IDX(at_idx),
06002 "ATN_LAST_NAMELIS", ATN_LAST_NAMELIST_IDX(at_idx),
06003 "ATN_NUM_NAMELIST", ATN_NUM_NAMELIST(at_idx));
06004
06005 fprintf(out_file, " %-16s= %-7d (%-s)\n",
06006 "ATN_NAMELIST_DES", ATN_NAMELIST_DESC(at_idx),
06007 ((ATN_NAMELIST_DESC(at_idx) == NULL_IDX) ? " " :
06008 AT_OBJ_NAME_PTR(ATN_NAMELIST_DESC(at_idx))));
06009
06010
06011
06012
06013
06014
06015
06016
06017 if (dump_all) {
06018 chain_thru_sn_ntries(out_file, at_idx, FALSE);
06019 }
06020 break;
06021
06022
06023 case Stmt_Func:
06024
06025 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-s\n",
06026 "ATS_SF_ACTIVE", boolean_str[ATS_SF_ACTIVE(at_idx)],
06027 "ATP_FIRST_IDX", ATP_FIRST_IDX(at_idx),
06028 field_str[ATS_SF_FLD(at_idx)]);
06029
06030 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8s\n",
06031 "ATS_SF_IDX", ATS_SF_IDX(at_idx),
06032 "ATP_NUM_DARGS", ATP_NUM_DARGS(at_idx),
06033 "ATS_SF_SEMANTICS", boolean_str[ATS_SF_SEMANTICS_DONE(at_idx)]);
06034
06035 fprintf(out_file, " %-16s= %-7d %-s\n",
06036 "ATD_TYPE_IDX", ATD_TYPE_IDX(at_idx),
06037 print_type_f(ATD_TYPE_IDX(at_idx)));
06038
06039 if (dump_all && ATP_FIRST_IDX(at_idx) != NULL_IDX) {
06040 loop_thru_sn_ntries(out_file, at_idx, FALSE);
06041 }
06042
06043 if (ATS_SF_FLD(at_idx) == IR_Tbl_Idx) {
06044 dump_ir_ntry(out_file, ATS_SF_IDX(at_idx), 5);
06045 }
06046
06047 break;
06048
06049 }
06050
06051 putc ('\n', out_file);
06052 fflush (out_file);
06053
06054 return;
06055
06056 }
06057
06058
06059
06060
06061
06062
06063
06064
06065
06066
06067
06068
06069
06070
06071
06072
06073
06074
06075 static void dump_bd_ntry (FILE *out_file,
06076 int bd_idx)
06077
06078 {
06079 int i;
06080
06081
06082 if (bd_idx > bounds_tbl_idx) {
06083 fprintf(out_file, "\n*FE90-ERROR* BD index value [%d] is out of range.\n",
06084 bd_idx);
06085 goto EXIT;
06086 }
06087
06088 if (BD_DIST_NTRY(bd_idx)) {
06089 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8s\n",
06090 "BD_RANK", BD_RANK(bd_idx),
06091 "BD_COLUMN_NUM", BD_COLUMN_NUM(bd_idx),
06092 "BD_DISTRIBUTE_RE",
06093 boolean_str[BD_DISTRIBUTE_RESHAPE(bd_idx)]);
06094
06095 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
06096 "BD_LINE_NUM", BD_LINE_NUM(bd_idx),
06097 "BD_RESOLVED", boolean_str[BD_RESOLVED(bd_idx)],
06098 "IDX", bd_idx);
06099
06100 for (i = 1; i <= BD_RANK(bd_idx); i++) {
06101 fprintf(out_file, " %-16s= %-7d %-16s= %-25s\n",
06102 "Dimension", i,
06103 "Distribution",
06104 distribution_str[BD_DISTRIBUTION(bd_idx,i)]);
06105
06106 if (BD_CYCLIC_FLD(bd_idx, i) != NO_Tbl_Idx) {
06107 print_fld_idx(out_file,
06108 " BD_CYCLIC_IDX",
06109 BD_CYCLIC_FLD(bd_idx, i),
06110 BD_CYCLIC_IDX(bd_idx, i));
06111 }
06112
06113 if (BD_ONTO_FLD(bd_idx, i) != NO_Tbl_Idx) {
06114 print_fld_idx(out_file,
06115 " BD_ONTO_IDX",
06116 BD_ONTO_FLD(bd_idx, i),
06117 BD_ONTO_IDX(bd_idx, i));
06118 }
06119 }
06120 goto EXIT;
06121 }
06122
06123 if (!BD_USED_NTRY(bd_idx)) {
06124 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8d\n",
06125 "IDX", bd_idx,
06126 "BD_NEXT_FREE_NTR", BD_NEXT_FREE_NTRY(bd_idx),
06127 "BD_NTRY_SIZE", BD_NTRY_SIZE(bd_idx));
06128 goto EXIT;
06129 }
06130
06131 fprintf(out_file, " %-16s= %-7d %-25s %-26s\n",
06132 "BD_RANK", BD_RANK(bd_idx),
06133 bd_array_class_str[BD_ARRAY_CLASS(bd_idx)],
06134 bd_array_size_str[BD_ARRAY_SIZE(bd_idx)]);
06135
06136 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
06137 "BD_COLUMN_NUM", BD_COLUMN_NUM(bd_idx),
06138 "BD_DCL_ERR", boolean_str[BD_DCL_ERR(bd_idx)],
06139 "BD_GLOBAL_IDX", BD_GLOBAL_IDX(bd_idx));
06140
06141 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
06142 "BD_LINE_NUM", BD_LINE_NUM(bd_idx),
06143 "BD_RESOLVED", boolean_str[BD_RESOLVED(bd_idx)],
06144 "IDX", bd_idx);
06145
06146 print_fld_idx(out_file, "BD_LEN_IDX",
06147 BD_LEN_FLD(bd_idx),
06148 BD_LEN_IDX(bd_idx));
06149
06150 if (BD_ARRAY_CLASS(bd_idx) != Deferred_Shape) {
06151
06152 for (i = 1; i <= BD_RANK(bd_idx); i++) {
06153 fprintf(out_file, " %-16s= %-7d\n", "Dimension", i);
06154
06155 print_fld_idx(out_file,
06156 " BD_LB_IDX",
06157 BD_LB_FLD(bd_idx, i),
06158 BD_LB_IDX(bd_idx, i));
06159
06160 print_fld_idx(out_file,
06161 " BD_UB_IDX",
06162 BD_UB_FLD(bd_idx, i),
06163 BD_UB_IDX(bd_idx, i));
06164
06165 print_fld_idx(out_file,
06166 " BD_XT_IDX",
06167 BD_XT_FLD(bd_idx, i),
06168 BD_XT_IDX(bd_idx, i));
06169
06170 print_fld_idx(out_file,
06171 " BD_SM_IDX",
06172 BD_SM_FLD(bd_idx, i),
06173 BD_SM_IDX(bd_idx, i));
06174 }
06175 }
06176
06177 EXIT:
06178
06179 putc ('\n', out_file);
06180
06181 fflush (out_file);
06182 return;
06183
06184 }
06185
06186
06187
06188
06189
06190
06191
06192
06193
06194
06195
06196
06197
06198
06199
06200
06201
06202
06203
06204 static void dump_blk_ntry(FILE *out_file,
06205 int blk_idx)
06206 {
06207
06208
06209
06210
06211
06212 if (blk_idx > blk_stk_idx) {
06213 fprintf(stderr,
06214 "\n*FE90-WARNING* Blk index value [%d] is out of range.\n",
06215 blk_idx);
06216 }
06217
06218
06219 fprintf(out_file,"\n%-32.32s ", blk_struct_str[BLK_TYPE(blk_idx)]);
06220 fprintf(out_file,"%-8s= %-7d", "IDX", blk_idx);
06221
06222 if (blk_idx == blk_stk_idx) {
06223 fprintf(out_file,"%4s%-20.20s\n", " ", "CURRENT BLOCK");
06224 fprintf(out_file,"%4s%-19s= %-27s\n", " ", "curr_stmt_category",
06225 context_str[curr_stmt_category]);
06226 }
06227 else {
06228 fprintf(out_file,"\n");
06229 }
06230
06231 if (BLK_NAME(blk_idx) != NULL_IDX) {
06232 fprintf(out_file,"%4s%-19s= (%d) %-32.32s\n", " ",
06233 "BLK_NAME", BLK_NAME(blk_idx),AT_OBJ_NAME_PTR(BLK_NAME(blk_idx)));
06234 }
06235
06236 fprintf(out_file, "%4s%-19s= %-29d %-16s= %-7d\n", " ",
06237 "BLK_DEF_LINE", BLK_DEF_LINE(blk_idx),
06238 "BLK_DEF_COLUMN", BLK_DEF_COLUMN(blk_idx));
06239
06240 fprintf(out_file, "%4s%-19s= %-29d %-16s= %-7d\n", " ",
06241 "BLK_FIRST_SH_IDX", BLK_FIRST_SH_IDX(blk_idx),
06242 "BLK_LABEL", BLK_LABEL(blk_idx));
06243
06244 fprintf(out_file, "%4s%-19s= %s %-16s= %s %-16s= %s\n", " ",
06245 "BLK_ERR", boolean_str[BLK_ERR(blk_idx)],
06246 "BLK_FND_DEFAULT", boolean_str[BLK_FND_DEFAULT(blk_idx)],
06247 "BLK_NO_EXEC", boolean_str[BLK_NO_EXEC(blk_idx)]);
06248
06249 if (BLK_TYPE(blk_idx) == Do_Blk) {
06250
06251 if (BLK_DO_TYPE(blk_idx) == Iterative_Loop) {
06252 fprintf(out_file, "%4sDO-var: Line= %-7d Col= %-3d Fld= %-10s\n",
06253 " ",
06254 BLK_DO_VAR_LINE_NUM(blk_idx),
06255 BLK_DO_VAR_COL_NUM(blk_idx),
06256 field_str[BLK_DO_VAR_FLD(blk_idx)]);
06257
06258 print_attr_name(out_file, BLK_DO_VAR_IDX(blk_idx), 4);
06259 }
06260 else if (BLK_DO_TYPE(blk_idx) == While_Loop) {
06261 fprintf(out_file, "%4sWHILE expr: Line= %-7d Col= %-3d Fld= %-10s",
06262 " ",
06263 BLK_DO_VAR_LINE_NUM(blk_idx),
06264 BLK_DO_VAR_COL_NUM(blk_idx),
06265 field_str[BLK_DO_VAR_FLD(blk_idx)]);
06266
06267 if (BLK_DO_VAR_FLD(blk_idx) == AT_Tbl_Idx) {
06268 fputc('\n', out_file);
06269 print_attr_name(out_file, BLK_DO_VAR_IDX(blk_idx), 4);
06270 }
06271 else {
06272 fprintf(out_file, " Idx= %d\n", BLK_DO_VAR_IDX(blk_idx));
06273 }
06274 }
06275
06276 fprintf(out_file, "%4s%-18s= %-27s %-16s= %-7d\n", " ",
06277 "BLK_DO_TYPE", do_type_str[BLK_DO_TYPE(blk_idx)],
06278 "BLK_LOOP_NUM", BLK_LOOP_NUM(blk_idx));
06279
06280 fprintf(out_file, "%4s%-18s= %-27s %-16s= %s\n", " ",
06281 "BLK_CYCLE_STMT", boolean_str[BLK_CYCLE_STMT(blk_idx)],
06282 "BLK_EXIT_STMT", boolean_str[BLK_EXIT_STMT(blk_idx)]);
06283
06284 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06285 "BLK_TOP_LBL_IDX", BLK_TOP_LBL_IDX(blk_idx),
06286 "BLK_SKIP_LBL_IDX", BLK_SKIP_LBL_IDX(blk_idx));
06287
06288 fprintf(out_file, "%4s%-19s= %s\n", " ",
06289 "BLK_IS_PARALLEL_REG",
06290 boolean_str[BLK_IS_PARALLEL_REGION(blk_idx)]);
06291
06292 if (BLK_DO_TYPE(blk_idx) == Iterative_Loop) {
06293 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06294 "BLK_START_TEMP_IDX", BLK_START_TEMP_IDX(blk_idx),
06295 "BLK_INC_TEMP_IDX", BLK_INC_TEMP_IDX(blk_idx));
06296
06297 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06298 "BLK_INDUC_TEMP_IDX", BLK_INDUC_TEMP_IDX(blk_idx),
06299 "BLK_TC_TEMP_IDX", BLK_TC_TEMP_IDX(blk_idx));
06300
06301 fprintf(out_file, "%4s%-26s= %-14s %-24s= %-9s\n", " ",
06302 "BLK_HAS_NESTED_LOOP",
06303 boolean_str[BLK_HAS_NESTED_LOOP(blk_idx)],
06304 "BLK_BLOCKABLE_NEST_OK ",
06305 boolean_str[BLK_BLOCKABLE_NEST_OK(blk_idx)]);
06306
06307 fprintf(out_file, "%4s%-26s= %-14d %-24s= %-9d\n", " ",
06308 "BLK_BLOCKABLE_DIR_SH_IDX",
06309 BLK_BLOCKABLE_DIR_SH_IDX(blk_idx),
06310 "BLK_BLOCKABLE_NUM_LCVS",
06311 BLK_BLOCKABLE_NUM_LCVS(blk_idx));
06312
06313 fprintf(out_file, "%4s%-26s= %-14d %-24s= %-9d\n", " ",
06314 "BLK_INTERCHANGE_DIR_SH_IDX",
06315 BLK_INTERCHANGE_DIR_SH_IDX(blk_idx),
06316 "BLK_INTERCHANGE_NUM_LCVS",
06317 BLK_INTERCHANGE_NUM_LCVS(blk_idx));
06318
06319 fprintf(out_file, "%4s%-26s= %-14d %-24s= %-9d\n", " ",
06320 "BLK_DIR_NEST_CHECK_SH_IDX",
06321 BLK_DIR_NEST_CHECK_SH_IDX(blk_idx),
06322 "BLK_DIR_NEST_CHECK_NUM_LCVS",
06323 BLK_DIR_NEST_CHECK_NUM_LCVS(blk_idx));
06324 }
06325 }
06326 else if (BLK_TYPE(blk_idx) == Select_Blk) {
06327 fprintf(out_file, "%4s%-19s= %-29d\n", " ",
06328 "BLK_NUM_CASES", BLK_NUM_CASES(blk_idx));
06329
06330 fprintf(out_file, "%4s%s%-9d %s%-3d %s %s%-7d\n", " ",
06331 "BLK_CASE_DEFAULT_LBL_OPND: line = ",
06332 BLK_CASE_DEFAULT_LBL_LINE_NUM(blk_idx),
06333 "col = ", BLK_CASE_DEFAULT_LBL_COL_NUM(blk_idx),
06334 field_str[BLK_CASE_DEFAULT_LBL_FLD(blk_idx)],
06335 "idx = ", BLK_CASE_DEFAULT_LBL_IDX(blk_idx));
06336 }
06337 else if (cif_flags & BASIC_RECS) {
06338 fprintf(out_file, "%4s%-19s= %d\n", " ",
06339 "BLK_CIF_SCOPE_ID", BLK_CIF_SCOPE_ID(blk_idx));
06340 }
06341
06342 if (BLK_TYPE(blk_idx) == Derived_Type_Blk) {
06343 fprintf(out_file, "%4s%-18s= %-27d \n", " ",
06344 "BLK_LAST_CPNT_IDX", BLK_LAST_CPNT_IDX(blk_idx));
06345 }
06346 else if (BLK_TYPE(blk_idx) == Interface_Body_Blk) {
06347 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06348 "BLK_AT_IDX", BLK_AT_IDX(blk_idx),
06349 "BLK_BD_IDX", BLK_BD_IDX(blk_idx));
06350 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06351 "BLK_CN_IDX", BLK_CN_IDX(blk_idx),
06352 "BLK_CP_IDX", BLK_CP_IDX(blk_idx));
06353 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06354 "BLK_NP_IDX", BLK_NP_IDX(blk_idx),
06355 "BLK_SB_IDX", BLK_SB_IDX(blk_idx));
06356 fprintf(out_file, "%4s%-18s= %-27d %-16s= %-12d\n", " ",
06357 "BLK_SN_IDX", BLK_SN_IDX(blk_idx),
06358 "BLK_TYP_IDX", BLK_TYP_IDX(blk_idx));
06359 }
06360
06361 fflush (out_file);
06362
06363 return;
06364
06365 }
06366
06367
06368
06369
06370
06371
06372
06373
06374
06375
06376
06377
06378
06379
06380
06381
06382
06383
06384
06385 static void dump_cn_ntry (FILE *out_file,
06386 int cn_idx)
06387
06388 {
06389 int type_idx;
06390
06391
06392 if (cn_idx > const_tbl_idx) {
06393 fprintf(out_file, "\n*FE90-ERROR* CN index value [%d] is out of range.\n",
06394 cn_idx);
06395 return;
06396 }
06397
06398 type_idx = CN_TYPE_IDX(cn_idx);
06399
06400 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
06401 "CN_BOOLEAN_CONST", boolean_str[CN_BOOLEAN_CONSTANT(cn_idx)],
06402 "CN_BOZ_CONSTANT", boolean_str[CN_BOZ_CONSTANT(cn_idx)],
06403 "IDX", cn_idx);
06404
06405 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s\n",
06406 "CN_EXTRA_ZERO_WO", boolean_str[CN_EXTRA_ZERO_WORD(cn_idx)],
06407 "CN_POOL_IDX", CN_POOL_IDX(cn_idx),
06408 cn_hollerith_str[CN_HOLLERITH_TYPE(cn_idx)]);
06409
06410 # if defined(_TARGET_LITTLE_ENDIAN)
06411 fprintf(out_file, " %-16s= %-2s\n",
06412 "CN_HOLLERITH_END", boolean_str[CN_HOLLERITH_ENDIAN(cn_idx)]);
06413 # endif
06414
06415 fprintf(out_file, " %s%d] = %-s\n",
06416 "CN_TYPE_IDX[", CN_TYPE_IDX(cn_idx),
06417 print_type_f(type_idx));
06418
06419
06420
06421 print_const_f(out_file, cn_idx);
06422 fprintf(out_file, "\n\n");
06423 fflush (out_file);
06424
06425 return;
06426
06427 }
06428
06429
06430
06431
06432
06433
06434
06435
06436
06437
06438
06439
06440
06441
06442
06443
06444
06445 static void dump_eq_ntry (FILE *out_file,
06446 int eq_idx)
06447
06448 {
06449
06450 if (eq_idx > equiv_tbl_idx) {
06451 fprintf(out_file, "\n*FE90-ERROR* EQ index value [%d] is out of range.\n",
06452 eq_idx);
06453 return;
06454 }
06455
06456 fprintf(out_file, "%-53.53s %-16s= %-8d\n",
06457 AT_OBJ_NAME_PTR(EQ_ATTR_IDX(eq_idx)),
06458 "IDX", eq_idx);
06459
06460 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8s\n",
06461 "EQ_ATTR_IDX", EQ_ATTR_IDX(eq_idx),
06462 "EQ_COLUMN_NUM", EQ_COLUMN_NUM(eq_idx),
06463 "EQ_DALIGN_ME", boolean_str[EQ_DALIGN_ME(eq_idx)]);
06464
06465 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
06466 "EQ_DALIGN_SHIFT", boolean_str[EQ_DALIGN_SHIFT(eq_idx)],
06467 "EQ_DO_NOT_DALIGN", boolean_str[EQ_DO_NOT_DALIGN(eq_idx)],
06468 "EQ_ERROR", boolean_str[EQ_ERROR(eq_idx)]);
06469
06470 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8d\n",
06471 "EQ_GRP_END_IDX", EQ_GRP_END_IDX(eq_idx),
06472 "EQ_GRP_IDX", EQ_GRP_IDX(eq_idx),
06473 "EQ_LINE_NUM", EQ_LINE_NUM(eq_idx));
06474
06475 # if 0
06476 if (EQ_LIST_IDX(eq_idx) != NULL_IDX) {
06477 print_list(out_file, IL_IDX(EQ_LIST_IDX(eq_idx)), 4, 1, FALSE);
06478 }
06479 # endif
06480
06481 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
06482 "EQ_LIST_IDX", EQ_LIST_IDX(eq_idx),
06483 "EQ_MERGED", boolean_str[EQ_MERGED(eq_idx)],
06484 "EQ_NEXT_EQUIV_GR", EQ_NEXT_EQUIV_GRP(eq_idx));
06485
06486 print_fld_idx(out_file, "EQ_OFFSET_IDX",
06487 EQ_OFFSET_FLD(eq_idx),
06488 EQ_OFFSET_IDX(eq_idx));
06489
06490 print_fld_idx(out_file, "EQ_OPND_IDX",
06491 EQ_OPND_FLD(eq_idx),
06492 EQ_OPND_IDX(eq_idx));
06493
06494 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
06495 "EQ_NEXT_EQUIV_OB", EQ_NEXT_EQUIV_OBJ(eq_idx),
06496 "EQ_SEARCH_DONE", boolean_str[EQ_SEARCH_DONE(eq_idx)],
06497 "EQ_SUBSTRINGED", boolean_str[EQ_SUBSTRINGED(eq_idx)]);
06498
06499 putc ('\n', out_file);
06500 fflush(out_file);
06501
06502 return;
06503
06504 }
06505
06506
06507
06508
06509
06510
06511
06512
06513
06514
06515
06516
06517
06518
06519
06520
06521
06522
06523 static void dump_fp_ntry(FILE *out_file,
06524 int fp_idx,
06525 boolean print_list)
06526
06527 {
06528
06529 if (fp_idx > file_path_tbl_idx) {
06530 fprintf(out_file, "\n*FE90-ERROR* FP index value [%d] is out of range.\n",
06531 fp_idx);
06532 return;
06533 }
06534
06535 do {
06536 fprintf(out_file, "%-s\n\n", FP_NAME_PTR(fp_idx));
06537
06538 fprintf(out_file, " %-16s= %-6d %-16s= %-s\n",
06539 "IDX", fp_idx,
06540 "FP_CLASS", file_path_str[FP_CLASS(fp_idx)]);
06541
06542 if (FP_FILE_IDX(fp_idx) != NULL_IDX &&
06543 FP_NAME_IDX(FP_FILE_IDX(fp_idx)) != NULL_IDX) {
06544 fprintf(out_file, " %-16s= %-s\n",
06545 "FP_FILE_IDX", FP_NAME_PTR(FP_FILE_IDX(fp_idx)));
06546 }
06547 else {
06548 fprintf(out_file, " %-16s= %-s\n", "FP_FILE_IDX", "0");
06549 }
06550
06551 if (FP_MODULE_IDX(fp_idx) != NULL_IDX &&
06552 FP_NAME_IDX(FP_MODULE_IDX(fp_idx)) != NULL_IDX) {
06553 fprintf(out_file, " %-16s= %-s\n",
06554 "FP_MODULE_IDX", FP_NAME_PTR(FP_MODULE_IDX(fp_idx)));
06555 }
06556 else {
06557 fprintf(out_file, " %-16s= %-s\n", "FP_MODULE_IDX", "0");
06558 }
06559
06560 if (FP_NEXT_FILE_IDX(fp_idx) != NULL_IDX &&
06561 FP_NAME_IDX(FP_NEXT_FILE_IDX(fp_idx)) != NULL_IDX) {
06562 fprintf(out_file, " %-16s= %-6d (%-s)\n",
06563 "FP_NEXT_FILE_IDX", FP_NEXT_FILE_IDX(fp_idx),
06564 FP_NAME_PTR(FP_NEXT_FILE_IDX(fp_idx)));
06565 }
06566 else {
06567 fprintf(out_file, " %-16s= %-s\n", "FP_NEXT_FILE_IDX", "0");
06568 }
06569
06570 fprintf(out_file, " %-16s= %-6d %-16s= %-7d %-16s= %-7s\n",
06571 "FP_MODULE_INLINE", FP_MODULE_INLINE_IDX(fp_idx),
06572 "FP_NAME_LEN", FP_NAME_LEN(fp_idx),
06573 "FP_OUTPUT_TO_O", boolean_str[FP_OUTPUT_TO_O(fp_idx)]);
06574 #if defined(_HOST32) && defined(_TARGET64)
06575 fprintf(out_file, " %-16s= %-20Ld \n",
06576 "FP_OFFSET", FP_OFFSET(fp_idx));
06577 #else
06578 fprintf(out_file, " %-16s= %-20ld \n",
06579 "FP_OFFSET", FP_OFFSET(fp_idx));
06580 #endif
06581
06582 fprintf(out_file, " %-16s= %-6s %-16s= %-7s %-16s= %-7s\n",
06583 "FP_SRCH_THE_FILE", boolean_str[FP_SRCH_THE_FILE(fp_idx)],
06584 "FP_SYSTEM_FILE", boolean_str[FP_SYSTEM_FILE(fp_idx)],
06585 "FP_TMP_FILE", boolean_str[FP_TMP_FILE(fp_idx)]);
06586
06587 fp_idx = FP_MODULE_IDX(fp_idx);
06588 }
06589 while (print_list && fp_idx != NULL_IDX);
06590
06591 fprintf(out_file, "\n");
06592
06593 fflush (out_file);
06594 return;
06595
06596 }
06597
06598
06599
06600
06601
06602
06603
06604
06605
06606
06607
06608
06609
06610
06611
06612
06613
06614
06615 static void dump_ga_ntry (FILE *out_file,
06616 int ga_idx)
06617
06618 {
06619 char conv_str[80];
06620 int ga_idx2;
06621 int i;
06622
06623
06624 if (ga_idx > global_attr_tbl_idx) {
06625 fprintf(out_file, "\n*FE90-ERROR* GA index value [%d] is out of range.\n",
06626 ga_idx);
06627 return;
06628 }
06629
06630
06631
06632 fprintf(out_file, "%-s\n", GA_OBJ_NAME_PTR(ga_idx));
06633
06634 if (GA_OBJ_CLASS(ga_idx) == Common_Block) {
06635 fprintf(out_file, " %-25s %-16s= %-7d %-16s= %-8d\n",
06636 "Common_Blk",
06637 "IDX", ga_idx,
06638 "GA_DEF_COLUMN", GA_DEF_COLUMN(ga_idx));
06639
06640 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-s\n",
06641 "GA_DEF_LINE", GA_DEF_LINE(ga_idx),
06642 "GA_MODULE_IDX", GA_MODULE_IDX(ga_idx),
06643 (GA_MODULE_IDX(ga_idx) == NULL_IDX) ? " ":
06644 GA_OBJ_NAME_PTR(GA_MODULE_IDX(ga_idx)));
06645
06646 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
06647 "GA_NAME_LEN", GA_NAME_LEN(ga_idx),
06648 "GA_USE_ASSOCIATE",boolean_str[GA_USE_ASSOCIATED(ga_idx)],
06649 "GAC_AUXILIARY", boolean_str[GAC_AUXILIARY(ga_idx)]);
06650
06651 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
06652 "GAC_ALIGN_SYMBOL", boolean_str[GAC_ALIGN_SYMBOL(ga_idx)],
06653 "GAC_CACHE_ALIGN", boolean_str[GAC_CACHE_ALIGN(ga_idx)],
06654 "GAC_EQUIVALENCED", boolean_str[GAC_EQUIVALENCED(ga_idx)]);
06655
06656 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
06657 "GAC_FILL_SYMBOL", boolean_str[GAC_FILL_SYMBOL(ga_idx)],
06658 "GAC_FIRST_MEMBER", GAC_FIRST_MEMBER_IDX(ga_idx),
06659 "GAC_FOUND_DIFFS", boolean_str[GAC_FOUND_DIFFS(ga_idx)]);
06660
06661 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
06662 "GAC_SECTION_GP", boolean_str[GAC_SECTION_GP(ga_idx)],
06663 "GAC_SECTION_NON_", boolean_str[GAC_SECTION_NON_GP(ga_idx)],
06664 "GAC_TASK_COMMON", boolean_str[GAC_TASK_COMMON(ga_idx)]);
06665 #ifdef KEY
06666 const char *bl = GA_BINDING_LABEL(ga_idx);
06667 fprintf(out_file, " %-16s= %-7s %-16s= %-s\n",
06668 "GA_BIND_ATTR",boolean_str[GA_BIND_ATTR(ga_idx)],
06669 "GA_BIND_LABEL", (bl ? bl : ""));
06670 #endif
06671
06672 ga_idx2 = GAC_FIRST_MEMBER_IDX(ga_idx);
06673
06674 while (ga_idx2 != NULL_IDX) {
06675 dump_ga_ntry(out_file, ga_idx2);
06676 ga_idx2 = GAD_NEXT_IDX(ga_idx2);
06677 }
06678 return;
06679 }
06680
06681
06682 fprintf(out_file, " %-25s %-16s= %-7s %-16s= %-8d\n",
06683 obj_class_str[GA_OBJ_CLASS(ga_idx)],
06684 "GA_REFERENCED", boolean_str[GA_REFERENCED(ga_idx)],
06685 "IDX", ga_idx);
06686
06687 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8d\n",
06688 "GA_COMPILER_GEND", boolean_str[GA_COMPILER_GEND(ga_idx)],
06689 "GA_DEF_COLUMN", GA_DEF_COLUMN(ga_idx),
06690 "GA_DEF_LINE", GA_DEF_LINE(ga_idx));
06691
06692 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-s\n",
06693 "GA_DEFINED", boolean_str[GA_DEFINED(ga_idx)],
06694 "GA_MODULE_IDX", GA_MODULE_IDX(ga_idx),
06695 (GA_MODULE_IDX(ga_idx) == NULL_IDX) ? " ":
06696 GA_OBJ_NAME_PTR(GA_MODULE_IDX(ga_idx)));
06697
06698 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
06699 "GA_NAME_LEN", GA_NAME_LEN(ga_idx),
06700 "GA_OPTIONAL", boolean_str[GA_OPTIONAL(ga_idx)],
06701 "GA_ORIG_NAME_LEN", GA_ORIG_NAME_LEN(ga_idx));
06702
06703 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-s\n",
06704 "GA_USE_ASSOCIATE",boolean_str[GA_USE_ASSOCIATED(ga_idx)],
06705 "GA_ORIG_NAME_IDX", GA_ORIG_NAME_IDX(ga_idx),
06706 (GA_ORIG_NAME_IDX(ga_idx) == NULL_IDX)
06707 ? " ": GA_ORIG_NAME_PTR(ga_idx));
06708
06709
06710 switch (GA_OBJ_CLASS(ga_idx)) {
06711 case Data_Obj:
06712
06713 fprintf(out_file, " %-25s %-16s= %-7s %-16s= %-8d\n",
06714 atd_class_str[GAD_CLASS(ga_idx)],
06715 "GAD_ARRAY_ELEMEN", boolean_str[GAD_ARRAY_ELEMENT_REF(ga_idx)],
06716 "GAD_ARRAY_IDX", GAD_ARRAY_IDX(ga_idx));
06717
06718 if (GAD_CLASS(ga_idx) == Dummy_Argument) {
06719 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
06720 "GAD_ASSUMED_SHAP", boolean_str[GAD_ASSUMED_SHAPE_ARRAY(ga_idx)],
06721 "GAD_INTENT", intent_str[GAD_INTENT(ga_idx)],
06722 "GAD_NEXT_IDX", GAD_NEXT_IDX(ga_idx));
06723 }
06724 else if (GAD_CLASS(ga_idx) == Constant) {
06725 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-s\n",
06726 "GAD_ASSUMED_SHAP", boolean_str[GAD_ASSUMED_SHAPE_ARRAY(ga_idx)],
06727 "GAD_NEXT_IDX", GAD_NEXT_IDX(ga_idx),
06728 "GAD_HOLLERITH", cn_hollerith_str[GAD_HOLLERITH(ga_idx)]);
06729 }
06730 else {
06731 fprintf(out_file, " %-16s= %-7s %-16s= %-7d\n",
06732 "GAD_ASSUMED_SHAP", boolean_str[GAD_ASSUMED_SHAPE_ARRAY(ga_idx)],
06733 "GAD_NEXT_IDX", GAD_NEXT_IDX(ga_idx));
06734 }
06735
06736 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
06737 "GAD_POINTER", boolean_str[GAD_POINTER(ga_idx)],
06738 "GAD_RANK", GAD_RANK(ga_idx),
06739 "GAD_TARGET", boolean_str[GAD_TARGET(ga_idx)]);
06740
06741 #ifdef KEY
06742 fprintf(out_file, " %-16s= %-7s\n",
06743 "GAD_VOLATILE", boolean_str[GAD_VOLATILE(ga_idx)]);
06744 #endif
06745 fprintf(out_file, " %-16s= %-7d %-s\n",
06746 "GAD_TYPE_IDX", GAD_TYPE_IDX(ga_idx),
06747 print_global_type_f(GAD_TYPE_IDX(ga_idx)));
06748
06749 if (GAD_ARRAY_IDX(ga_idx) != NULL_IDX) {
06750 dump_gb_ntry(out_file, GAD_ARRAY_IDX(ga_idx));
06751 }
06752
06753 break;
06754
06755
06756 case Pgm_Unit:
06757
06758 fprintf(out_file, " %-25s %-16s= %-7s %-16s= %-8d\n",
06759 atp_pgm_unit_str[GAP_PGM_UNIT(ga_idx)],
06760 "GAP_ELEMENTAL", boolean_str[GAP_ELEMENTAL(ga_idx)],
06761 "GAP_FIRST_IDX", GAP_FIRST_IDX(ga_idx));
06762
06763 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
06764 "GAP_FP_IDX", GAP_FP_IDX(ga_idx),
06765 "GAP_GLOBAL_DIR", boolean_str[GAP_GLOBAL_DIR(ga_idx)],
06766 "GAP_IN_INTERFACE", boolean_str[GAP_IN_INTERFACE_BLK(ga_idx)]);
06767
06768 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
06769 "GAP_NEEDS_EXPL_I", boolean_str[GAP_NEEDS_EXPL_ITRFC(ga_idx)],
06770 "GAP_NEXT_PGM_IDX", GAP_NEXT_PGM_UNIT_IDX(ga_idx),
06771 "GAP_NOSIDE_EFFEC", boolean_str[GAP_NOSIDE_EFFECTS(ga_idx)]);
06772
06773 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8s\n",
06774 "GAP_NUM_DARGS", GAP_NUM_DARGS(ga_idx),
06775 "GAP_PGM_UNIT_DEF", boolean_str[GAP_PGM_UNIT_DEFINED(ga_idx)],
06776 "GAP_PURE", boolean_str[GAP_PURE(ga_idx)]);
06777
06778 #ifdef KEY
06779 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
06780 "GAP_RECURSIVE", boolean_str[GAP_RECURSIVE(ga_idx)],
06781 "GAP_VFUNCTION",boolean_str[GAP_VFUNCTION(ga_idx)],
06782 "GA_BIND_ATTR",boolean_str[GA_BIND_ATTR(ga_idx)]);
06783 const char *bl = GA_BINDING_LABEL(ga_idx);
06784 fprintf(out_file, " %-16s= %-s\n",
06785 "GA_BIND_LABEL", (bl ? bl : ""));
06786 #else
06787 fprintf(out_file, " %-16s= %-7s %-16s= %-7s\n",
06788 "GAP_RECURSIVE", boolean_str[GAP_RECURSIVE(ga_idx)],
06789 "GAP_VFUNCTION",boolean_str[GAP_VFUNCTION(ga_idx)]);
06790 #endif
06791
06792 if (GAP_RSLT_IDX(ga_idx) != NULL_IDX) {
06793 dump_ga_ntry(out_file, GAP_RSLT_IDX(ga_idx));
06794 }
06795
06796 ga_idx2 = GAP_FIRST_IDX(ga_idx);
06797
06798 for (i = GAP_NUM_DARGS(ga_idx); i > 0; i--) {
06799 dump_ga_ntry(out_file, ga_idx2);
06800 ga_idx2++;
06801 }
06802
06803 break;
06804
06805 case Derived_Type:
06806
06807 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8s\n",
06808 "GAT_FIRST_CPNT_I", GAT_FIRST_CPNT_IDX(ga_idx),
06809 "GAT_NUM_CPNTS", GAT_NUM_CPNTS(ga_idx),
06810 "GAT_PRIVATE_CPNT", boolean_str[GAT_PRIVATE_CPNT(ga_idx)]);
06811
06812 #if ! (defined(_HOST32) && defined(_TARGET64))
06813
06814
06815
06816
06817
06818
06819
06820 fprintf(out_file, " %-16s= %-7s %-16s= %-33ld\n",
06821 "GAT_SEQUENCE_SET", boolean_str[GAT_SEQUENCE_SET(ga_idx)],
06822 "GAT_STRUCT_BIT_L", *GAT_STRUCT_BIT_LEN(ga_idx));
06823 #else
06824 fprintf(out_file, " %-16s= %-7s %-16s= %-33Ld\n",
06825 "GAT_SEQUENCE_SET", boolean_str[GAT_SEQUENCE_SET(ga_idx)],
06826 "GAT_STRUCT_BIT_L", *GAT_STRUCT_BIT_LEN(ga_idx));
06827 #endif
06828
06829 ga_idx2 = GAT_FIRST_CPNT_IDX(ga_idx);
06830
06831 for (i = GAT_NUM_CPNTS(ga_idx); i > 0; i--) {
06832 dump_ga_ntry(out_file, ga_idx2);
06833 ga_idx2++;
06834 }
06835
06836 break;
06837
06838
06839 default:
06840 break;
06841
06842 }
06843
06844 putc ('\n', out_file);
06845 fflush (out_file);
06846
06847 return;
06848
06849 }
06850
06851
06852
06853
06854
06855
06856
06857
06858
06859
06860
06861
06862
06863
06864
06865
06866
06867
06868 static void dump_gb_ntry (FILE *out_file,
06869 int gb_idx)
06870
06871 {
06872 char conv_str[80];
06873 char conv_str2[80];
06874 int i;
06875
06876
06877 if (gb_idx > global_bounds_tbl_idx) {
06878 fprintf(out_file, "\n*FE90-ERROR* GB index value [%d] is out of range.\n",
06879 gb_idx);
06880 goto EXIT;
06881 }
06882
06883 fprintf(out_file, " %-16s= %-7d %-15s %-25s %-4s= %d\n",
06884 "GB_RANK", GB_RANK(gb_idx),
06885 bd_array_class_str[GB_ARRAY_CLASS(gb_idx)],
06886 bd_array_size_str[GB_ARRAY_SIZE(gb_idx)],
06887 "IDX", gb_idx);
06888
06889 if (GB_ARRAY_CLASS(gb_idx) == Explicit_Shape &&
06890 GB_ARRAY_SIZE(gb_idx) == Constant_Size) {
06891
06892 for (i = 1; i <= GB_RANK(gb_idx); i++) {
06893 fprintf(out_file, " %-16s= %-7d %-15s %-15s %-15s %-15s\n",
06894 "Dimension", i,
06895 convert_to_string(GB_LOWER_BOUND(gb_idx,i),
06896 GT_LINEAR_TYPE(GB_LB_TYPE(gb_idx,i)),
06897 conv_str),
06898 print_global_type_f(GB_LB_TYPE(gb_idx,i)),
06899 convert_to_string(GB_UPPER_BOUND(gb_idx,i),
06900 GT_LINEAR_TYPE(GB_UB_TYPE(gb_idx,i)),
06901 conv_str2),
06902 print_global_type_f(GB_UB_TYPE(gb_idx,i)));
06903 }
06904 }
06905
06906 putc ('\n', out_file);
06907
06908 EXIT:
06909
06910 fflush (out_file);
06911 return;
06912
06913 }
06914
06915
06916
06917
06918
06919
06920
06921
06922
06923
06924
06925 static void dump_gl_ntry(FILE *out_file,
06926 int gl_idx)
06927
06928 {
06929 if (gl_idx > global_line_tbl_idx) {
06930 fprintf(out_file, "\n*FE90-ERROR* GL index value [%d] is out of range.\n",
06931 gl_idx);
06932 return;
06933 }
06934
06935 fprintf(out_file,"%-s\n", GL_FILE_NAME_PTR(gl_idx));
06936 fprintf(out_file,"%-s\n", GL_PATH_NAME_PTR(gl_idx));
06937
06938 if (full_debug_dump) {
06939 fprintf(out_file," %-22s= %-10d\n",
06940 "IDX", gl_idx);
06941
06942 fprintf(out_file," %-22s= %-10d %-20s= %-10d\n",
06943 "GL_PATH_NAME_IDX", GL_PATH_NAME_IDX(gl_idx),
06944 "GL_FILE_NAME_IDX", GL_FILE_NAME_IDX(gl_idx));
06945 }
06946
06947 fprintf(out_file," %-22s= %-10d %-20s= %-10d\n",
06948 "GL_CIF_FILE_ID", GL_CIF_FILE_ID(gl_idx),
06949 "GL_FILE_LINE", GL_FILE_LINE(gl_idx));
06950
06951 fprintf(out_file," %-22s= %-10d %-20s= %-10d\n",
06952 "GL_FILE_NAME_LEN", GL_FILE_NAME_LEN(gl_idx),
06953 "GL_GLOBAL_LINE", GL_GLOBAL_LINE(gl_idx));
06954
06955 fprintf(out_file," %-22s= %-10d %-20s= %-10d\n",
06956 "GL_INCLUDE_FILE_COL", GL_INCLUDE_FILE_COL(gl_idx),
06957 "GL_INCLUDE_FILE_LINE", GL_INCLUDE_FILE_LINE(gl_idx));
06958
06959
06960 fprintf(out_file," %-22s= %-10d %-20s= %-10d\n",
06961 "GL_PATH_NAME_LEN", GL_PATH_NAME_LEN(gl_idx),
06962 "GL_SOURCE_LINES", GL_SOURCE_LINES(gl_idx));
06963
06964 return;
06965
06966 }
06967
06968
06969
06970
06971
06972
06973
06974
06975
06976
06977
06978 static void dump_gn_ntry(FILE *out_file,
06979 int gn_idx)
06980
06981 {
06982 if (gn_idx > global_name_tbl_idx) {
06983 fprintf(out_file, "\n*FE90-ERROR* GN index value [%d] is out of range.\n",
06984 gn_idx);
06985 return;
06986 }
06987
06988 fprintf(out_file, "%-s\n", GN_NAME_PTR(gn_idx));
06989
06990 fprintf(out_file, " %-16s= %-7d %-16s= %-7d \n",
06991 "IDX", gn_idx,
06992 "GN_ATTR_IDX", GN_ATTR_IDX(gn_idx));
06993
06994 fprintf(out_file, " %-16s= %-7d %-16s= %-7d\n",
06995 "GN_NAME_IDX", GN_NAME_IDX(gn_idx),
06996 "GN_NAME_LEN", GN_NAME_LEN(gn_idx));
06997 return;
06998
06999 }
07000
07001
07002
07003
07004
07005
07006
07007
07008
07009
07010
07011
07012
07013
07014
07015
07016
07017
07018 static void dump_gt_ntry(FILE *out_file,
07019 int gt_idx)
07020
07021 {
07022 char conv_str[80];
07023
07024
07025 if (gt_idx > global_type_tbl_idx) {
07026 fprintf(out_file,"\n*FE90-ERROR* GT index value [%d] is out of range.\n",
07027 gt_idx);
07028 return;
07029 }
07030
07031 fprintf(out_file," %-25s %-25s %-26s\n",
07032 basic_type_str[GT_TYPE(gt_idx)],
07033 lin_type_str[GT_LINEAR_TYPE(gt_idx)],
07034 type_desc_str[GT_DESC(gt_idx)]);
07035
07036 fprintf(out_file, " %-16s= %-7d %-16s= %-7d",
07037 "GT_DCL_VALUE", GT_DCL_VALUE(gt_idx),
07038 "IDX", gt_idx);
07039
07040 if (GT_TYPE(gt_idx) == Character) {
07041 fprintf(out_file," %-25s \n %-16s= %-s\n",
07042 type_char_class_str[GT_CHAR_CLASS(gt_idx)],
07043 "GT_LENGTH",
07044 convert_to_string(GT_LENGTH(gt_idx),
07045 GT_LENGTH_LIN_TYPE(gt_idx),
07046 conv_str));
07047 }
07048 else if (GT_TYPE(gt_idx) == CRI_Ptr) {
07049 #if defined(_HOST32) && defined(_TARGET64)
07050 fprintf(out_file, " %-16s= %-7Ld\n",
07051 "GT_PTR_INCREMENT", GT_PTR_INCREMENT(gt_idx));
07052 #else
07053 fprintf(out_file, " %-16s= %-7ld\n",
07054 "GT_PTR_INCREMENT", GT_PTR_INCREMENT(gt_idx));
07055 #endif
07056 }
07057 else if (GT_TYPE(gt_idx) == Structure) {
07058 fprintf(out_file, " %-16s= %-7d\n",
07059 "GT_STRUCT_IDX", GT_STRUCT_IDX(gt_idx));
07060
07061 dump_ga_ntry(out_file, GT_STRUCT_IDX(gt_idx));
07062 }
07063 else {
07064 fprintf(out_file, " %-16s= %-33s\n",
07065 "GT_BIT_LEN", CONVERT_CVAL_TO_STR(>_BIT_LEN(gt_idx),
07066 Integer_8,
07067 conv_str));
07068 }
07069
07070 putc ('\n', out_file);
07071
07072 fflush (out_file);
07073 return;
07074
07075 }
07076
07077
07078
07079
07080
07081
07082
07083
07084
07085
07086
07087
07088
07089
07090
07091
07092
07093
07094
07095
07096
07097 static void dump_hn_ntry(FILE *out_file,
07098 int idx,
07099 boolean print_the_attr)
07100
07101 {
07102
07103 if (idx > hidden_name_tbl_idx) {
07104 fprintf(out_file, "\n*FE90-ERROR* HN index value [%d] is out of range.\n",
07105 idx);
07106 return;
07107 }
07108
07109 if (HN_ATTR_IDX(idx) != NULL_IDX) {
07110
07111 if (HN_NAME_IDX(idx) != NULL_IDX) {
07112 fprintf(out_file, "%-32.32s ",&name_pool[HN_NAME_IDX(idx)].name_char);
07113 }
07114 else {
07115 fprintf(out_file, "%-32.32s ", "**No name - HN_NAME_IDX is 0**");
07116 }
07117 }
07118 else {
07119 fprintf(out_file, "%-32.32s ", "**Error** - HN_ATTR_IDX = 0**");
07120 }
07121
07122 fprintf(out_file, "%-8s= %-7d %-16s= %-8d\n",
07123 "IDX", idx,
07124 "HN_ATTR_IDX", HN_ATTR_IDX(idx));
07125
07126 fprintf(out_file, " %-16s= %-7d %-16s= %-8d\n",
07127 "HN_NAME_IDX", HN_NAME_IDX(idx),
07128 "HN_NAME_LEN", HN_NAME_LEN(idx));
07129
07130 if (print_the_attr && HN_ATTR_IDX(idx) != NULL_IDX) {
07131 putc ('\n', out_file);
07132 dump_at_ntry(out_file, HN_ATTR_IDX(idx), TRUE);
07133 }
07134
07135 putc ('\n', out_file);
07136
07137 return;
07138
07139 }
07140
07141
07142
07143
07144
07145
07146
07147
07148
07149
07150
07151
07152
07153
07154
07155
07156
07157
07158
07159
07160 static void dump_il_ntry(FILE *out_file,
07161 int idx)
07162
07163 {
07164 if (idx > ir_list_tbl_idx) {
07165 fprintf(out_file, "\n*FE90-ERROR* IL index value [%d] is out of range.\n",
07166 idx);
07167 return;
07168 }
07169
07170 fprintf(out_file, "%s= %-8d",
07171 "IL_NEXT_LIST_IDX", IL_NEXT_LIST_IDX(idx));
07172
07173 if (! IL_ARG_DESC_VARIANT(idx)) {
07174 fprintf(out_file, " %s= %-8d\n",
07175 "IL_PREV_LIST_IDX", IL_PREV_LIST_IDX(idx));
07176 }
07177 else {
07178 fprintf(out_file, " %s= %-8d\n",
07179 "IL_ARG_DESC_IDX", IL_ARG_DESC_IDX(idx));
07180 putc('\n', out_file);
07181 }
07182
07183 if (IL_FLD(idx) == IL_Tbl_Idx) {
07184 fprintf(out_file, "%s= %-8d ",
07185 "IL_LIST_CNT", IL_LIST_CNT(idx));
07186 }
07187 else {
07188 fprintf(out_file, "%s= %-8d %s= %-3d ",
07189 "IL_LINE_NUM", IL_LINE_NUM(idx),
07190 "IL_COL_NUM", IL_COL_NUM(idx));
07191 }
07192
07193 fprintf(out_file, "%s= %s %s= ",
07194 "IL_FLD", field_str[IL_FLD(idx)], "IL_IDX");
07195
07196 if (IL_IDX(idx) != NULL_IDX) {
07197 fprintf(out_file, "%-8d\n", IL_IDX(idx));
07198 }
07199 else {
07200 fprintf(out_file, "%s\n", "*NULL_IDX*");
07201 }
07202
07203 putc ('\n', out_file);
07204
07205 }
07206
07207
07208
07209
07210
07211
07212
07213
07214
07215
07216
07217
07218
07219
07220
07221
07222
07223 static void dump_ir_ntry(FILE *out_file,
07224 int idx,
07225 int indent)
07226
07227 {
07228 int i;
07229 boolean io_list = FALSE;
07230 char n_shift[INDENT_SIZE + 1];
07231 char shift[80];
07232 int type_idx;
07233 long_type io_type_code[2];
07234
07235
07236 if (idx > ir_tbl_idx) {
07237 fprintf(out_file, "\n*FE90-ERROR* IR index value [%d] is out of range.\n",
07238 idx);
07239 return;
07240 }
07241
07242 for (i = 0; i < INDENT_SIZE * indent; i++) {
07243 shift[i] = ' ';
07244 if (i == 79)
07245 break;
07246 }
07247 shift[i] = '\0';
07248 for (i = 0; i < INDENT_SIZE; i++) {
07249 n_shift[i] = ' ';
07250 }
07251
07252 n_shift[i] = '\0';
07253 type_idx = IR_TYPE_IDX(idx);
07254
07255 fprintf(out_file, "%s%s idx = %d", shift, operator_str[IR_OPR(idx)], idx);
07256
07257 if (type_idx == NULL_IDX) {
07258 fprintf(out_file, " %s ", "NO TYPE");
07259 }
07260 else {
07261 fprintf(out_file, " %s ", print_type_f(type_idx));
07262 }
07263
07264 if (IR_OPR(idx) >= Dv_Whole_Copy_Opr &&
07265 IR_OPR(idx) <= Dv_Set_Stride_Mult) {
07266 fprintf(out_file, " dim = %d", IR_DV_DIM(idx));
07267 }
07268 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX) || defined(_TARGET_OS_DARWIN))
07269 else if (IR_OPR(idx) == Call_Opr) {
07270 if (IR_INLINE_STATE(idx) == Inline_Sgi) {
07271 fprintf(out_file, " INLINE ");
07272 }
07273 else if (IR_INLINE_STATE(idx) == Noinline_Sgi) {
07274 fprintf(out_file, " NOINLINE ");
07275 }
07276 }
07277 # endif
07278
07279 if ((IR_OPR(idx) == Subscript_Opr ||
07280 IR_OPR(idx) == Section_Subscript_Opr ||
07281 IR_OPR(idx) == Substring_Opr) &&
07282 IR_BOUNDS_DONE(idx)) {
07283
07284 fprintf(out_file, " BOUNDS DONE ");
07285 }
07286
07287 if (IR_OPR(idx) == Whole_Subscript_Opr &&
07288 IR_CONTIG_ARRAY(idx)) {
07289
07290 fprintf(out_file, " CONTIGUOUS ARRAY ");
07291 }
07292
07293 if (IR_OPR(idx) == Subscript_Opr &&
07294 IR_WHOLE_ARRAY(idx)) {
07295
07296 fprintf(out_file, " WHOLE ARRAY ");
07297 }
07298
07299 if (IR_OPR(idx) == Read_Formatted_Opr ||
07300 IR_OPR(idx) == Read_Unformatted_Opr ||
07301 IR_OPR(idx) == Read_Namelist_Opr ||
07302 IR_OPR(idx) == Write_Formatted_Opr ||
07303 IR_OPR(idx) == Write_Unformatted_Opr ||
07304 IR_OPR(idx) == Write_Namelist_Opr ||
07305 IR_OPR(idx) == Inquire_Iolength_Opr) {
07306
07307 io_list = TRUE;
07308 }
07309
07310 fprintf(out_file, " rank = %d;", IR_RANK(idx));
07311 fprintf(out_file, " line = %d, col = %d\n", IR_LINE_NUM(idx),
07312 IR_COL_NUM(idx));
07313
07314 if (IR_OPR(idx) == Dv_Whole_Def_Opr) {
07315
07316 fprintf(out_file, "%sLeft opnd is %s;", shift, field_str[IR_FLD_L(idx)]);
07317
07318 switch (IR_FLD_L(idx)) {
07319 case CN_Tbl_Idx :
07320 case AT_Tbl_Idx :
07321 fprintf(out_file," line = %d, col = %d\n",IR_LINE_NUM_L(idx),
07322 IR_COL_NUM_L(idx));
07323 break;
07324 case IL_Tbl_Idx :
07325 fprintf(out_file," list cnt = %d\n", IR_LIST_CNT_L(idx));
07326 break;
07327 default :
07328 fprintf(out_file,"\n");
07329 break;
07330 }
07331
07332 #ifdef KEY
07333 print_Dv_Whole_Def_Opr(out_file, IR_IDX_L(idx),
07334 indent + 1, IR_LIST_CNT_L(idx), IR_DV_DIM(idx));
07335 #else
07336 print_Dv_Whole_Def_Opr(out_file, IR_IDX_L(idx),
07337 indent + 1, IR_LIST_CNT_L(idx));
07338 #endif
07339 }
07340 else if (IR_OPR(idx) == Doacross_Dollar_Opr ||
07341 IR_OPR(idx) == Psection_Par_Opr ||
07342 IR_OPR(idx) == Singleprocess_Par_Opr ||
07343 IR_OPR(idx) == Parallel_Do_Par_Opr ||
07344 IR_OPR(idx) == Parallel_Par_Opr ||
07345 IR_OPR(idx) == Pdo_Par_Opr) {
07346
07347
07348 fprintf(out_file, "%sLeft opnd is %s;", shift, field_str[IR_FLD_L(idx)]);
07349
07350 switch (IR_FLD_L(idx)) {
07351 case CN_Tbl_Idx :
07352 case AT_Tbl_Idx :
07353 fprintf(out_file," line = %d, col = %d\n",IR_LINE_NUM_L(idx),
07354 IR_COL_NUM_L(idx));
07355 break;
07356 case IL_Tbl_Idx :
07357 fprintf(out_file," list cnt = %d\n", IR_LIST_CNT_L(idx));
07358 break;
07359 default :
07360 fprintf(out_file,"\n");
07361 break;
07362 }
07363
07364 print_mp_dir_opr(out_file, IR_IDX_L(idx),
07365 indent + 1, IR_LIST_CNT_L(idx));
07366 }
07367 else if (IR_OPR(idx) == Do_Open_Mp_Opr ||
07368 IR_OPR(idx) == Parallel_Open_Mp_Opr ||
07369 IR_OPR(idx) == Paralleldo_Open_Mp_Opr ||
07370 IR_OPR(idx) == Parallelsections_Open_Mp_Opr ||
07371 IR_OPR(idx) == Sections_Open_Mp_Opr ||
07372 IR_OPR(idx) == Single_Open_Mp_Opr) {
07373
07374
07375 fprintf(out_file, "%sLeft opnd is %s;", shift, field_str[IR_FLD_L(idx)]);
07376
07377 switch (IR_FLD_L(idx)) {
07378 case CN_Tbl_Idx :
07379 case AT_Tbl_Idx :
07380 fprintf(out_file," line = %d, col = %d\n",IR_LINE_NUM_L(idx),
07381 IR_COL_NUM_L(idx));
07382 break;
07383 case IL_Tbl_Idx :
07384 fprintf(out_file," list cnt = %d\n", IR_LIST_CNT_L(idx));
07385 break;
07386 default :
07387 fprintf(out_file,"\n");
07388 break;
07389 }
07390
07391 print_open_mp_dir_opr(out_file, IR_IDX_L(idx),
07392 indent + 1, IR_LIST_CNT_L(idx));
07393 }
07394 else {
07395
07396 if (IR_OPR(idx) == Io_Item_Type_Code_Opr) {
07397 make_io_type_code(IR_TYPE_IDX(idx), io_type_code);
07398 dump_io_type_code_ntry(out_file, io_type_code, indent + 1);
07399 }
07400
07401 fprintf(out_file, "%sLeft opnd is %s;", shift, field_str[IR_FLD_L(idx)]);
07402
07403 switch (IR_FLD_L(idx)) {
07404 case CN_Tbl_Idx :
07405 case AT_Tbl_Idx :
07406 case SB_Tbl_Idx :
07407 fprintf(out_file," line = %d, col = %d\n",IR_LINE_NUM_L(idx),
07408 IR_COL_NUM_L(idx));
07409 break;
07410 case IL_Tbl_Idx :
07411 fprintf(out_file," list cnt = %d\n", IR_LIST_CNT_L(idx));
07412 break;
07413 default :
07414 fprintf(out_file,"\n");
07415 break;
07416 }
07417
07418 switch (IR_FLD_L(idx)) {
07419 case NO_Tbl_Idx :
07420 break;
07421 case CN_Tbl_Idx :
07422 print_const_entry(out_file, IR_IDX_L(idx), indent + 1);
07423 break;
07424 case AT_Tbl_Idx :
07425 print_attr_name(out_file, IR_IDX_L(idx), indent + 1);
07426 break;
07427 case SB_Tbl_Idx :
07428 fprintf(out_file,"%s\n", SB_NAME_PTR(IR_IDX_L(idx)));
07429 break;
07430 case IR_Tbl_Idx :
07431 dump_ir_ntry(out_file, IR_IDX_L(idx), indent + 1);
07432 break;
07433 case IL_Tbl_Idx :
07434 if (IR_IDX_L(idx) != NULL_IDX && IR_LIST_CNT_L(idx) > 0) {
07435 print_list(out_file, IR_IDX_L(idx),
07436 indent + 1, IR_LIST_CNT_L(idx), io_list);
07437 }
07438 break;
07439 case SH_Tbl_Idx :
07440 fprintf(out_file, "%s%sStmt Header idx = %d\n", shift,
07441 n_shift, IR_IDX_L(idx));
07442 break;
07443 }
07444
07445 fprintf(out_file,"%sRight operand is %s;", shift,
07446 field_str[IR_FLD_R(idx)]);
07447
07448 switch (IR_FLD_R(idx)) {
07449 case CN_Tbl_Idx :
07450 case AT_Tbl_Idx :
07451 case SB_Tbl_Idx :
07452 fprintf(out_file," line = %d, col = %d\n",
07453 IR_LINE_NUM_R(idx), IR_COL_NUM_R(idx));
07454 break;
07455 case IL_Tbl_Idx :
07456 fprintf(out_file," list cnt = %d\n", IR_LIST_CNT_R(idx));
07457 break;
07458 default :
07459 fprintf(out_file,"\n");
07460 break;
07461 }
07462
07463
07464 switch (IR_FLD_R(idx)) {
07465 case NO_Tbl_Idx :
07466 break;
07467 case CN_Tbl_Idx :
07468 print_const_entry(out_file, IR_IDX_R(idx), indent + 1);
07469 break;
07470 case AT_Tbl_Idx :
07471 print_attr_name(out_file, IR_IDX_R(idx), indent + 1);
07472 break;
07473 case SB_Tbl_Idx :
07474 fprintf(out_file,"%s\n", SB_NAME_PTR(IR_IDX_R(idx)));
07475 break;
07476 case IR_Tbl_Idx :
07477 dump_ir_ntry(out_file, IR_IDX_R(idx), indent + 1);
07478 break;
07479 case IL_Tbl_Idx :
07480 if (IR_IDX_R(idx) != NULL_IDX && IR_LIST_CNT_R(idx) > 0) {
07481 print_list(out_file, IR_IDX_R(idx),
07482 indent + 1, IR_LIST_CNT_R(idx), io_list);
07483 }
07484 break;
07485 case SH_Tbl_Idx :
07486 fprintf(out_file, "%s%sStmt Header idx = %d\n", shift,
07487 n_shift, IR_IDX_R(idx));
07488 break;
07489 }
07490 }
07491
07492 return;
07493
07494 }
07495
07496
07497
07498
07499
07500
07501
07502
07503
07504
07505
07506
07507
07508
07509
07510
07511
07512
07513
07514
07515
07516 static void dump_ln_ntry(FILE *out_file,
07517 int idx,
07518 boolean print_the_attr)
07519
07520 {
07521
07522 if (idx > loc_name_tbl_idx) {
07523 fprintf(out_file, "\n*FE90-ERROR* LN index value [%d] is out of range.\n",
07524 idx);
07525 return;
07526 }
07527
07528 if (LN_ATTR_IDX(idx) != NULL_IDX) {
07529
07530 if (LN_NAME_IDX(idx) != NULL_IDX) {
07531 fprintf(out_file, "%-32.32s ",&name_pool[LN_NAME_IDX(idx)].name_char);
07532 }
07533 else {
07534 fprintf(out_file, "%-32.32s ", "**No name - LN_NAME_IDX is 0**");
07535 }
07536 }
07537 else {
07538 fprintf(out_file, "%-32.32s ", "**Error** - LN_ATTR_IDX = 0**");
07539 }
07540
07541 fprintf(out_file, "%-10s= %-7d %-16s= %-8d\n",
07542 "IDX", idx,
07543 "LN_ATTR_IDX", LN_ATTR_IDX(idx));
07544 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8d\n",
07545 "LN_DEF_LOC", boolean_str[LN_DEF_LOC(idx)],
07546 "LN_NAME_LEN", LN_NAME_LEN(idx),
07547 "LN_NAME_IDX", LN_NAME_IDX(idx));
07548 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
07549 "LN_IN_ONLY_LIST", boolean_str[LN_IN_ONLY_LIST(idx)],
07550 "LN_NEW_NAME", boolean_str[LN_NEW_NAME(idx)],
07551 "LN_RENAMED", boolean_str[LN_RENAMED(idx)]);
07552
07553 if (print_the_attr && LN_ATTR_IDX(idx) != NULL_IDX) {
07554 putc ('\n', out_file);
07555 dump_at_ntry(out_file, LN_ATTR_IDX(idx), TRUE);
07556 }
07557
07558 putc ('\n', out_file);
07559
07560 return;
07561
07562 }
07563
07564
07565
07566
07567
07568
07569
07570
07571
07572
07573
07574
07575
07576
07577
07578
07579
07580
07581
07582 static void dump_ml_ntry(FILE *out_file,
07583 int idx)
07584
07585 {
07586 if (idx > mod_link_tbl_idx) {
07587 fprintf(out_file, "\n*FE90-ERROR* ML index value [%d] is out of range.\n",
07588 idx);
07589 return;
07590 }
07591
07592 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d %-16s= %-9d\n", " ",
07593 "ML_AT_COMPRESSED_IDX", boolean_str[ML_AT_COMPRESSED_IDX(idx)],
07594 "ML_AT_IDX", ML_AT_IDX(idx),
07595 "IDX", idx);
07596
07597 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8s %-16s= %-9s\n", " ",
07598 "ML_AT_KEEP_ME", boolean_str[ML_AT_KEEP_ME(idx)],
07599 "ML_AT_LN_NAME", boolean_str[ML_AT_LN_NAME(idx)],
07600 "ML_AT_SEARCHED", boolean_str[ML_AT_SEARCHED(idx)]);
07601
07602 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07603 "ML_BD_KEEP_ME", boolean_str[ML_BD_KEEP_ME(idx)],
07604 "ML_BD_IDX", ML_BD_IDX(idx));
07605
07606 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d %-16s= %-9s\n", " ",
07607 "ML_CN_KEEP_ME", boolean_str[ML_CN_KEEP_ME(idx)],
07608 "ML_CN_IDX", ML_CN_IDX(idx),
07609 "ML_CP_DALIGN_ME", boolean_str[ML_CP_DALIGN_ME(idx)]);
07610
07611 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d %-16s= %-9d\n", " ",
07612 "ML_CP_KEEP_ME", boolean_str[ML_CP_KEEP_ME(idx)],
07613 "ML_CP_IDX", ML_CP_IDX(idx),
07614 "ML_CP_LEN", ML_CP_LEN(idx));
07615
07616 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07617 "ML_IL_KEEP_ME", boolean_str[ML_IL_KEEP_ME(idx)],
07618 "ML_IL_IDX", ML_IL_IDX(idx));
07619
07620 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07621 "ML_IR_KEEP_ME", boolean_str[ML_IR_KEEP_ME(idx)],
07622 "ML_IR_IDX", ML_IR_IDX(idx));
07623
07624 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07625 "ML_LN_KEEP_ME", boolean_str[ML_LN_KEEP_ME(idx)],
07626 "ML_LN_IDX", ML_LN_IDX(idx));
07627
07628 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d %-16s= %-9d\n", " ",
07629 "ML_NP_KEEP_ME", boolean_str[ML_NP_KEEP_ME(idx)],
07630 "ML_NP_IDX", ML_NP_IDX(idx),
07631 "ML_NP_LEN", ML_NP_LEN(idx));
07632
07633 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07634 "ML_SB_KEEP_ME", boolean_str[ML_SB_KEEP_ME(idx)],
07635 "ML_SB_IDX", ML_SB_IDX(idx));
07636
07637 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07638 "ML_SH_KEEP_ME", boolean_str[ML_SH_KEEP_ME(idx)],
07639 "ML_SH_IDX", ML_SH_IDX(idx));
07640
07641 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07642 "ML_SN_KEEP_ME", boolean_str[ML_SN_KEEP_ME(idx)],
07643 "ML_SN_IDX", ML_SN_IDX(idx));
07644
07645 fprintf(out_file, "%4s%-15s= %-2s %-15s= %-8d\n", " ",
07646 "ML_TYP_KEEP_ME", boolean_str[ML_TYP_KEEP_ME(idx)],
07647 "ML_TYP_IDX", ML_TYP_IDX(idx));
07648
07649 putc ('\n', out_file);
07650
07651 return;
07652
07653 }
07654
07655
07656
07657
07658
07659
07660
07661
07662
07663
07664
07665
07666
07667
07668
07669
07670
07671
07672 static void dump_ro_ntry(FILE *out_file,
07673 int ro_idx)
07674
07675 {
07676
07677 if (ro_idx > rename_only_tbl_idx) {
07678 fprintf(out_file, "\n*FE90-ERROR* ML index value [%d] is out of range.\n",
07679 ro_idx);
07680 return;
07681 }
07682
07683 fprintf(out_file, "%4s%-32.32s", " ", RO_NAME_PTR(ro_idx));
07684
07685 if (full_debug_dump) {
07686 fprintf(out_file, " %-4s= %-7d %-16s= %-9d\n",
07687 "IDX", ro_idx,
07688 "RO_NEXT_IDX", RO_NEXT_IDX(ro_idx));
07689 }
07690 else {
07691 fprintf(out_file, "\n");
07692 }
07693
07694 fprintf(out_file, "%4s%-16s= %-2d %-16s= %-7d %-16s= %-9d\n", " ",
07695 "RO_COLUMN_NUM", RO_COLUMN_NUM(ro_idx),
07696 "RO_LINE_NUM", RO_LINE_NUM(ro_idx),
07697 "RO_NAME_LEN", RO_NAME_LEN(ro_idx));
07698
07699 if (RO_RENAME_IDX(ro_idx) != NULL_IDX) {
07700 ro_idx = RO_RENAME_IDX(ro_idx);
07701
07702 fprintf(out_file, "%4s%-16s %-2s %-16s= %-s\n", " ",
07703 "RENAMED", " ",
07704 "RO_NAME_PTR", RO_NAME_PTR(ro_idx));
07705
07706 fprintf(out_file, "%4s%-16s= %-2d %-16s= %-7d %-16s= %-9d\n", " ",
07707 "RO_COLUMN_NUM", RO_COLUMN_NUM(ro_idx),
07708 "RO_LINE_NUM", RO_LINE_NUM(ro_idx),
07709 "RO_NAME_LEN", RO_NAME_LEN(ro_idx));
07710
07711 fprintf(out_file, "%4s%-16s= %-2s %-16s= %-7s\n", " ",
07712 "RO_RENAME_NAME", boolean_str[RO_RENAME_NAME(ro_idx)],
07713 "RO_DUPLICATE_REN", boolean_str[RO_DUPLICATE_RENAME(ro_idx)]);
07714 }
07715
07716 fflush (out_file);
07717 return;
07718
07719 }
07720
07721
07722
07723
07724
07725
07726
07727
07728
07729
07730
07731
07732
07733
07734
07735
07736
07737
07738 static void dump_sb_ntry(FILE *out_file,
07739 int sb_idx)
07740
07741 {
07742
07743
07744 if (sb_idx > stor_blk_tbl_idx) {
07745 fprintf(out_file, "\n*FE90-ERROR* SB index value [%d] is out of range.\n",
07746 sb_idx);
07747 return;
07748 }
07749
07750 if (SB_NAME_IDX(sb_idx) != NULL_IDX) {
07751 fprintf(out_file, " %s\n", SB_NAME_PTR(sb_idx));
07752 }
07753
07754 fprintf(out_file, " %-16s= %-33s %-16s= %-8d\n",
07755 "SB_BLK_TYPE", sb_blk_type_str[SB_BLK_TYPE(sb_idx)],
07756 "IDX", sb_idx);
07757
07758 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-7s\n",
07759 "SB_ALIGN_SYMBOL", boolean_str[SB_ALIGN_SYMBOL(sb_idx)],
07760 "SB_AUXILIARY", boolean_str[SB_AUXILIARY(sb_idx)],
07761 "SB_BLANK_COMMON", boolean_str[SB_BLANK_COMMON(sb_idx)]);
07762
07763 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
07764 "SB_CACHE_ALIGN", boolean_str[SB_COMMON_NEEDS_OFFSET(sb_idx)],
07765 "SB_CIF_SYMBOL_ID", SB_CIF_SYMBOL_ID(sb_idx),
07766 "SB_COMMON_NEEDS_", boolean_str[SB_COMMON_NEEDS_OFFSET(sb_idx)]);
07767
07768 fprintf(out_file,
07769 #ifdef KEY
07770 " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
07771 "SB_BIND_ATTR", boolean_str[SB_BIND_ATTR(sb_idx)],
07772 #else
07773 " %-16s %-7s %-16s= %-7s %-16s= %-8s\n",
07774 " ", " ",
07775 #endif
07776 "SB_DCL_COMMON_DI", boolean_str[SB_DCL_COMMON_DIR(sb_idx)],
07777 "SB_DCL_ERR", boolean_str[SB_DCL_ERR(sb_idx)]);
07778
07779 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8s\n",
07780 "SB_DEF_COLUMN", SB_DEF_COLUMN(sb_idx),
07781 "SB_DEF_LINE", SB_DEF_LINE(sb_idx),
07782 "SB_DEF_MULT_SCPS", boolean_str[SB_DEF_MULT_SCPS(sb_idx)]);
07783
07784 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8d\n",
07785 "SB_DUPLICATE_COM", boolean_str[SB_DUPLICATE_COMMON(sb_idx)],
07786 "SB_EQUIVALENCED", boolean_str[SB_EQUIVALENCED(sb_idx)],
07787 "SB_FIRST_ATTR_ID", SB_FIRST_ATTR_IDX(sb_idx));
07788
07789 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
07790 "SB_HAS_RENAMES", boolean_str[SB_HAS_RENAMES(sb_idx)],
07791 "SB_HIDDEN", boolean_str[SB_HIDDEN(sb_idx)],
07792 "SB_HOST_ASSOCIAT", boolean_str[SB_HOST_ASSOCIATED(sb_idx)]);
07793
07794 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
07795 "SB_HOSTED_STACK", boolean_str[SB_HOSTED_STACK(sb_idx)],
07796 "SB_HOSTED_STATIC", boolean_str[SB_HOSTED_STATIC(sb_idx)],
07797 "SB_IS_COMMON", boolean_str[SB_IS_COMMON(sb_idx)]);
07798
07799 print_fld_idx(out_file, "SB_LEN_IDX",
07800 SB_LEN_FLD(sb_idx), SB_LEN_IDX(sb_idx));
07801
07802 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8s\n",
07803 "SB_LAST_ATTR_LIS", SB_LAST_ATTR_LIST(sb_idx),
07804 "SB_MERGED_BLK_ID", SB_MERGED_BLK_IDX(sb_idx),
07805 "SB_MODULE", boolean_str[SB_MODULE(sb_idx)]);
07806
07807 if (SB_MODULE(sb_idx)) {
07808
07809 if (SB_MODULE_IDX(sb_idx) == NULL_IDX) {
07810 fprintf(out_file, " %-16s= %-7d\n",
07811 "SB_MODULE_IDX", SB_MODULE_IDX(sb_idx));
07812 }
07813 else {
07814 fprintf(out_file, " %-16s= %-7d %-33s\n",
07815 "SB_MODULE_IDX", SB_MODULE_IDX(sb_idx),
07816 print_at_name(SB_MODULE_IDX(sb_idx)));
07817 }
07818 }
07819
07820 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8d\n",
07821 "SB_NAME_LEN", SB_NAME_LEN(sb_idx),
07822 "SB_ORIG_SCP_IDX", SB_ORIG_SCP_IDX(sb_idx),
07823 #ifdef KEY
07824 "SB_EXT_NAME_IDX", SB_EXT_NAME_IDX(sb_idx)
07825 #else
07826 "SB_PAD_AMOUNT", SB_PAD_AMOUNT(sb_idx)
07827 #endif
07828 );
07829 #ifdef KEY
07830 if (SB_EXT_NAME_IDX(sb_idx)) {
07831 fprintf(out_file, " %-16s= %-7d %-16s= %-16s\n",
07832 "SB_EXT_NAME_LEN", SB_EXT_NAME_LEN(sb_idx),
07833 "SB_EXT_NAME", SB_EXT_NAME_PTR(sb_idx));
07834 }
07835 #endif
07836
07837 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
07838 "SB_PAD_AMOUNT_SE", boolean_str[SB_PAD_AMOUNT_SET(sb_idx)],
07839 "SB_PAD_BLK", boolean_str[SB_PAD_BLK(sb_idx)],
07840 "SB_RUNTIME_INIT", boolean_str[SB_RUNTIME_INIT(sb_idx)]);
07841
07842 fprintf(out_file, " %-16s= %-7s %-16s= %-7d %-16s= %-8s\n",
07843 "SB_SAVED", boolean_str[SB_SAVED(sb_idx)],
07844 "SB_SCP_IDX", SB_SCP_IDX(sb_idx),
07845 "SB_SECTION_GP", boolean_str[SB_SECTION_GP(sb_idx)]);
07846
07847 fprintf(out_file, " %-16s= %-7s %-16s= %-7s %-16s= %-8s\n",
07848 "SB_SECTION_NON_", boolean_str[SB_SECTION_NON_GP(sb_idx)],
07849 "SB_SYMMETRIC", boolean_str[SB_SYMMETRIC(sb_idx)],
07850 "SB_USE_ASSOCIATE", boolean_str[SB_USE_ASSOCIATED(sb_idx)]);
07851
07852 fprintf(out_file, " %-16s= %-7s\n",
07853 "SB_VOLATILE", boolean_str[SB_VOLATILE(sb_idx)]);
07854
07855 putc ('\n', out_file);
07856
07857 fflush (out_file);
07858 return;
07859
07860 }
07861
07862
07863
07864
07865
07866
07867
07868
07869
07870
07871
07872
07873
07874
07875
07876
07877
07878
07879
07880 static void dump_scp_ntry (FILE *out_file,
07881 int scp_idx,
07882 int shift_cnt,
07883 boolean print_impl_tbl,
07884 boolean print_all_children)
07885
07886 {
07887 char ch;
07888 int idx;
07889 int save_scp_idx;
07890 char shift[80];
07891
07892
07893 PROCESS_SIBLING:
07894
07895 if (scp_idx > scp_tbl_idx) {
07896 fprintf(out_file,"\n*FE90-ERROR* SCP index value [%d] is out of range.\n",
07897 scp_idx);
07898 return;
07899 }
07900
07901 if (shift_cnt > 45) {
07902 fprintf(out_file, "\nFE90 - NESTING is too DEEP\n");
07903 shift_cnt = 45;
07904 }
07905
07906 for (idx = 0; idx < shift_cnt; idx++) {
07907 shift[idx] = ' ';
07908 }
07909 shift[shift_cnt] = '\0';
07910
07911 if (SCP_ATTR_IDX(scp_idx) != NULL_IDX) {
07912 fprintf(out_file, "%s%-32.32s", shift,
07913 AT_OBJ_NAME_PTR(SCP_ATTR_IDX(scp_idx)));
07914 }
07915 else if (scp_idx == INTRINSIC_SCP_IDX) {
07916 fprintf(out_file, "%s%-32.32s", shift, "*** INTRINSIC SCOPE ***");
07917 }
07918 else {
07919 fprintf(out_file, "%s%-32.32s", shift, "*** scope has no name ***");
07920 }
07921
07922 if (SCP_IN_ERR(scp_idx)) {
07923 fprintf(out_file, "%5s%s", " ", "*** SCOPE IN ERROR ***");
07924 }
07925
07926 fprintf(out_file,"\n%18s%-20s= %-7d %-20s= %-9d\n", " ",
07927 "IDX", scp_idx,
07928 "SCP_ALT_ENTRY_CNT", SCP_ALT_ENTRY_CNT(scp_idx));
07929
07930 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07931 "SCP_ASSIGN_LBL_CHAIN", SCP_ASSIGN_LBL_CHAIN(scp_idx),
07932 "SCP_ATTR_IDX", SCP_ATTR_IDX(scp_idx));
07933
07934 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07935 "SCP_ATTR_LIST", SCP_ATTR_LIST(scp_idx),
07936 "SCP_ATTR_LIST_EN", SCP_ATTR_LIST_END(scp_idx));
07937
07938 fprintf(out_file,"%18s%-20s= %-7d\n", " ",
07939 "SCP_CIF_ERR_LIST", SCP_CIF_ERR_LIST(scp_idx));
07940
07941 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9s\n", " ",
07942 "SCP_CIF_ID", SCP_CIF_ID(scp_idx),
07943 "SCP_COPY_ASSUMED_SHA",boolean_str[SCP_COPY_ASSUMED_SHAPE(scp_idx)]);
07944
07945 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07946 "SCP_COPY_ASSUMED_LIS", SCP_COPY_ASSUMED_LIST(scp_idx),
07947 "SCP_DARG_LIST", SCP_DARG_LIST(scp_idx));
07948
07949 # if 0
07950 fprintf(out_file,"%18s%-20s= %-7s %-20s= %-9s\n", " ",
07951 "SCP_DBG_PRINT_STMT", boolean_str[SCP_DBG_PRINT_STMT(scp_idx)],
07952 "SCP_DBG_PRINT_SYTB", boolean_str[SCP_DBG_PRINT_SYTB(scp_idx)]);
07953 # endif
07954
07955 fprintf(out_file,"%18s%-20s= %-27s\n", " ",
07956 "SCP_DEFAULT_STORAGE",
07957 sb_blk_type_str[SCP_DBG_PRINT_SYTB(scp_idx)]);
07958
07959 fprintf(out_file,"%18s%-20s= %-7s %-20s= %-9d\n", " ",
07960 "SCP_DOES_IO", boolean_str[SCP_DOES_IO(scp_idx)],
07961 "SCP_ENTRY_IDX", SCP_ENTRY_IDX(scp_idx));
07962
07963 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07964 "SCP_EXIT_IR_SH_IDX", SCP_EXIT_IR_SH_IDX(scp_idx),
07965 "SCP_FILE_PATH_IDX", SCP_FILE_PATH_IDX(scp_idx));
07966
07967 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07968 "SCP_FIRST_CHILD_IDX", SCP_FIRST_CHILD_IDX(scp_idx),
07969 "SCP_FIRST_EQUIV_GRP", SCP_FIRST_EQUIV_GRP(scp_idx));
07970
07971 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9s\n", " ",
07972 "SCP_FIRST_SH_IDX", SCP_FIRST_SH_IDX(scp_idx),
07973 "SCP_HAS_CALLS", boolean_str[SCP_HAS_CALLS(scp_idx)]);
07974
07975 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07976 "SCP_HN_FW_IDX", SCP_HN_FW_IDX(scp_idx),
07977 "SCP_HN_LW_IDX", SCP_HN_LW_IDX(scp_idx));
07978
07979 fprintf(out_file,"%18s%-20s= %-7s %-20s= %-9s\n", " ",
07980 "SCP_IGNORE_TKR", boolean_str[SCP_IGNORE_TKR(scp_idx)],
07981 "SCP_IMPL_NONE", boolean_str[SCP_IMPL_NONE(scp_idx)]);
07982
07983 fprintf(out_file,"%18s%-20s= %-7s %-20s= %-9s\n", " ",
07984 "SCP_IN_ERR", boolean_str[SCP_IN_ERR(scp_idx)],
07985 "SCP_IS_INTERFACE", boolean_str[SCP_IS_INTERFACE(scp_idx)]);
07986
07987 fprintf(out_file,"%18s%-20s= %-7s %-20s= %-9d\n", " ",
07988 "SCP_IS_USED_PROC", boolean_str[SCP_IS_USED_PROC(scp_idx)],
07989 "SCP_LAST_CHILD_IDX", SCP_LAST_CHILD_IDX(scp_idx));
07990
07991 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07992 "SCP_LAST_SH_IDX", SCP_LAST_SH_IDX(scp_idx),
07993 "SCP_LEVEL", SCP_LEVEL(scp_idx));
07994
07995 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
07996 "SCP_LN_FW_IDX", SCP_LN_FW_IDX(scp_idx),
07997 "SCP_LN_LW_IDX", SCP_LN_LW_IDX(scp_idx));
07998
07999 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08000 "SCP_NUM_CHILDREN", SCP_NUM_CHILDREN(scp_idx),
08001 "SCP_OPTIONAL_CHAR_TM", SCP_OPTIONAL_CHAR_TMP(scp_idx));
08002
08003 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9s\n", " ",
08004 "SCP_PARENT_IDX", SCP_PARENT_IDX(scp_idx),
08005 "SCP_PARENT_NONE", boolean_str[SCP_PARENT_NONE(scp_idx)]);
08006
08007 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08008 "SCP_RETURN_LABEL", SCP_RETURN_LABEL(scp_idx),
08009 "SCP_SB_BASED_IDX", SCP_SB_BASED_IDX(scp_idx));
08010
08011
08012 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08013 "SCP_SB_HOSTED_DATA", SCP_SB_HOSTED_DATA_IDX(scp_idx),
08014 "SCP_SB_HOSTED_STAC", SCP_SB_HOSTED_STACK_IDX(scp_idx));
08015
08016 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08017 "SCP_SB_HOSTED_STAT", SCP_SB_HOSTED_STATIC_IDX(scp_idx),
08018 "SCP_SB_STACK_IDX", SCP_SB_STACK_IDX(scp_idx));
08019
08020 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08021 "SCP_SB_STATIC_IDX", SCP_SB_STATIC_IDX(scp_idx),
08022 "SCP_SB_STATIC_INIT", SCP_SB_STATIC_INIT_IDX(scp_idx));
08023
08024 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08025 "SCP_SB_STATIC_UNINIT", SCP_SB_STATIC_UNINIT_IDX(scp_idx),
08026 "SCP_SB_SYMMETRIC", SCP_SB_SYMMETRIC_IDX(scp_idx));
08027
08028 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08029 "SCP_SIBLING_IDX", SCP_SIBLING_IDX(scp_idx),
08030 "SCP_RESHAPE_ARRA", SCP_RESHAPE_ARRAY_LIST(scp_idx));
08031
08032 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08033 "SCP_TMP_FW_IDX", SCP_TMP_FW_IDX(scp_idx),
08034 "SCP_TMP_FW_IDX2", SCP_TMP_FW_IDX2(scp_idx));
08035
08036 fprintf(out_file,"%18s%-20s= %-7d %-20s= %-9d\n", " ",
08037 "SCP_TMP_LIST", SCP_TMP_LIST(scp_idx),
08038 "SCP_USED_MODULE_LIST", SCP_USED_MODULE_LIST(scp_idx));
08039 #ifdef KEY
08040 fprintf(out_file,"%18s%-20s= %-7s\n", " ",
08041 "SCP_USES_IEEE", boolean_str[SCP_USES_IEEE(scp_idx)]);
08042 #endif
08043
08044
08045 if (print_impl_tbl) {
08046 for (idx = 0; idx < MAX_IMPL_CHS; idx++) {
08047 ch = 'A' + idx;
08048 fprintf(out_file,"%18s%c %24s %-16s= %-9s\n", " ",
08049 ch, " ", "IM_SET", boolean_str[IM_SET(scp_idx, idx)]);
08050 dump_typ_ntry(out_file, IM_TYPE_IDX(scp_idx,idx));
08051 fprintf(out_file,"%44s %-16s= %-9s\n", " ",
08052 "IM_STORAGE", implicit_storage_str[IM_STORAGE(scp_idx, idx)]);
08053 }
08054 }
08055 putc ('\n', out_file);
08056
08057 if (print_all_children) {
08058
08059 if (SCP_FIRST_CHILD_IDX(scp_idx) != NULL_IDX) {
08060 save_scp_idx = scp_idx;
08061 scp_idx = SCP_FIRST_CHILD_IDX(scp_idx);
08062 shift_cnt = shift_cnt + 5;
08063 dump_scp_ntry(out_file,
08064 scp_idx,
08065 shift_cnt,
08066 print_impl_tbl,
08067 TRUE);
08068 scp_idx = save_scp_idx;
08069 }
08070
08071 if (SCP_SIBLING_IDX(scp_idx) != NULL_IDX) {
08072 scp_idx = SCP_SIBLING_IDX(scp_idx);
08073 goto PROCESS_SIBLING;
08074 }
08075 }
08076
08077 fflush (out_file);
08078 return;
08079
08080 }
08081
08082
08083
08084
08085
08086
08087
08088
08089
08090
08091
08092
08093
08094
08095
08096
08097
08098
08099 static void dump_sn_ntry (FILE *out_file,
08100 int sn_idx)
08101
08102 {
08103 if (sn_idx > sec_name_tbl_idx) {
08104 fprintf(out_file, "\n*FE90-ERROR* SN index value [%d] is out of range.\n",
08105 sn_idx);
08106 return;
08107 }
08108
08109 fprintf(out_file, " %-51s", &name_pool[SN_NAME_IDX(sn_idx)].name_char);
08110
08111 fprintf(out_file, " %-16s= %-8d\n", " IDX", sn_idx);
08112
08113 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8d\n",
08114 "SN_COLUMN_NUM", SN_COLUMN_NUM(sn_idx),
08115 "SN_LINE_NUM", SN_LINE_NUM(sn_idx),
08116 "SN_NAME_LEN", SN_NAME_LEN(sn_idx));
08117
08118
08119
08120
08121
08122
08123 if (comp_phase == Decl_Semantics) {
08124 fprintf(out_file, " %-16s= %-7s\n",
08125 "SN_MATCHED_DARG", boolean_str[SN_MATCHED_DARG(sn_idx)]);
08126 }
08127
08128 fprintf(out_file, " %-16s= %-7d %-16s= %-7d %-16s= %-8d\n",
08129 "SN_NAME_IDX", SN_NAME_IDX(sn_idx),
08130 "SN_ATTR_IDX", SN_ATTR_IDX(sn_idx),
08131 "SN_SIBLING_LINK", SN_SIBLING_LINK(sn_idx));
08132
08133 fflush(out_file);
08134
08135 return;
08136
08137 }
08138
08139
08140
08141
08142
08143
08144
08145
08146
08147
08148
08149
08150
08151
08152
08153
08154
08155 static void dump_stmt_ntry(FILE *out_file,
08156 boolean print_stmt_ir)
08157 {
08158
08159 dump_trace_info(out_file, Stmt_Start, NULL, "SH_dump");
08160
08161 fprintf(out_file, "IDX = %-7d %s = %-7d %s = %d %s = %d\n",
08162 curr_stmt_sh_idx,
08163 "PREV SH IDX", SH_PREV_IDX(curr_stmt_sh_idx),
08164 "NEXT SH IDX", SH_NEXT_IDX(curr_stmt_sh_idx),
08165 "COL NUM", SH_COL_NUM(curr_stmt_sh_idx));
08166
08167 if (SH_LABELED(curr_stmt_sh_idx) &&
08168 ! (SH_COMPILER_GEN(curr_stmt_sh_idx) &&
08169 SH_STMT_TYPE(curr_stmt_sh_idx) == Continue_Stmt)) {
08170 fprintf(out_file, " *Stmt is labeled*\n");
08171 }
08172
08173 fprintf(out_file, "%16s%s = %-7d %-11s = %s %15s = %s\n", " ",
08174 "PARENT BLK IDX", SH_PARENT_BLK_IDX(curr_stmt_sh_idx),
08175 "LOOP END", boolean_str[SH_LOOP_END(curr_stmt_sh_idx)],
08176 "DOALL LOOP END",
08177 boolean_str[SH_DOALL_LOOP_END(curr_stmt_sh_idx)]);
08178
08179 if (print_stmt_ir && SH_IR_IDX(curr_stmt_sh_idx) != NULL_IDX) {
08180 dump_ir_ntry(out_file, SH_IR_IDX(curr_stmt_sh_idx), 1);
08181 }
08182
08183 return;
08184
08185 }
08186
08187
08188
08189
08190
08191
08192
08193
08194
08195
08196
08197
08198
08199
08200
08201
08202
08203
08204 static void dump_typ_ntry(FILE *out_file,
08205 int type_idx)
08206
08207 {
08208 char conv_str[80];
08209
08210
08211 if (type_idx > type_tbl_idx) {
08212 fprintf(out_file,"\n*FE90-ERROR* TYP index value [%d] is out of range.\n",
08213 type_idx);
08214 return;
08215 }
08216
08217 fprintf(out_file," %-25s %-25s %-26s\n",
08218 basic_type_str[TYP_TYPE(type_idx)],
08219 lin_type_str[TYP_LINEAR(type_idx)],
08220 type_desc_str[TYP_DESC(type_idx)]);
08221
08222 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
08223 "TYP_DCL_VALUE", TYP_DCL_VALUE(type_idx),
08224 "TYP_DP_HIT_ME", boolean_str[TYP_DP_HIT_ME(type_idx)],
08225 "IDX", type_idx);
08226
08227 if (TYP_TYPE(type_idx) == Character) {
08228
08229 fprintf(out_file," %-25s %-16s= %-8s\n",
08230 type_char_class_str[TYP_CHAR_CLASS(type_idx)],
08231 "TYP_RESOLVED", boolean_str[TYP_RESOLVED(type_idx)]);
08232
08233 print_fld_idx(out_file, "TYP_IDX",
08234 TYP_FLD(type_idx),
08235 TYP_IDX(type_idx));
08236
08237 if (TYP_ORIG_LEN_IDX(type_idx) != NULL_IDX) {
08238 print_fld_idx(out_file, "TYP_ORIG_LEN_IDX",
08239 TYP_FLD(type_idx),
08240 TYP_ORIG_LEN_IDX(type_idx));
08241 }
08242 }
08243 else if (TYP_TYPE(type_idx) == CRI_Ptr) {
08244 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-8d\n",
08245 "TYP_IDX", TYP_IDX(type_idx),
08246 "TYP_RESOLVED", boolean_str[TYP_RESOLVED(type_idx)],
08247 "TYP_PTR_INCREMEN", (int) TYP_PTR_INCREMENT(type_idx));
08248 }
08249 else {
08250 fprintf(out_file, " %-16s= %-7d %-16s= %-7s %-16s= %-7s\n",
08251 "TYP_IDX", TYP_IDX(type_idx),
08252 "TYP_KIND_CONST", boolean_str[TYP_KIND_CONST(type_idx)],
08253 "TYP_KIND_DOUBLE", boolean_str[TYP_KIND_DOUBLE(type_idx)]);
08254
08255 fprintf(out_file, " %-16s= %-7s %-16s= %-s\n",
08256 "TYP_RESOLVED", boolean_str[TYP_RESOLVED(type_idx)],
08257 "TYP_BIT_LEN", CONVERT_CVAL_TO_STR(&TYP_BIT_LEN(type_idx),
08258 Integer_8,
08259 conv_str));
08260 }
08261
08262 putc ('\n', out_file);
08263
08264 fflush (out_file);
08265 return;
08266
08267 }
08268
08269
08270
08271
08272
08273
08274
08275
08276
08277
08278
08279
08280
08281
08282
08283
08284
08285 static void dump_io_type_code_ntry(FILE *out_file,
08286 long_type *value,
08287 int indent)
08288
08289 {
08290 long_type dec_len = 0;
08291 int dp_flag = 0;
08292 int dv_type;
08293 long_type int_len = 0;
08294 int kind_star = 0;
08295 char shift[80];
08296 int i;
08297
08298 f90_type_t *type_code;
08299
08300 TRACE (Func_Entry, "dump_io_type_code_ntry", NULL);
08301
08302 for (i = 0; i < INDENT_SIZE * indent; i++) {
08303 shift[i] = ' ';
08304 if (i == 79)
08305 break;
08306 }
08307 shift[i] = '\0';
08308
08309 # ifdef _TYPE_CODE_64_BIT
08310
08311 type_code = (f90_type_t *)value;
08312
08313
08314 dv_type = type_code->type;
08315
08316 dp_flag = type_code->dpflag;
08317
08318 kind_star = type_code->kind_or_star;
08319
08320 int_len = type_code->int_len;
08321
08322 dec_len = type_code->int_len;
08323 # else
08324
08325 dv_type = ((*value) >> DV_TYPE_SHIFT) & 0xFF;
08326
08327 dp_flag = ((*value) >> DV_DP_SHIFT) & 1;
08328
08329 kind_star = ((*value) >> DV_KIND_STAR_SHIFT) & 07;
08330
08331 int_len = ((*value) >> DV_INT_LEN_SHIFT) & 0xFFF;
08332
08333 dec_len = ((*value) >> DV_DEC_LEN_SHIFT) & 0xFF;
08334 # endif
08335
08336 switch (dv_type) {
08337 case DV_TYPELESS:
08338 fprintf(out_file, "%sDV_TYPELESS ", shift);
08339 break;
08340 case DV_INTEGER:
08341 fprintf(out_file, "%sDV_INTEGER ", shift);
08342 break;
08343 case DV_REAL:
08344 fprintf(out_file, "%sDV_REAL ", shift);
08345 break;
08346 case DV_COMPLEX:
08347 fprintf(out_file, "%sDV_COMPLEX ", shift);
08348 break;
08349 case DV_LOGICAL:
08350 fprintf(out_file, "%sDV_LOGICAL ", shift);
08351 break;
08352 case DV_ASCII_CHAR:
08353 fprintf(out_file, "%sDV_ASCII_CHAR ", shift);
08354 break;
08355 case DV_ASCII_CHAR_SEQUENCE_STRUCT:
08356 fprintf(out_file, "%sDV_ASCII_CHAR_SEQUENCE_STRUCT ", shift);
08357 break;
08358 case DV_STRUCT:
08359 fprintf(out_file, "%sDV_STRUCT ", shift);
08360 break;
08361 case DV_BIT:
08362 fprintf(out_file, "%sDV_BIT ", shift);
08363 break;
08364 case DV_2_BYTE_CHAR:
08365 fprintf(out_file, "%sDV_2_BYTE_CHAR ", shift);
08366 break;
08367 case DV_2_BYTE_CHAR_SEQUENCE_STRUCT:
08368 fprintf(out_file, "%sDV_2_BYTE_CHAR_SEQUENCE_STRUCT ", shift);
08369 break;
08370 case DV_4_BYTE_CHAR:
08371 fprintf(out_file, "%sDV_4_BYTE_CHAR ", shift);
08372 break;
08373 case DV_4_BYTE_CHAR_SEQUENCE_STRUCT:
08374 fprintf(out_file, "%sDV_4_BYTE_CHAR_SEQUENCE_STRUCT ", shift);
08375 break;
08376 default:
08377 fprintf(out_file, "\n*FE90-ERROR* bad dv_type from io_type code\n");
08378 break;
08379 }
08380
08381 if (dp_flag) {
08382 fprintf(out_file, "DP = 1 ");
08383 }
08384 else {
08385 fprintf(out_file, "DP = 0 ");
08386 }
08387
08388 switch (kind_star) {
08389 case DV_DEFAULT_TYPED :
08390 fprintf(out_file, "DEFAULT TYPED ");
08391 break;
08392
08393 case DV_KIND_TYPED :
08394 fprintf(out_file, "KIND_TYPED ");
08395 break;
08396
08397 case DV_STAR_TYPED :
08398 fprintf(out_file, "STAR_TYPED ");
08399 break;
08400
08401 case DV_KIND_CONST :
08402 fprintf(out_file, "KIND_CONST ");
08403 break;
08404
08405 case DV_KIND_DOUBLE :
08406 fprintf(out_file, "KIND_DOUBLE ");
08407 break;
08408
08409
08410 default :
08411 fprintf(out_file, "***INVALID*** ");
08412 break;
08413
08414 }
08415
08416 #if defined(_HOST32) && defined(_TARGET64)
08417 fprintf(out_file,"INT_LEN = %" LONG_TYPE_FMT " ", int_len);
08418 fprintf(out_file,"DEC_LEN = %" LONG_TYPE_FMT " ", dec_len);
08419 #else
08420 fprintf(out_file,"INT_LEN = %ld ", int_len);
08421 fprintf(out_file,"DEC_LEN = %ld ", dec_len);
08422 #endif
08423
08424
08425 fprintf(out_file, "\n");
08426
08427 TRACE (Func_Exit, "dump_io_type_code_ntry", NULL);
08428
08429 return;
08430
08431 }
08432
08433 #ifdef KEY
08434 void debug_to_stderr() {
08435 debug_file = stderr;
08436 }
08437 #endif
08438
08439 # endif