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 #ifndef controls_INCLUDED 00037 #define controls_INCLUDED 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00042 /* ==================================================================== 00043 * ==================================================================== 00044 * 00045 * 00046 * Revision history: 00047 * 17-Jun-91 - Integrated from Josie flags.h 00048 * 00049 * Description: 00050 * 00051 * Interface to a general package for uniform access to compiler 00052 * controls which may be set via command line flags or pragmas. 00053 * 00054 * ==================================================================== 00055 * ==================================================================== 00056 */ 00057 00058 00059 #ifdef _KEEP_RCS_ID 00060 #endif /* _KEEP_RCS_ID */ 00061 00062 /* The following is a list of IDs for the available controls: */ 00063 typedef enum control { 00064 CONTROL_MIN_CONTROL = 0, /* unused, bounds marker */ 00065 #define CONTROL_FIRST CONTROL_ACIR 00066 CONTROL_ACIR, 00067 CONTROL_ALIAS, 00068 CONTROL_ALNDCL, 00069 CONTROL_ALNREF, 00070 CONTROL_ALNSTD, 00071 CONTROL_ARGOVERLAP, 00072 CONTROL_C, 00073 CONTROL_CALLMOD, 00074 CONTROL_CASE, 00075 CONTROL_CHAR, 00076 CONTROL_CHKARGS, 00077 CONTROL_CHKREC, 00078 CONTROL_CHKSUB, 00079 CONTROL_CONSTP, 00080 CONTROL_COMNAME, 00081 CONTROL_COPYP, 00082 CONTROL_DEFARGOVERLAP, 00083 CONTROL_DEFFUNC, 00084 CONTROL_DEFKEEPARGS, 00085 CONTROL_DEFLIB, 00086 CONTROL_DEFNEWMEM, 00087 CONTROL_DEFREC, 00088 CONTROL_DEFSEF, 00089 CONTROL_DEFSRC, 00090 CONTROL_DEFVOL, 00091 CONTROL_DIAG, 00092 CONTROL_DLINE, 00093 CONTROL_DOMAIN, 00094 CONTROL_EXITS, 00095 CONTROL_FBLANK, 00096 CONTROL_FCM, 00097 CONTROL_FCOLS, 00098 CONTROL_FERAL, 00099 CONTROL_FLOW, 00100 CONTROL_FP, 00101 CONTROL_FTAB, 00102 CONTROL_FUNC, 00103 CONTROL_G, 00104 CONTROL_INLINE, 00105 CONTROL_KEEPARGS, 00106 CONTROL_LEAF, 00107 CONTROL_MAP, 00108 CONTROL_MEMLIMIT, 00109 CONTROL_NEWMEM, 00110 CONTROL_NOARGOVERLAP, 00111 CONTROL_NOFUNC, 00112 CONTROL_NOINLINE, 00113 CONTROL_NOKEEPARGS, 00114 CONTROL_NONEWMEM, 00115 CONTROL_NOREC, 00116 CONTROL_NOSEF, 00117 CONTROL_NOVOL, 00118 CONTROL_ONETRIP, 00119 CONTROL_OFORM, 00120 CONTROL_MOPT, 00121 CONTROL_PROF, 00122 CONTROL_PTRVOL, 00123 CONTROL_QUIT, 00124 CONTROL_REAL, 00125 CONTROL_RECURSIVE, 00126 CONTROL_REG, 00127 CONTROL_RETPTS, 00128 CONTROL_SAVE, 00129 CONTROL_SCHED, 00130 CONTROL_SEF, 00131 CONTROL_STDDIAG, 00132 CONTROL_TAME, 00133 CONTROL_TARG, 00134 CONTROL_UNROLL, 00135 CONTROL_UNROLLEXACT, 00136 CONTROL_VOLATILE, 00137 CONTROL_WHOLE, 00138 CONTROL_WILD, 00139 CONTROL_XREF, 00140 #define CONTROL_JFE_LAST (CONTROL_XREF+1) 00141 00142 /* New controls from Josie/92: */ 00143 CONTROL_IVREP, 00144 CONTROL_XOPT, 00145 00146 CONTROL_MAX_CONTROL /* unused, bounds marker */ 00147 #define CONTROL_LAST CONTROL_MAX_CONTROL 00148 } CONTROL; 00149 00150 /* The following flags are attached to control options when they are 00151 * processed, reflecting the context of their appearance: 00152 */ 00153 #define HCO_AAVAL 1 /* from -AA option */ 00154 #define HCO_IMPLICIT 2 /* Obtained from expansion of a group */ 00155 #define HCO_ONCE 4 /* appeared with %once */ 00156 #define HCO_PUSH 8 /* appeared with %push */ 00157 #define HCO_POP 16 /* appeared with %pop */ 00158 #define HCO_PRAGMA 32 /* from a pragma, as opposed to coomand line */ 00159 00160 /* Initialize the controls table: */ 00161 extern void Init_Controls_Tbl ( void ); 00162 00163 /* Process a control option string: */ 00164 extern void Handle_Control_Opt ( char *, BOOL ); 00165 00166 /* Apply the current values of the controls: */ 00167 extern void Apply_Controls ( void ); 00168 00169 /* Get the current value of a control: */ 00170 extern INT32 Get_Int_Ctrl_Val ( CONTROL a ); 00171 extern char *Get_Name_Ctrl_Val ( CONTROL a ); 00172 00173 /* Pop once values of all controls of given level: */ 00174 extern void Pop_Controls ( INT32 level ); 00175 00176 /* Save and restore routine top control values: */ 00177 extern void Save_Routine_Top_Ctrls ( void ); 00178 extern void Restore_Routine_Top_Ctrls ( void ); 00179 00180 /* Restore controls to their command line values: */ 00181 extern void Restore_Cmd_Line_Ctrls ( void ); 00182 00183 /* Print the current values of the controls: */ 00184 extern void Print_Controls ( FILE *fp, char *tag, BOOL def ); 00185 00186 /* Process a pragma, entering it in the control table: */ 00187 extern INT Process_Pragma ( char *x ); 00188 00189 /* Process a control options */ 00190 extern INT Process_Control_Opt ( char *save_a, INT flags ); 00191 00192 /* Handle -g/-O combinations */ 00193 extern void Fix_g_O(void); 00194 00195 #ifdef __cplusplus 00196 } 00197 #endif 00198 #endif /* controls_INCLUDED */