Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
00001 /* 00002 00003 Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00004 00005 This program is free software; you can redistribute it and/or modify it 00006 under the terms of version 2 of the GNU General Public License as 00007 published by the Free Software Foundation. 00008 00009 This program is distributed in the hope that it would be useful, but 00010 WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 00013 Further, this software is distributed without any warranty that it is 00014 free of the rightful claim of any third person regarding infringement 00015 or the like. Any license provided herein, whether implied or 00016 otherwise, applies only to this software file. Patent licenses, if 00017 any, provided herein do not apply to combinations of this program with 00018 other software, or any other product whatsoever. 00019 00020 You should have received a copy of the GNU General Public License along 00021 with this program; if not, write the Free Software Foundation, Inc., 59 00022 Temple Place - Suite 330, Boston MA 02111-1307, USA. 00023 00024 Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00025 Mountain View, CA 94043, or: 00026 00027 http://www.sgi.com 00028 00029 For further information regarding this notice, see: 00030 00031 http://oss.sgi.com/projects/GenInfo/NoticeExplan 00032 00033 */ 00034 00035 00036 00037 /* USMID: "\n@(#)5.0_pl/headers/s_data.h 5.3 05/27/99 10:30:26\n" */ 00038 00039 /* The following variables are shared by recursive references to the DATA */ 00040 /* implied-DO routines. */ 00041 00042 int curr_parent_idx; 00043 int last_lt_idx; 00044 int lt_idx; 00045 long64 obj_count; 00046 long64 rep_factor; 00047 expr_arg_type value_desc; 00048 int value_il_idx; 00049 opnd_type value_opnd; 00050 00051 00052 /* The following variables are used by multiple routines. */ 00053 00054 int obj_il_idx; 00055 00056 00057 /* loop_tbl is shared by recursive references to the DATA implied-DO routines.*/ 00058 /* */ 00059 /* CAUTION: parent_idx, sibling_idx, and offspring_idx must be large enough */ 00060 /* to hold the value of LOOP_TBL_SIZE. */ 00061 /* 00062 ------------------------------------------------------------------------- 00063 | lcv_idx | | target_list | num_ 8| 00064 | 24 | 8 | 24 | targets | 00065 |-----------------------------------------------------------------------| 00066 | start_idx | start_ | start_expr_desc_idx | parent_ | 00067 | 24 | fld 8 | | idx 8| 00068 |-----------------------------------------------------------------------| 00069 | end_idx | end_ | end_expr_desc_idx |sibling_ | 00070 | 24 | fld 8 | |idx 8| 00071 |-----------------------------------------------------------------------| 00072 | inc_idx | inc_ | inc_expr_desc_idx |offspring| 00073 | 24 | fld 8 | |_idx 8| 00074 |-----------------------------------------------------------------------| 00075 | start_value | 00076 |-----------------------------------------------------------------------| 00077 | end_value | 00078 |-----------------------------------------------------------------------| 00079 | inc_value | 00080 |-----------------------------------------------------------------------| 00081 | curr_value | 00082 ------------------------------------------------------------------------- 00083 00084 */ 00085 00086 struct loop_tbl_entry { Uint lcv_idx : 24; 00087 Uint UNUSED_1 : 8; 00088 00089 Uint target_list : 24; 00090 Uint num_targets : 8; 00091 00092 Uint start_idx : 24; 00093 fld_type start_fld : 8; 00094 00095 Uint start_expr_desc_idx : 24; 00096 Uint parent_idx : 8; 00097 00098 Uint end_idx : 24; 00099 fld_type end_fld : 8; 00100 00101 Uint end_expr_desc_idx : 24; 00102 Uint sibling_idx : 8; 00103 00104 Uint inc_idx : 24; 00105 fld_type inc_fld : 8; 00106 00107 Uint inc_expr_desc_idx : 24; 00108 Uint offspring_idx : 8; 00109 00110 long64 start_value ; 00111 long64 end_value ; 00112 long64 inc_value ; 00113 long64 curr_value ; 00114 }; 00115 00116 typedef struct loop_tbl_entry loop_tbl_type; 00117 00118 00119 /* Define the size of the loop_tbl for DATA implied-DO processing. */ 00120 00121 # define LOOP_TBL_SIZE 21 00122 00123 00124 /* The first entry is not used so that NULL_IDX can be used to mean "no */ 00125 /* table entry". */ 00126 00127 loop_tbl_type loop_tbl[LOOP_TBL_SIZE]; 00128 00129 00130 /* The following variable is used globally in s_data.c. */ 00131 00132 long64 ls_word_len;