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 static char USMID[] = "\n@(#)5.0_pl/sources/main.c 5.15 10/14/99 15:25:09\n";
00044
00045 # include "defines.h"
00046
00047 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) || defined(_HOST_OS_DARWIN)
00048 # include <sys/time.h>
00049 # include <sys/resource.h>
00050 # endif
00051
00052 # include <time.h>
00053
00054 # include "host.m"
00055 # include "host.h"
00056 # include "target.m"
00057 # include "target.h"
00058
00059 # include "globals.m"
00060 # include "tokens.m"
00061 # include "sytb.m"
00062 # include "debug.m"
00063
00064 # ifdef _ARITH_H
00065 # include "arith.h"
00066 # endif
00067
00068 # include "globals.h"
00069 # include "tokens.h"
00070 # include "sytb.h"
00071 # include "main.h"
00072 # include "type.h"
00073 # include "intrin.h"
00074
00075 #include "pathscale_defs.h"
00076
00077 extern const char *fe_vers_ID(void);
00078 extern const char *fe_vers_number(void);
00079 extern const char *fe_vers_name(void);
00080
00081 extern void print_buffered_messages (void);
00082
00083
00084
00085
00086
00087 # if 0
00088 static void check_license (void);
00089 # endif
00090
00091 # ifdef _DEBUG
00092 static void check_defines_compatibility (void);
00093 static void check_enums_for_change(void);
00094 # endif
00095
00096 static void get_machine_chars (void);
00097 static void init_compiler (int, char *[]);
00098 static void init_date_time_info (void);
00099 static void init_release_level (void);
00100 static void make_table_changes (void);
00101 static void print_id_line (void);
00102 static void set_compile_info_for_target (void);
00103
00104 # if defined(_WHIRL_HOST64_TARGET64) && defined(TARG_X8664)
00105
00106 static void fixup_unit_length_in_bits(void);
00107 # endif
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128 # ifdef _TARGET_OS_MAX
00129 void the_real_main (int argc,
00130 char *argv[])
00131 # else
00132 int main (int argc,
00133 char *argv[])
00134 # endif
00135
00136 {
00137 int column_num;
00138 long field_len;
00139 int line_num;
00140 char *msg_name;
00141 int save_statement_number = 0;
00142
00143 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) || defined(_HOST_OS_DARWIN)
00144 double end_time;
00145 double start_time;
00146
00147 double total_cpu_time;
00148 struct rusage ru;
00149 # else
00150
00151 # if !defined(_HOST_OS_UNICOS)
00152 long end_clock;
00153 # endif
00154 float end_time;
00155 float start_time;
00156 float total_cpu_time;
00157 # endif
00158
00159 # if defined(_HOST_OS_UNICOS) && defined(_DEBUG)
00160 lowmem_check();
00161 # endif
00162
00163 # if defined(_TARGET32) && defined(_DEBUG)
00164 setbuf(stdout, NULL);
00165 setbuf(stderr, NULL);
00166 # endif
00167
00168
00169 # if defined(_HOST_OS_UNICOS)
00170
00171
00172
00173
00174
00175 SECOND(&start_time);
00176
00177
00178
00179
00180
00181 # define M_LOWFIT 0107
00182
00183 mallopt(M_LOWFIT, 1);
00184
00185 # elif defined(_HOST_OS_MAX)
00186
00187
00188
00189
00190
00191 clock();
00192 start_time = 0;
00193
00194
00195
00196
00197 # define M_LOWFIT 0107
00198
00199 mallopt(M_LOWFIT, 1);
00200
00201 # elif defined(_HOST_OS_SOLARIS)
00202
00203
00204
00205
00206
00207
00208
00209
00210 start_time = (float) time(NULL);
00211 clock();
00212
00213 # elif (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) || defined(_HOST_OS_DARWIN)
00214
00215 getrusage (RUSAGE_SELF, &ru);
00216 start_time = (double) ru.ru_utime.tv_sec +
00217 (double) ru.ru_utime.tv_usec * 1e-6 +
00218 (double) ru.ru_stime.tv_sec +
00219 (double) ru.ru_stime.tv_usec * 1e-6;
00220
00221 # else
00222
00223 start_time = 0;
00224
00225 # endif
00226
00227
00228 comp_phase = Pass1_Parsing;
00229 stmt_start_line = 1;
00230
00231 init_compiler(argc, argv);
00232
00233 if (on_off_flags.preprocess_only) {
00234 goto PREPROCESS_ONLY_SKIP;
00235 }
00236
00237 stmt_start_line = 0;
00238
00239 while (LA_CH_CLASS != Ch_Class_EOF) {
00240
00241 comp_phase = Pass1_Parsing;
00242 num_prog_unit_errors = 0;
00243
00244 OUTPUT_PASS_HEADER(Syntax_Pass);
00245
00246 if (save_statement_number != 0) {
00247 statement_number = save_statement_number;
00248 }
00249
00250 parse_prog_unit();
00251
00252 save_statement_number = statement_number;
00253
00254 if (LA_CH_CLASS == Ch_Class_EOF) {
00255 issue_deferred_msgs();
00256 }
00257
00258
00259
00260 field_len = (long) sbrk(0);
00261
00262 # if defined(_HOST_OS_MAX)
00263 field_len &= (1 << 32) - 1;
00264 # endif
00265
00266 if (field_len > max_field_len) {
00267 max_field_len = field_len;
00268 }
00269
00270 PRINT_IR_TBL;
00271
00272 OUTPUT_PASS_HEADER(Semantics_Pass);
00273
00274 semantics_pass_driver();
00275
00276 if (SCP_IN_ERR(curr_scp_idx)) {
00277 some_scp_in_err = TRUE;
00278 }
00279
00280 PRINT_ALL_SYM_TBLS;
00281 PRINT_FORTRAN_OUT;
00282
00283 line_num = SH_GLB_LINE(SCP_LAST_SH_IDX(curr_scp_idx));
00284 column_num = SH_COL_NUM(SCP_LAST_SH_IDX(curr_scp_idx));
00285
00286 if (num_prog_unit_errors == 0) {
00287 if (opt_flags.inline_lvl > Inline_Lvl_0) {
00288 comp_phase = Inlining;
00289 inline_processing(SCP_FIRST_SH_IDX(curr_scp_idx));
00290 PRINT_IR_TBL3;
00291 }
00292 }
00293
00294 insert_global_directives = TRUE;
00295
00296 comp_phase = Pdg_Conversion;
00297 if (dump_flags.preinline) {
00298
00299 if (ATP_PGM_UNIT(SCP_ATTR_IDX(MAIN_SCP_IDX)) == Module ||
00300 ATP_PGM_UNIT(SCP_ATTR_IDX(MAIN_SCP_IDX)) == Function ||
00301 ATP_PGM_UNIT(SCP_ATTR_IDX(MAIN_SCP_IDX)) == Subroutine) {
00302 curr_scp_idx = MAIN_SCP_IDX;
00303 #ifdef KEY
00304 if (create_mod_info_file()) {
00305 create_mod_info_tbl();
00306 output_mod_info_file();
00307 }
00308 #else
00309 create_mod_info_file();
00310 create_mod_info_tbl();
00311 output_mod_info_file();
00312 #endif
00313 free_tables();
00314 }
00315 }
00316 else {
00317 #ifdef KEY
00318 int do_output_file = FALSE;
00319 #endif
00320 if (ATP_PGM_UNIT(SCP_ATTR_IDX(MAIN_SCP_IDX)) == Module) {
00321 #ifdef KEY
00322 do_output_file = create_mod_info_file();
00323 #else
00324 create_mod_info_file();
00325 #endif
00326 }
00327
00328 if (num_prog_unit_errors == 0 && (binary_output || assembly_output)) {
00329 cvrt_to_pdg(compiler_gen_date);
00330 }
00331 else if (ATP_PGM_UNIT(SCP_ATTR_IDX(MAIN_SCP_IDX)) == Module) {
00332
00333 if (!SCP_IN_ERR(MAIN_SCP_IDX)) {
00334 curr_scp_idx = MAIN_SCP_IDX;
00335 #ifdef KEY
00336 if (do_output_file) {
00337 create_mod_info_tbl();
00338 output_mod_info_file();
00339 }
00340 #else
00341 create_mod_info_tbl();
00342 output_mod_info_file();
00343 #endif
00344 }
00345
00346 free_tables();
00347 }
00348 else {
00349 free_tables();
00350 }
00351 }
00352
00353
00354
00355
00356
00357
00358
00359 stmt_start_line = line_num;
00360 stmt_start_col = column_num;
00361
00362 if (scp_tbl == NULL_IDX) {
00363 cif_end_unit_rec(program_unit_name);
00364 }
00365 else {
00366 cif_end_unit_rec(AT_OBJ_NAME_PTR(SCP_ATTR_IDX(curr_scp_idx)));
00367 }
00368
00369 }
00370
00371 clean_up_module_files();
00372
00373 # ifdef _NAME_SUBSTITUTION_INLINING
00374 if (!dump_flags.preinline)
00375 # endif
00376 terminate_PDGCS();
00377
00378 PRINT_GL_TBL;
00379 PRINT_GN_TBL;
00380 #if defined(_DEBUG) && defined(KEY)
00381 if (dump_flags.arg_passing) { \
00382 print_arg_passing(stderr); \
00383 }
00384 #endif
00385
00386 PREPROCESS_ONLY_SKIP:
00387
00388
00389 # if defined(_HOST_OS_UNICOS)
00390
00391 SECOND(&end_time);
00392
00393 # elif defined(_HOST_OS_MAX)
00394
00395 end_clock = clock();
00396 end_time = 0;
00397
00398 # elif defined(_HOST_OS_SOLARIS)
00399
00400 end_time = (float) time(NULL);
00401 end_clock = clock();
00402
00403 # elif (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) || defined(_HOST_OS_DARWIN)
00404
00405 getrusage(RUSAGE_SELF, &ru);
00406 end_time = (double) ru.ru_utime.tv_sec +
00407 (double) ru.ru_utime.tv_usec * 1e-6 +
00408 (double) ru.ru_stime.tv_sec +
00409 (double) ru.ru_stime.tv_usec * 1e-6;
00410
00411 # else
00412
00413 end_time = 0;
00414
00415 # endif
00416
00417
00418 total_cpu_time = end_time - start_time;
00419
00420 if (cif_need_unit_rec && cif_first_pgm_unit) {
00421
00422
00423
00424
00425
00426
00427
00428 cif_fake_a_unit();
00429 }
00430
00431
00432
00433
00434
00435 cif_summary_rec(release_level,
00436 compiler_gen_date,
00437 compiler_gen_time,
00438 total_cpu_time,
00439
00440 # if defined(_HOST_OS_UNICOS)
00441
00442 (long) 0,
00443 (some_scp_in_err) ? -3 : max_field_len);
00444
00445 # elif defined(_HOST_OS_MAX)
00446
00447 end_clock,
00448 (some_scp_in_err) ? -3 : max_field_len);
00449
00450 # elif (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX)) || defined(_HOST_OS_DARWIN)
00451
00452 (long) 0,
00453 (some_scp_in_err) ? -3 : max_field_len/4);
00454
00455 # else
00456
00457 end_clock,
00458 (some_scp_in_err) ? -3 : max_field_len/4);
00459
00460 # endif
00461
00462
00463
00464
00465
00466
00467 if (cmd_line_flags.verify_option ||
00468 num_errors > 0 ||
00469 num_warnings > 0 ||
00470 num_cautions > 0 ||
00471 num_notes > 0 ||
00472 num_comments > 0 ||
00473 num_ansi > 0 ||
00474 (num_optz_msgs > 0 && opt_flags.msgs)) {
00475 print_buffered_messages();
00476 print_id_line();
00477
00478
00479
00480
00481 # if defined(_HOST_OS_UNICOS)
00482
00483 PRINTMSG (0, 104, Log_Summary, 0, (double) total_cpu_time);
00484 msg_name = "cf90";
00485
00486 # elif defined(_HOST_OS_MAX)
00487
00488 PRINTMSG (0, 104, Log_Summary, 0, (double) end_clock/1000000.0);
00489 msg_name = "cf90";
00490
00491 # elif defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN)
00492 #ifdef PSC_TO_OPEN64
00493 msg_name = OPEN64_NAME_PREFIX "f95";
00494 #endif
00495
00496 # elif (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX))
00497
00498
00499
00500
00501
00502
00503
00504
00505
00506
00507 msg_name = "cf90";
00508
00509 # elif defined(_HOST_OS_SOLARIS)
00510
00511 PRINTMSG (0, 104, Log_Summary, 0,
00512 (total_cpu_time <= 2147.0) ? (float) end_clock/1000000.0 :
00513 (float) total_cpu_time);
00514 msg_name = "cf90";
00515
00516 # endif
00517
00518
00519
00520
00521
00522
00523
00524 # if defined(_HOST_OS_UNICOS)
00525
00526 PRINTMSG (0, 105, Log_Summary, 0, max_field_len);
00527
00528 # elif ! (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN))
00529
00530
00531
00532
00533 PRINTMSG (0, 105, Log_Summary, 0, max_field_len/4);
00534
00535 # endif
00536
00537
00538
00539
00540 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN)) && !defined(_TARGET_SV2)
00541
00542 PRINTMSG (0, 1401, Log_Summary, 0, --curr_glb_line);
00543
00544 # else
00545
00546 PRINTMSG (0, 106, Log_Summary, 0, --curr_glb_line);
00547
00548 # endif
00549
00550
00551
00552
00553 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN)) && !defined(_TARGET_SV2)
00554
00555 PRINTMSG (0, 1403, Log_Summary, 0,
00556 num_errors,
00557 num_warnings,
00558 (opt_flags.msgs == 0) ?
00559 (num_cautions + num_notes + num_comments) :
00560 (num_cautions + num_notes + num_comments + num_optz_msgs),
00561 num_ansi);
00562
00563 # else
00564
00565 PRINTMSG (0, 107, Log_Summary, 0,
00566 num_errors,
00567 num_warnings,
00568 (opt_flags.msgs == 0) ?
00569 (num_cautions + num_notes + num_comments) :
00570 (num_cautions + num_notes + num_comments + num_optz_msgs),
00571 num_ansi);
00572
00573
00574
00575
00576
00577
00578
00579 # if !defined(_TARGET_SV2)
00580 PRINTMSG (0, 108, Log_Summary, 0, code_size, data_size);
00581 # endif
00582
00583 # endif
00584
00585 if (num_errors > 0 ||
00586 num_warnings > 0 ||
00587 num_cautions > 0 ||
00588 num_notes > 0 ||
00589 num_comments > 0 ||
00590 num_ansi > 0 ||
00591 (num_optz_msgs > 0 && opt_flags.msgs)) {
00592 PRINTMSG (0, 1636, Log_Summary, 0, msg_name, msg_name);
00593 }
00594 }
00595
00596
00597 # ifdef _DEBUG
00598
00599
00600
00601 final_src_input();
00602
00603 MEM_REPORT(file_path_tbl);
00604 MEM_REPORT(global_attr_tbl);
00605 MEM_REPORT(global_bounds_tbl);
00606 MEM_REPORT(global_line_tbl);
00607 MEM_REPORT(global_name_tbl);
00608 MEM_REPORT(global_type_tbl);
00609 MEM_REPORT(str_pool);
00610
00611 # endif
00612
00613 exit_compiler ((num_errors == 0) ? RC_OKAY : RC_USER_ERROR);
00614
00615 }
00616
00617
00618
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628
00629
00630
00631
00632
00633
00634
00635
00636 static void init_compiler (int argc,
00637 char *argv[])
00638 {
00639 extern void init_lex (void);
00640 #ifndef KEY
00641 extern void init_msg_processing (char *[]);
00642 #endif
00643 extern void init_src_input (void);
00644 extern void init_type (void);
00645 #ifndef KEY
00646 extern void process_cmd_line (int, char *[]);
00647 #endif
00648 extern void init_cond_comp(void);
00649 extern void enter_predefined_macros(void);
00650 extern void init_parse_prog_unit(void);
00651 extern void init_PDGCS (void);
00652 extern void set_up_token_tables(void);
00653 extern void sgi_cmd_line(int *argc, char **argv[]);
00654 extern char *operator_str[];
00655 extern void verify_semantic_tbls(void);
00656
00657 int idx;
00658
00659
00660 TRACE (Func_Entry, "init_compiler", NULL);
00661
00662 init_date_time_info ();
00663 #ifdef KEY
00664
00665 char *nlspath = init_msg_processing (argv);
00666 #else
00667 init_msg_processing (argv);
00668
00669 #endif
00670
00671 # ifdef _DEBUG
00672 check_defines_compatibility();
00673 check_enums_for_change();
00674 # endif
00675
00676 # if 0
00677 check_license();
00678 # endif
00679
00680
00681
00682
00683 TBL_ALLOC (global_line_tbl);
00684 TBL_ALLOC (global_name_tbl);
00685 TBL_ALLOC (global_attr_tbl);
00686 TBL_ALLOC (global_type_tbl);
00687 #ifdef KEY
00688 CLEAR_TBL_NTRY(global_type_tbl, 0);
00689 #endif
00690 TBL_ALLOC (global_bounds_tbl);
00691 TBL_ALLOC (global_ir_tbl);
00692 TBL_ALLOC (global_ir_list_tbl);
00693 TBL_ALLOC (global_sh_tbl);
00694 TBL_ALLOC (file_path_tbl);
00695 TBL_ALLOC (str_pool);
00696
00697 init_release_level ();
00698
00699 str_pool[0].name_long = 0;
00700 str_pool[1].name_long = 0;
00701 str_pool[2].name_long = LARGE_WORD_FOR_TBL_SRCH;
00702 str_pool_idx = 2;
00703
00704 TBL_REALLOC_CK(global_name_tbl, 2);
00705 CLEAR_TBL_NTRY(global_name_tbl, 1);
00706 CLEAR_TBL_NTRY(global_name_tbl, 2);
00707 GN_NAME_IDX(1) = 1;
00708 GN_NAME_LEN(1) = HOST_BYTES_PER_WORD;
00709 GN_NAME_IDX(2) = 2;
00710 GN_NAME_LEN(2) = HOST_BYTES_PER_WORD;
00711
00712
00713
00714 TBL_REALLOC_CK(global_bounds_tbl, 7);
00715
00716 for (idx = BD_DEFERRED_1_IDX; idx <= BD_DEFERRED_7_IDX; idx++) {
00717 CLEAR_TBL_NTRY(global_bounds_tbl, idx);
00718 GB_ARRAY_CLASS(idx) = Deferred_Shape;
00719 GB_RANK(idx) = idx;
00720 }
00721
00722
00723
00724
00725 init_cond_comp ();
00726
00727 get_machine_chars();
00728
00729 set_up_token_tables();
00730
00731
00732
00733
00734 set_compile_info_for_target();
00735
00736
00737 comp_phase = Cmdline_Parsing;
00738
00739 cif_name[0] = NULL_CHAR;
00740
00741 assembly_listing_file[0] = NULL_CHAR;
00742
00743 debug_file_name[0] = NULL_CHAR;
00744
00745 # if (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX) || defined(_TARGET_OS_DARWIN))
00746
00747
00748
00749
00750 sgi_cmd_line (&argc,&argv);
00751 # endif
00752
00753
00754 #ifdef KEY
00755 process_cmd_line (argc, argv, nlspath);
00756 #else
00757 process_cmd_line (argc, argv);
00758 #endif
00759
00760
00761 # if defined(_WHIRL_HOST64_TARGET64) && defined(TARG_X8664)
00762
00763 if ( Is_Target_32bit() ) {
00764
00765 fixup_unit_length_in_bits();
00766 }
00767 # endif
00768
00769 # if defined(_INTEGER_1_AND_2)
00770
00771 if (on_off_flags.integer_1_and_2) {
00772 bit_size_tbl[Integer_1] = 8;
00773 bit_size_tbl[Integer_2] = 16;
00774 bit_size_tbl[Logical_1] = 8;
00775 bit_size_tbl[Logical_2] = 16;
00776
00777 storage_bit_size_tbl[Integer_1] = 8;
00778 storage_bit_size_tbl[Integer_2] = 16;
00779 storage_bit_size_tbl[Logical_1] = 8;
00780 storage_bit_size_tbl[Logical_2] = 16;
00781
00782 storage_bit_prec_tbl[Integer_1] = 8;
00783 storage_bit_prec_tbl[Integer_2] = 16;
00784 storage_bit_prec_tbl[Logical_1] = 8;
00785 storage_bit_prec_tbl[Logical_2] = 16;
00786
00787 stride_mult_unit_in_bits[Integer_1] = 8;
00788 stride_mult_unit_in_bits[Integer_2] = 16;
00789 stride_mult_unit_in_bits[Logical_1] = 8;
00790 stride_mult_unit_in_bits[Logical_2] = 16;
00791
00792 linear_to_arith[Integer_1] = AR_Int_8_S;
00793 linear_to_arith[Integer_2] = AR_Int_16_S;
00794
00795 input_arith_type[Integer_1] = AR_Int_8_U;
00796 input_arith_type[Integer_2] = AR_Int_16_U;
00797
00798 strcpy(arith_type_string[Integer_1], "AR_Int_8_U");
00799 strcpy(arith_type_string[Integer_2], "AR_Int_16_U");
00800 }
00801 # endif
00802
00803 comp_phase = Pass1_Parsing;
00804
00805
00806
00807 if (argc == 2 && cmd_line_flags.verify_option) {
00808 print_id_line();
00809 exit_compiler(RC_OKAY);
00810 }
00811
00812 if (num_errors != 0) {
00813 PRINTMSG(0, 912, Log_Summary, 0, num_errors);
00814 exit_compiler(RC_USER_ERROR);
00815 }
00816
00817
00818
00819
00820 init_cif(comp_date_time, release_level);
00821
00822 some_scp_in_err = FALSE;
00823 clearing_blk_stk = FALSE;
00824
00825 init_type();
00826
00827 make_table_changes ();
00828
00829 init_sytb ();
00830
00831
00832
00833
00834
00835
00836
00837
00838
00839
00840
00841 enter_predefined_macros();
00842
00843
00844
00845
00846 init_parse_prog_unit();
00847
00848 init_src_input();
00849
00850 if (on_off_flags.preprocess_only) {
00851 preprocess_only_driver();
00852 issue_deferred_msgs();
00853
00854 TRACE (Func_Exit, "init_compiler", NULL);
00855
00856 return;
00857 }
00858
00859 init_lex ();
00860
00861 max_field_len = (long) sbrk(0);
00862
00863 # if defined(_HOST_OS_MAX)
00864 max_field_len &= (1 << 32) - 1;
00865 # endif
00866
00867
00868
00869
00870
00871 if (LA_CH_CLASS == Ch_Class_EOF) {
00872 PRINTMSG(0, 1391, Log_Warning, 0, src_file);
00873 issue_deferred_msgs();
00874 }
00875
00876
00877 # ifdef _NAME_SUBSTITUTION_INLINING
00878 if (!dump_flags.preinline)
00879 # endif
00880 init_PDGCS();
00881
00882 # ifdef _DEBUG
00883 verify_semantic_tbls();
00884
00885 if (strcmp(operator_str[The_Last_Opr], "The_Last_Opr") != 0) {
00886 PRINTMSG(1, 689, Internal, 0);
00887 }
00888 # endif
00889
00890 TRACE (Func_Exit, "init_compiler", NULL);
00891
00892 return;
00893
00894 }
00895
00896
00897
00898
00899
00900
00901
00902
00903
00904
00905
00906
00907
00908
00909
00910
00911
00912
00913
00914
00915 # if defined(_WHIRL_HOST64_TARGET64) && defined(TARG_X8664)
00916 static void fixup_unit_length_in_bits()
00917 {
00918 if ( Is_Target_32bit() ) {
00919
00920 stride_mult_unit_in_bits[Typeless_8] = 32;
00921 stride_mult_unit_in_bits[Integer_8] = 32;
00922 stride_mult_unit_in_bits[Real_8] = 32;
00923 stride_mult_unit_in_bits[Real_16] = 32;
00924 stride_mult_unit_in_bits[Complex_4] = 32;
00925 stride_mult_unit_in_bits[Complex_8] = 32;
00926 stride_mult_unit_in_bits[Complex_16] = 32;
00927 stride_mult_unit_in_bits[CRI_Ptr_8] = 32;
00928 stride_mult_unit_in_bits[Logical_8] = 32;
00929 stride_mult_unit_in_bits[CRI_Ch_Ptr_8] = 32;
00930 }
00931 }
00932 # endif
00933
00934
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950
00951
00952 static void init_date_time_info (void)
00953
00954 {
00955 time_t begin_time;
00956 static char *date_time_str;
00957
00958
00959 TRACE (Func_Entry, "init_date_time_info", NULL);
00960
00961 time (&begin_time);
00962 date_time_str = ctime (&begin_time);
00963
00964
00965
00966
00967
00968
00969 memcpy (comp_date_time, date_time_str, 10);
00970 comp_date_time[10] = COMMA;
00971 memcpy (comp_date_time+11, date_time_str+19, 5);
00972 comp_date_time[16] = BLANK;
00973 memcpy (comp_date_time+17, date_time_str+10, 9);
00974 comp_date_time[26] = EOS;
00975
00976 TRACE (Func_Exit, "init_date_time_info", NULL);
00977
00978 return;
00979
00980 }
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992
00993
00994
00995
00996
00997
00998
00999
01000
01001
01002
01003
01004 # if 0
01005
01006 static void check_license (void)
01007
01008 {
01009 # define CRAY_LM_NQE 1
01010 # define CRAY_LM_DPE 2
01011 # define CRAY_LM_F90E 3
01012
01013 # define LM_NOWAIT 0
01014 # define LM_WAIT 1
01015
01016 extern int cray_lm_checkout(int, char *, int, int, char *, double);
01017 int ignore = 0;
01018 double version = 1.0;
01019
01020
01021 TRACE (Func_Entry, "check_license", NULL);
01022
01023 # if defined(_TARGET_OS_UNICOS) || defined(_TARGET_OS_MAX)
01024 if (cray_lm_checkout(CRAY_LM_DPE, "", LM_NOWAIT, ignore, "", version)) {
01025 # else
01026 if (cray_lm_checkout(CRAY_LM_F90E, "", LM_NOWAIT, ignore, "", version)) {
01027 # endif
01028
01029
01030
01031 PRINTMSG(0, 631, Log_Error, 0);
01032 exit_compiler(RC_USER_ERROR);
01033 }
01034
01035 TRACE (Func_Exit, "check_license", NULL);
01036
01037 return;
01038
01039 }
01040
01041 # endif
01042
01043
01044
01045
01046
01047
01048
01049
01050
01051
01052
01053
01054
01055
01056
01057
01058
01059
01060 static void check_defines_compatibility(void)
01061
01062 {
01063
01064 TRACE (Func_Entry, "check_defines_compatibility", NULL);
01065
01066
01067
01068 # if defined(_MODULE_TO_DOT_o) && defined(_MODULE_TO_DOT_M)
01069 PRINTMSG(1, 1114, Internal, 0,
01070 "_MODULE_TO_DOT_o",
01071 "_MODULE_TO_DOT_M");
01072 # endif
01073
01074 # if defined(_HEAP_REQUEST_IN_BYTES) && defined(_HEAP_REQUEST_IN_WORDS)
01075 PRINTMSG(1, 1114, Internal, 0,
01076 "_HEAP_REQUEST_IN_BYTES",
01077 "_HEAP_REQUEST_IN_WORDS");
01078 # endif
01079
01080 # if defined(_HOST32) && defined(_HOST64)
01081 PRINTMSG(1, 1114, Internal, 0,
01082 "_HOST32",
01083 "_HOST64");
01084 # endif
01085
01086 # if defined(_TARGET32) && defined(_TARGET64)
01087 PRINTMSG(1, 1114, Internal, 0,
01088 "_TARGET32",
01089 "_TARGET64");
01090 # endif
01091
01092 # if defined(_TARGET_WORD_ADDRESS) && defined(_TARGET_BYTE_ADDRESS)
01093 PRINTMSG(1, 1114, Internal, 0,
01094 "_TARGET_WORD_ADDRESS",
01095 "_TARGET_BYTE_ADDRESS");
01096 # endif
01097
01098 # if 0
01099
01100
01101 # if !defined(_MODULE_TO_DOT_o) && !defined(_MODULE_TO_DOT_M)
01102
01103 if (!on_off_flags.module_to_mod) {
01104 PRINTMSG(1, 1116, Internal, 0,
01105 "_MODULE_TO_DOT_o",
01106 "_MODULE_TO_DOT_M");
01107 }
01108 # endif
01109 # endif
01110
01111 # if !defined(_HEAP_REQUEST_IN_BYTES) && !defined(_HEAP_REQUEST_IN_WORDS)
01112 PRINTMSG(1, 1116, Internal, 0,
01113 "_HEAP_REQUEST_IN_BYTES",
01114 "_HEAP_REQUEST_IN_WORDS");
01115 # endif
01116
01117 # if !defined(_HOST32) && !defined(_HOST64)
01118 PRINTMSG(1, 1116, Internal, 0,
01119 "_HOST32",
01120 "_HOST64");
01121 # endif
01122
01123 # if !defined(_TARGET32) && !defined(_TARGET64)
01124 PRINTMSG(1, 1116, Internal, 0,
01125 "_TARGET32",
01126 "_TARGET64");
01127 # endif
01128
01129 # if !defined(_TARGET_WORD_ADDRESS) && !defined(_TARGET_BYTE_ADDRESS)
01130 PRINTMSG(1, 1116, Internal, 0,
01131 "_TARGET_WORD_ADDRESS",
01132 "_TARGET_BYTE_ADDRESS");
01133 # endif
01134
01135 TRACE (Func_Exit, "check_defines_compatibility", NULL);
01136
01137 return;
01138
01139 }
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159 static void make_table_changes(void)
01160
01161 {
01162 int i;
01163 int k;
01164
01165 TRACE (Func_Entry, "make_table_changes", NULL);
01166
01167 # ifdef _ARITH_H
01168 # if defined(_TARGET64)
01169
01170 if (target_ieee) {
01171 # if defined(_TARGET_OS_MAX) || defined(_WHIRL_HOST64_TARGET64)
01172 linear_to_arith[Real_4] = AR_Float_IEEE_NR_32;
01173 linear_to_arith[Real_8] = AR_Float_IEEE_NR_64;
01174 linear_to_arith[Real_16] = AR_Float_IEEE_NR_128;
01175 linear_to_arith[Complex_4] = AR_Complex_IEEE_NR_32;
01176 linear_to_arith[Complex_8] = AR_Complex_IEEE_NR_64;
01177 linear_to_arith[Complex_16] = AR_Complex_IEEE_NR_128;
01178
01179 input_arith_type[Real_4] = AR_Float_IEEE_NR_32;
01180 input_arith_type[Real_8] = AR_Float_IEEE_NR_64;
01181 input_arith_type[Real_16] = AR_Float_IEEE_NR_128;
01182 input_arith_type[Complex_4] = AR_Complex_IEEE_NR_32;
01183 input_arith_type[Complex_8] = AR_Complex_IEEE_NR_64;
01184 input_arith_type[Complex_16] = AR_Complex_IEEE_NR_128;
01185
01186 strcpy(arith_type_string[Real_4], "AR_Float_IEEE_NR_32");
01187 strcpy(arith_type_string[Real_8], "AR_Float_IEEE_NR_64");
01188 strcpy(arith_type_string[Real_16], "AR_Float_IEEE_NR_128");
01189 strcpy(arith_type_string[Complex_4], "AR_Complex_IEEE_NR_32");
01190 strcpy(arith_type_string[Complex_8], "AR_Complex_IEEE_NR_64");
01191 strcpy(arith_type_string[Complex_16], "AR_Complex_IEEE_NR_128");
01192 # else
01193 linear_to_arith[Real_4] = AR_Float_IEEE_NR_64;
01194 linear_to_arith[Real_8] = AR_Float_IEEE_NR_64;
01195 linear_to_arith[Real_16] = AR_Float_IEEE_NR_128;
01196 linear_to_arith[Complex_4] = AR_Complex_IEEE_NR_64;
01197 linear_to_arith[Complex_8] = AR_Complex_IEEE_NR_64;
01198 linear_to_arith[Complex_16] = AR_Complex_IEEE_NR_128;
01199
01200 input_arith_type[Real_4] = AR_Float_IEEE_NR_64;
01201 input_arith_type[Real_8] = AR_Float_IEEE_NR_64;
01202 input_arith_type[Real_16] = AR_Float_IEEE_NR_128;
01203 input_arith_type[Complex_4] = AR_Complex_IEEE_NR_64;
01204 input_arith_type[Complex_8] = AR_Complex_IEEE_NR_64;
01205 input_arith_type[Complex_16] = AR_Complex_IEEE_NR_128;
01206
01207 strcpy(arith_type_string[Real_4], "AR_Float_IEEE_NR_64");
01208 strcpy(arith_type_string[Real_8], "AR_Float_IEEE_NR_64");
01209 strcpy(arith_type_string[Real_16], "AR_Float_IEEE_NR_128");
01210 strcpy(arith_type_string[Complex_4], "AR_Complex_IEEE_NR_64");
01211 strcpy(arith_type_string[Complex_8], "AR_Complex_IEEE_NR_64");
01212 strcpy(arith_type_string[Complex_16], "AR_Complex_IEEE_NR_128");
01213 # endif
01214 }
01215 # endif
01216 # endif
01217
01218 if (CG_LOGICAL_DEFAULT_TYPE != LOGICAL_DEFAULT_TYPE) {
01219
01220
01221
01222 for (i = 0; i < Num_Linear_Types; i++ ) {
01223 for (k = 0; k < Num_Linear_Types; k++ ) {
01224
01225 if (eq_ne_tbl[i][k].type == CG_LOGICAL_DEFAULT_TYPE) {
01226 eq_ne_tbl[i][k].type = LOGICAL_DEFAULT_TYPE;
01227 }
01228
01229 if (lg_tbl[i][k].type == CG_LOGICAL_DEFAULT_TYPE) {
01230 lg_tbl[i][k].type = LOGICAL_DEFAULT_TYPE;
01231 }
01232
01233 if (gt_lt_tbl[i][k].type == CG_LOGICAL_DEFAULT_TYPE) {
01234 gt_lt_tbl[i][k].type = LOGICAL_DEFAULT_TYPE;
01235 }
01236 }
01237 }
01238 }
01239
01240 #ifdef KEY
01241
01242
01243
01244
01245
01246 for (i = 0; i < Num_Linear_Types; i++ ) {
01247 for (k = 0; k < Num_Linear_Types; k++ ) {
01248 int aot_result = and_or_tbl[i][k].type;
01249 if (aot_result >= Logical_1 && aot_result <= Logical_8) {
01250 eq_ne_on_logical_tbl[i][k] = and_or_tbl[i][k];
01251 }
01252 else {
01253 eq_ne_on_logical_tbl[i][k] = eq_ne_tbl[i][k];
01254 }
01255 }
01256 }
01257 #endif
01258
01259 TRACE (Func_Exit, "make_table_changes", NULL);
01260
01261 return;
01262
01263 }
01264
01265
01266
01267
01268
01269
01270
01271
01272
01273
01274
01275
01276
01277
01278
01279
01280
01281
01282
01283 const char *fe_vers_name(void)
01284 {
01285
01286
01287
01288 return ("fe90");
01289
01290 }
01291
01292
01293 const char *fe_vers_ID(void)
01294 {
01295
01296
01297
01298 return ("f");
01299
01300 }
01301
01302
01303 const char *fe_vers_number(void)
01304 {
01305
01306
01307
01308
01309 return (frontend_version);
01310
01311 }
01312
01313
01314
01315
01316
01317
01318
01319
01320
01321
01322
01323
01324
01325
01326
01327
01328
01329
01330
01331 static void print_id_line(void)
01332 {
01333
01334 char version_string[16] = "######";
01335
01336
01337 TRACE (Func_Exit, "print_id_line", NULL);
01338
01339
01340
01341
01342
01343
01344
01345 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN)) && !defined(_TARGET_SV2)
01346 sprintf(version_string, "%s%s", fe_vers_ID(), fe_vers_number());
01347 # elif defined(_HOST_OS_SOLARIS)
01348 sprintf(version_string, "%s%s%s%s%s%s%s%s",
01349 fe_vers_ID(), fe_vers_number(),
01350 "p", "XX",
01351 "g", "XXX",
01352 arith_vers_ID(), arith_vers_number());
01353 # else
01354 sprintf(version_string, "%s%s%s%s%s%s%s%s",
01355 fe_vers_ID(), fe_vers_number(),
01356 opt_vers_ID(), opt_vers_number(),
01357 be_vers_ID(), be_vers_number(),
01358 arith_vers_ID(), arith_vers_number());
01359 # endif
01360
01361
01362 # if (defined(_HOST_OS_IRIX) || defined(_HOST_OS_LINUX) || defined(_HOST_OS_DARWIN)) && (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX) || defined(_TARGET_OS_DARWIN))
01363
01364 PRINTMSG (0, 1402, Log_Summary, 0,
01365 release_level,
01366 version_string,
01367 comp_date_time);
01368
01369 # else
01370
01371 PRINTMSG (0, 103, Log_Summary, 0,
01372 release_level,
01373 version_string,
01374 comp_date_time);
01375
01376 # endif
01377
01378
01379 TRACE (Func_Exit, "print_id_line", NULL);
01380
01381 return;
01382
01383 }
01384
01385
01386
01387
01388
01389
01390
01391
01392
01393
01394
01395
01396
01397
01398
01399
01400
01401
01402
01403 static void get_machine_chars (void)
01404
01405 {
01406 # if defined(_TARGET_OS_UNICOS) || defined(_TARGET_OS_MAX)
01407
01408 # if defined(_GETPMC_AVAILABLE)
01409 extern int GETPMC(long *, char *);
01410 # else
01411 int idx;
01412 char *name;
01413 # endif
01414
01415
01416 TRACE (Func_Entry, "get_machine_chars", NULL);
01417
01418 # if defined(_GETPMC_AVAILABLE)
01419
01420
01421
01422
01423
01424 if (GETPMC (target_machine.mc_tbl, "host") == 0) {
01425 PRINTMSG (0, 584, Log_Error, 0, "GETPMC");
01426 }
01427
01428 host_ieee = target_machine.fld.mcieee;
01429
01430
01431
01432
01433
01434 if (GETPMC (target_machine.mc_tbl, "target") == 0) {
01435 PRINTMSG (0, 584, Log_Error, 0, "GETPMC");
01436 }
01437
01438 # else
01439
01440 name = getenv("TARGET");
01441
01442 if (name == NULL) {
01443 PRINTMSG(0, 1052, Log_Error, 0);
01444 TRACE (Func_Exit, "get_machine_chars", NULL);
01445 exit_compiler(RC_USER_ERROR);
01446 }
01447 else {
01448 strcpy(target_machine.fld.mcpmt, name);
01449
01450
01451
01452 for (idx = 0; idx <= strlen(target_machine.fld.mcpmt); ++idx) {
01453 target_machine.fld.mcpmt[idx] = toupper(target_machine.fld.mcpmt[idx]);
01454 }
01455 }
01456
01457 # endif
01458
01459 TRACE (Func_Exit, "get_machine_chars", NULL);
01460
01461 # endif
01462 return;
01463
01464 }
01465
01466
01467
01468
01469
01470
01471
01472
01473
01474
01475
01476
01477
01478
01479
01480
01481
01482
01483
01484 static void set_compile_info_for_target (void)
01485
01486 {
01487
01488
01489 # if defined(_TARGET_OS_UNICOS) || defined(_TARGET_OS_MAX)
01490 union {long int_form;
01491 char char_form[9];
01492 } cpu_type;
01493 # endif
01494
01495 TRACE (Func_Entry, "set_compile_info_for_target", NULL);
01496
01497 # if defined(_TARGET_SV2)
01498 target_os = Target_Sv2;
01499 # elif defined(_TARGET_OS_UNICOS)
01500 target_os = Target_Unicos;
01501 # elif defined(_TARGET_OS_LINUX)
01502 target_os = Target_Linux;
01503 # elif defined(_TARGET_OS_DARWIN)
01504 target_os = Target_Darwin;
01505 # elif defined(_TARGET_OS_MAX)
01506 target_os = Target_Max;
01507 # elif (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX))
01508 target_os = Target_Irix;
01509 # elif defined(_TARGET_OS_SOLARIS)
01510 target_os = Target_Solaris;
01511 # endif
01512
01513
01514 # if defined(_TWO_WORD_FCD)
01515 two_word_fcd = TRUE;
01516 # else
01517 two_word_fcd = FALSE;
01518 # endif
01519
01520 # if defined(_CHAR_LEN_IN_BYTES)
01521 char_len_in_bytes = TRUE;
01522 # else
01523 char_len_in_bytes = FALSE;
01524 # endif
01525
01526 # ifdef _TARGET_OS_UNICOS
01527
01528 # ifdef _GETPMC_AVAILABLE
01529 cpu_type.int_form = target_machine.fld.mcpmt;
01530 cpu_type.char_form[8] = '\0';
01531
01532 if (strcmp("CRAY-TS", cpu_type.char_form) == 0) {
01533 two_word_fcd = TRUE;
01534 target_safevl = 128;
01535 storage_bit_size_tbl[CRI_Ch_Ptr_8] = 128;
01536 target_triton = TRUE;
01537 }
01538 else if (strcmp("CRAY-C90", cpu_type.char_form) == 0) {
01539 target_safevl = 128;
01540 }
01541 else if (strcmp("CRAY-SV1", cpu_type.char_form) == 0) {
01542 target_sv1 = TRUE;
01543 }
01544 else if (strcmp("CRAY-YMP", cpu_type.char_form) == 0) {
01545 cpu_type.int_form = target_machine.fld.mc_subtype1;
01546 cpu_type.char_form[8] = '\0';
01547
01548 if (strcmp("CRAY-SV1", cpu_type.char_form) == 0) {
01549 target_sv1 = TRUE;
01550 }
01551 }
01552
01553 # else
01554
01555 if (strcmp("CRAY-TS", target_machine.fld.mcpmt) == 0) {
01556 two_word_fcd = TRUE;
01557 target_safevl = 128;
01558 storage_bit_size_tbl[CRI_Ch_Ptr_8] = 128;
01559 target_triton = TRUE;
01560 }
01561 else if (strcmp("CRAY-C90", target_machine.fld.mcpmt) == 0) {
01562 target_safevl = 128;
01563 }
01564 # if !defined(_TARGET_SV2)
01565 else if (strcmp("CRAY-SV1", target_machine.fld.mcpmt) == 0) {
01566 target_sv1 = TRUE;
01567 }
01568 else if ((strcmp("CRAY-YMP", target_machine.fld.mcpmt) == 0) &&
01569 (strcmp("CRAY-SV1", target_machine.fld.mc_subtype1) == 0)) {
01570 target_sv1 = TRUE;
01571 }
01572 # endif
01573
01574 # endif
01575
01576 # endif
01577
01578
01579 # ifdef _TARGET_OS_MAX
01580
01581 # if defined(_GETPMC_AVAILABLE)
01582 cpu_type.int_form = target_machine.fld.mcpmt;
01583 cpu_type.char_form[8] = '\0';
01584
01585 if (strcmp("CRAY-T3E", cpu_type.char_form) == 0) {
01586 char_len_in_bytes = TRUE;
01587 target_t3e = TRUE;
01588 }
01589 # else
01590
01591
01592 if (strcmp("CRAY-T3E", target_machine.fld.mcpmt) == 0) {
01593 char_len_in_bytes = TRUE;
01594 target_t3e = TRUE;
01595 }
01596 # endif
01597
01598 # endif
01599
01600
01601 # if defined(_TARGET_IEEE)
01602 target_ieee = TRUE;
01603 # else
01604 target_ieee = target_triton && target_machine.fld.mcieee;
01605 # endif
01606
01607 # if defined(_TARGET_SV2)
01608 true_value = 1;
01609 # else
01610 if (target_ieee && target_triton) {
01611 true_value = 1;
01612 }
01613 # endif
01614
01615
01616
01617 # if defined(_TARGET_OS_UNICOS)
01618
01619 if (target_triton) {
01620 max_character_length = 2147483647;
01621 }
01622 else {
01623 max_character_length = 2097151;
01624 }
01625
01626 # elif defined(_TARGET_OS_MAX)
01627
01628 if (target_t3e) {
01629
01630
01631
01632 max_character_length = 134217727;
01633 }
01634 else {
01635 max_character_length = 2097151;
01636 }
01637
01638 # elif (defined(_TARGET_OS_IRIX) || defined(_TARGET_OS_LINUX) || defined(_TARGET_OS_DARWIN))
01639
01640 max_character_length = 268435455;
01641
01642 # else
01643
01644 max_character_length = 268435455;
01645
01646 # endif
01647
01648
01649 TRACE (Func_Exit, "set_compile_info_for_target", NULL);
01650
01651 return;
01652
01653 }
01654
01655
01656
01657
01658
01659
01660
01661
01662
01663
01664
01665
01666
01667
01668
01669
01670
01671
01672 static void init_release_level (void)
01673
01674 {
01675 char *char_ptr;
01676 int length;
01677 char *location;
01678 char new_release[RELEASE_LEVEL_LEN];
01679 int str_idx;
01680 FILE *release_file_ptr;
01681 char *version_string_location = "COMPILER";
01682
01683
01684 TRACE (Func_Entry, "init_release_level", NULL);
01685
01686 location = getenv(version_string_location);
01687
01688 if (location != NULL) {
01689 length = WORD_LEN(strlen(location) + 14);
01690 str_idx = str_pool_idx;
01691
01692 TBL_REALLOC_CK(str_pool, length);
01693
01694 strcpy(&str_pool[str_idx].name_char, location);
01695
01696 char_ptr = strrchr(&str_pool[str_idx].name_char, SLASH);
01697
01698 if (char_ptr == NULL) {
01699 release_file_ptr = fopen("version.string", "r");
01700 }
01701 else {
01702 strcpy(++char_ptr, "version.string");
01703 release_file_ptr = fopen(&str_pool[str_idx].name_char, "r");
01704 }
01705
01706
01707
01708 if (release_file_ptr != NULL) {
01709 fgets(new_release, RELEASE_LEVEL_LEN, release_file_ptr);
01710
01711 if (new_release != NULL) {
01712 char_ptr = strrchr(new_release, NEWLINE);
01713 *char_ptr = EOS;
01714 strcpy(release_level, new_release);
01715 }
01716 }
01717
01718 str_pool_idx = str_idx;
01719 }
01720
01721 TRACE (Func_Exit, "init_release_level", NULL);
01722
01723 return;
01724
01725 }
01726
01727 # if defined(_DEBUG)
01728
01729
01730
01731
01732
01733
01734
01735
01736
01737
01738
01739
01740
01741
01742
01743
01744
01745 static void check_enums_for_change(void)
01746 {
01747
01748 TRACE (Func_Entry, "check_enums_for_change", NULL);
01749
01750 if (Null_Opr != 0 ||
01751 Defined_Un_Opr != 1 ||
01752 Alloc_Opr != 2 ||
01753 Eqv_Opr != 25 ||
01754 Nint_Opr != 50 ||
01755 Char_Opr != 75 ||
01756 Rrspacing_Opr != 100 ||
01757 Minval_Opr != 125 ||
01758 Stop_Opr != 150 ||
01759 Dv_Set_A_Contig != 175 ||
01760 Aloc_Opr != 200 ||
01761 Init_Reloc_Opr != 225 ||
01762 Prefertask_Cdir_Opr != 250 ||
01763 Wait_Cmic_Opr != 275 ||
01764 Set_Ieee_Exception_Opr != 300 ||
01765 Local_Pe_Dim_Opr != 325 ||
01766 Fissionable_Star_Opr != 350 ||
01767 End_Singleprocess_Par_Opr != 375 ||
01768 Fetch_And_Nand_Opr != 400 ||
01769 Endparallel_Open_Mp_Opr != 425 ||
01770 Omp_In_Parallel_Opr != 454 ||
01771 Io_Item_Type_Code_Opr != 479 ||
01772 Copyin_Bound_Opr != 484) {
01773 # if 0
01774 printf("Char_Opr %d\n ", Char_Opr);
01775 printf("Stop_Opr %d\n ", Stop_Opr);
01776 printf("Aloc_Opr %d\n ", Aloc_Opr);
01777 printf("Prefertask_Cdir_Opr %d\n ", Prefertask_Cdir_Opr);
01778 printf("Local_Pe_Dim_Opr %d\n ", Local_Pe_Dim_Opr);
01779 printf("Fetch_And_Nand_Opr %d\n ", Fetch_And_Nand_Opr);
01780 printf("Omp_In_Parallel_Opr %d\n ", Omp_In_Parallel_Opr);
01781 printf("Copyin_Bound_Opr %d\n ", Copyin_Bound_Opr);
01782 # endif
01783
01784 PRINTMSG(1, 1643, Internal, 0, "Operator");
01785 }
01786
01787 TRACE (Func_Exit, "check_enums_for_change", NULL);
01788
01789 return;
01790
01791 }
01792 # endif