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 * ==================================================================== 00038 * 00039 * 00040 * Revision history: 00041 * 08-Sep-94 - Original Version (wodriver.c) 00042 * 05-May-96 - config_wopt.c extracted from wodriver.c 00043 * 00044 * Description: 00045 * 00046 * Configure the -WOPT group (included in config.c). 00047 * Used from ipl, inline, ipa (ld), and be. 00048 * 00049 * ==================================================================== 00050 * ==================================================================== 00051 */ 00052 00053 // This file is included in config.cxx, so it doesn't need its own set of 00054 // standard includes -- only the following: 00055 #include "config_wopt.h" 00056 00057 00058 /* ==================================================================== 00059 * 00060 * Global flag variables which reflect the -WOPT group options. 00061 * 00062 * ==================================================================== 00063 */ 00064 00065 /* List of global variables to turn on and off various optimizations */ 00066 UINT32 WOPT_Ip_Alias_Class_Limit = UINT32_MAX; // no limit 00067 UINT32 WOPT_Alias_Class_Limit = UINT32_MAX; // no limit 00068 BOOL WOPT_Ldx_Ratio_RegIns = 1; 00069 BOOL WOPT_Enable_Add_Do_Loop_Info = TRUE; 00070 BOOL WOPT_Enable_Add_Label_Loop_Info = TRUE; 00071 BOOL WOPT_Enable_Aggressive_Code_Motion = TRUE; 00072 INT32 WOPT_Enable_Aggressive_CM_Limit = INT32_MAX; 00073 INT32 WOPT_Enable_Aggressive_CM_Threshold = 70; 00074 BOOL WOPT_Enable_Aggressive_dce = TRUE; 00075 BOOL WOPT_Enable_Aggressive_Doloop_Promotion = FALSE; 00076 BOOL WOPT_Enable_Aggressive_IVR = TRUE; 00077 BOOL WOPT_Enable_Aggressive_Lftr = TRUE; 00078 BOOL WOPT_Enable_Aggressive_Phi_Simp = TRUE; 00079 BOOL WOPT_Enable_Aggstr_Reduction = TRUE; 00080 BOOL WOPT_Enable_Alias_ANSI = TRUE; 00081 BOOL WOPT_Enable_Alias_Classification = TRUE; 00082 BOOL WOPT_Enable_Alias_Class_Fortran_Rule = TRUE; 00083 BOOL WOPT_Enable_Alias_Qualifer = TRUE; 00084 BOOL WOPT_Enable_Alias_Ragnarok_Unnamed = TRUE; 00085 BOOL WOPT_Enable_Avoid_Rehash = FALSE; /* SSAPRE to minimize rehashing */ 00086 BOOL WOPT_Enable_Bitwise_DCE = TRUE; 00087 BOOL WOPT_Enable_CSE_FP_comparison = TRUE; 00088 BOOL WOPT_Enable_Call_Flag = TRUE; 00089 BOOL WOPT_Enable_Calls_Break_BB = FALSE; 00090 BOOL WOPT_Enable_Calls_Break_BB_Set = FALSE; 00091 BOOL WOPT_Enable_Canon_Expr = TRUE; 00092 BOOL WOPT_Enable_Combine_Operations = TRUE; 00093 BOOL WOPT_Enable_Compare_Simp = TRUE; /* simplify comparisons */ 00094 BOOL WOPT_Enable_Const_PRE = TRUE; 00095 INT32 WOPT_Enable_Const_PRE_Limit = 0; 00096 BOOL WOPT_Enable_Copy_Propagate = TRUE; 00097 BOOL WOPT_Enable_Copy_Prop_Bad_Ops = FALSE; /* copy prop ops that strength-reduction can't handle */ 00098 static BOOL WOPT_Enable_Copy_Prop_Bad_Ops_Set = FALSE; 00099 BOOL WOPT_Enable_Copy_Prop_LNO_Ops = FALSE; /* copy prop ops that LNO can't handle */ 00100 /* copy prop certain ops into ARRAY subscripts (enabled for mainopt) */ 00101 BOOL WOPT_Enable_Copy_Prop_Ops_Into_Array = FALSE; 00102 BOOL WOPT_Enable_Copy_Prop_Ops_Into_Array_Set = FALSE; 00103 BOOL WOPT_Enable_CG_Alias = TRUE; 00104 BOOL WOPT_Enable_DIVREM = TRUE; /* allow divrem opcode */ 00105 BOOL WOPT_Enable_CRSIMP = TRUE; 00106 BOOL WOPT_Enable_DCE = TRUE; 00107 BOOL WOPT_Enable_DCE_Alias = FALSE; 00108 BOOL WOPT_Enable_DCE_Branch = TRUE; 00109 INT32 WOPT_Enable_DCE_Branch_Pred_Limit = 5; 00110 BOOL WOPT_Enable_DCE_Global = TRUE; 00111 BOOL WOPT_Enable_DCE_Label = TRUE; 00112 BOOL WOPT_Enable_DU_Full = FALSE; 00113 BOOL WOPT_Enable_DU_Union = TRUE; 00114 BOOL WOPT_Enable_Dead_CR_Fix = TRUE; 00115 BOOL WOPT_Enable_Debug_Inconsistent_Ip_Class = FALSE; 00116 BOOL WOPT_Enable_Estr_FB_Injury = FALSE; 00117 static BOOL WOPT_Enable_Estr_FB_Injury_Set = FALSE; 00118 BOOL WOPT_Enable_Exp_PRE = TRUE; 00119 INT32 WOPT_Enable_Exp_PRE_Limit = -1; 00120 BOOL WOPT_Enable_Fast_Simp = TRUE; 00121 BOOL WOPT_Enable_Fold2const = TRUE; 00122 BOOL WOPT_Enable_Fold_Lda_Iload_Istore = FALSE; 00123 BOOL WOPT_Enable_LNO_Copy_Propagate = TRUE; 00124 BOOL WOPT_Enable_FSA = TRUE; 00125 INT32 WOPT_Enable_Generate_Trip_Count = 1; 00126 BOOL WOPT_Enable_Generate_DU = TRUE; 00127 BOOL WOPT_Enable_Goto = TRUE; 00128 BOOL WOPT_Enable_Hoisting = TRUE; 00129 BOOL WOPT_Enable_Ivar_Hoisting = TRUE; 00130 BOOL WOPT_Enable_I8_Primary_IV = FALSE; 00131 BOOL WOPT_Enable_Improved_Addr_Taken = TRUE; 00132 BOOL WOPT_Enable_Input_Prop = TRUE; 00133 BOOL WOPT_Enable_Itself_Prop = TRUE; 00134 BOOL WOPT_Enable_IPAA = FALSE; 00135 BOOL WOPT_Enable_Ivar_Common = TRUE; 00136 BOOL WOPT_Enable_Ivar_PRE = TRUE; 00137 BOOL WOPT_Enable_Ivincr_Cand = FALSE; 00138 BOOL WOPT_Enable_IVE = TRUE; 00139 BOOL WOPT_Enable_IVE_Old = FALSE; 00140 BOOL WOPT_Enable_IVR = TRUE; 00141 INT32 WOPT_Enable_IVR_Expand_Limit = 1000; /* expand 1000 statements */ 00142 BOOL WOPT_Enable_IVR_Outermost_Loop_Parallel_Region = FALSE; 00143 BOOL WOPT_Enable_Ldx = FALSE; 00144 BOOL WOPT_Enable_Lego_Opt = FALSE; 00145 BOOL WOPT_Enable_LFTR = TRUE; 00146 BOOL WOPT_Enable_LFTR_Ivar = FALSE; 00147 #ifdef TARG_MIPS 00148 BOOL WOPT_Enable_LFTR2 = TRUE; 00149 #else 00150 BOOL WOPT_Enable_LFTR2 = FALSE; 00151 #endif 00152 INT32 WOPT_Enable_LFTR2_Limit = -1; 00153 BOOL WOPT_Enable_Load_PRE = TRUE; 00154 INT32 WOPT_Enable_Load_PRE_Limit = -1; 00155 BOOL WOPT_Enable_Loopinvarexp_Str_Reduction = TRUE; 00156 BOOL WOPT_Enable_Lower_Short_Circuit = FALSE; 00157 BOOL WOPT_Enable_Lower_Short_Circuit_Set = FALSE; 00158 BOOL WOPT_Enable_MINMAX = TRUE; /* allow minmax opcode */ 00159 BOOL WOPT_Enable_Min_Type = TRUE; 00160 BOOL WOPT_Enable_Move_Intrinsicop = TRUE; 00161 BOOL WOPT_Enable_MP_varref = TRUE; 00162 const BOOL WOPT_Enable_MP_Const_Prop = TRUE; 00163 BOOL WOPT_Enable_New_SR = TRUE; 00164 BOOL WOPT_Enable_New_SR_Limit = 0; 00165 BOOL WOPT_Enable_Output_Copy = TRUE; 00166 BOOL WOPT_Enable_Ocopy_Lookupstmt = 2; 00167 BOOL WOPT_Enable_Parm = TRUE; 00168 char *WOPT_Enable_Process = NULL; 00169 BOOL WOPT_Enable_Phi_Simp = TRUE; 00170 BOOL WOPT_Enable_Prop_Ivar = TRUE; 00171 BOOL WOPT_Enable_Prop_CSE = FALSE; /* propagate CSE expressions */ 00172 INT32 WOPT_Enable_Prop_Limit = 14; /* this is a guess, PV 468862 */ 00173 BOOL WOPT_Enable_Prune = TRUE; /* temporary, PV 370066 */ 00174 BOOL WOPT_Enable_Replace_Second_IV = TRUE; 00175 BOOL WOPT_Enable_Replace_While_Loop_Second_IV = TRUE; 00176 BOOL WOPT_Enable_Restricted_Map = TRUE; 00177 INT32 WOPT_Enable_Rsv_Bits = 16; /* reserve bit count in itable */ 00178 BOOL WOPT_Enable_RVI = TRUE; /* perform both rvi1 and rvi2 */ 00179 BOOL WOPT_Enable_RVI1 = TRUE; /* phase 1 of rvi */ 00180 BOOL WOPT_Enable_RVI2 = TRUE; /* phase 2 of rvi */ 00181 BOOL WOPT_Enable_Rviistore = TRUE; /* agg. chi-handling on istore*/ 00182 char *WOPT_Enable_Rviskip = NULL; /* skip this var during RVI */ 00183 BOOL WOPT_Enable_Rvisplit = FALSE; /* split bbs at every stmt */ 00184 BOOL WOPT_Enable_Rvivsym = TRUE; /* ignore vsym in chi lists */ 00185 BOOL WOPT_Enable_Second_Alias_Class = TRUE; 00186 BOOL WOPT_Enable_Second_Order = TRUE; 00187 char *WOPT_Enable_Skip = NULL; /* Name of function to skip */ 00188 OPTION_LIST *WOPT_Skip = NULL; /* Skip option list */ 00189 SKIPLIST *WOPT_Skip_List = NULL; /* Processed skiplist */ 00190 BOOL WOPT_Enable_SLT = TRUE; 00191 BOOL WOPT_Enable_Small_Br_Target = FALSE; /* propagation into branch BBs */ 00192 BOOL WOPT_Enable_Simple_If_Conv = TRUE; /* simple if-conversion at CFG build time */ 00193 BOOL WOPT_Enable_Speculation_Defeats_LFTR = TRUE; 00194 BOOL WOPT_Enable_SSA_Minimization = TRUE; /* SSA minimization in SSAPRE */ 00195 BOOL WOPT_Enable_SSA_PRE = TRUE; 00196 BOOL WOPT_Enable_Store_PRE = TRUE; 00197 INT32 WOPT_Enable_Store_PRE_Limit = -1; 00198 INT32 WOPT_Enable_Local_Rvi_Limit = -1; 00199 BOOL WOPT_Enable_Strength_Reduction = TRUE; 00200 BOOL WOPT_Enable_Update_Vsym = TRUE; 00201 BOOL WOPT_Enable_Unique_Pt_Vsym = TRUE; 00202 INT32 WOPT_Enable_Value_Numbering = 1; /* 0=OFF, 1=after_pre, 2=befr_n_aftr */ 00203 INT32 WOPT_Enable_Vn_Ivc = 1; /* 0=OFF, see be/opt/opt_vn_ivc.h */ 00204 UINT32 WOPT_Enable_Vnfre_After = 0; /* Disable vnfre after given valnum */ 00205 UINT32 WOPT_Enable_Vnfre_Before = UINT32_MAX; /* Disable before given valnum */ 00206 BOOL WOPT_Enable_Verbose = FALSE; 00207 INT32 WOPT_Enable_Verify = 1; 00208 BOOL WOPT_Enable_Vsym_Unique = FALSE; 00209 BOOL WOPT_Enable_While_Loop = TRUE; 00210 BOOL WOPT_Enable_Worklist_Pruning = TRUE; 00211 BOOL WOPT_Enable_Zero_Version = TRUE; 00212 BOOL WOPT_Enable_Call_Zero_Version = TRUE; 00213 BOOL WOPT_Enable_Dse_Aggressive = TRUE; 00214 BOOL WOPT_Enable_Prop_Aggressive = TRUE; 00215 BOOL WOPT_Enable_Iload_Prop = TRUE; 00216 BOOL WOPT_Enable_VN_Full = TRUE; /* full value number (for ivars) */ 00217 BOOL WOPT_Enable_Simp_Iload = TRUE; /* simplifier folding iload */ 00218 BOOL WOPT_Enable_Canon_Uplevel=FALSE; /* canonicalize the up level ref */ 00219 BOOL WOPT_Enable_Tail_Recur = FALSE; /* tail recursion */ 00220 BOOL WOPT_Enable_Edge_Placement = TRUE;/* insert BB on critical edge */ 00221 BOOL WOPT_Enable_Backedge_Placement = FALSE; /* insert BB on critical backedge */ 00222 BOOL WOPT_Enable_Source_Order = FALSE; /* Dump CFG in source order */ 00223 BOOL WOPT_Enable_Cvt_Folding = TRUE; /* enable cvt folding in emitter */ 00224 BOOL WOPT_Enable_Local_Rvi = TRUE; /* enable fast rvi of locals */ 00225 BOOL WOPT_Enable_Strong_Barrier = FALSE; 00226 BOOL WOPT_Enable_Aggr_Invariant = TRUE; 00227 BOOL WOPT_Enable_Shrink = TRUE; 00228 INT32 WOPT_Enable_Extra_Rename_Pass = 5; 00229 BOOL WOPT_Enable_Extra_Rename_Pass_Set = FALSE; 00230 UINT32 WOPT_Enable_Extra_Preopt_Pass = 0; 00231 BOOL WOPT_Enable_Bool_Simp = TRUE; 00232 BOOL WOPT_Enable_Feedback_LPRE = FALSE; 00233 BOOL WOPT_Enable_Feedback_EPRE = FALSE; 00234 BOOL WOPT_Enable_CFG_Display = FALSE; 00235 BOOL WOPT_Enable_CFG_Merge_Multi_Zone = TRUE; 00236 BOOL WOPT_Enable_CFG_Merge_Multi_Zone_Set = FALSE; 00237 BOOL WOPT_Enable_CFG_Opt = TRUE; /* control flow optimization main switch */ 00238 BOOL WOPT_Enable_CFG_Opt1 = TRUE; 00239 BOOL WOPT_Enable_CFG_Opt2 = TRUE; 00240 INT32 WOPT_Enable_CFG_Opt2_Limit = 80; /* Loop butterfly should produce a min of 80% coverage */ 00241 BOOL WOPT_Enable_CFG_Opt3 = FALSE; 00242 BOOL WOPT_Enable_CFG_Opt4 = FALSE; 00243 BOOL WOPT_Enable_CFG_Opt_Limit = 10; 00244 char *WOPT_Set_Unique_Pt = NULL; 00245 BOOL WOPT_Enable_Bits_Load_Store = TRUE; // accept LDBITS, STBITS, etc. 00246 BOOL WOPT_Enable_Epre_Before_Ivr = FALSE; // For running epre early 00247 BOOL WOPT_Enable_Lpre_Before_Ivr = FALSE; // For running lpre early 00248 BOOL WOPT_Enable_Spre_Before_Ivr = FALSE; // For running spre early 00249 BOOL WOPT_Enable_Bdce_Before_Ivr = FALSE; // For running bdce early 00250 BOOL WOPT_Enable_New_Phase_Ordering = TRUE; // Enables some phases before ivr 00251 00252 00253 /* ==================================================================== 00254 * 00255 * Descriptor for the -WOPT option group. 00256 * 00257 * ==================================================================== 00258 */ 00259 00260 /* scalar optimizer options: 00261 see common/util/flags.h, typedef struct option_desc for documentation */ 00262 static OPTION_DESC Options_WOPT[] = { 00263 { OVK_UINT32, OV_INTERNAL, TRUE, "ac_limit", "", 00264 UINT32_MAX, 0, UINT32_MAX, &WOPT_Alias_Class_Limit, NULL }, 00265 { OVK_UINT32, OV_INTERNAL, TRUE, "ip_ac_limit", "", 00266 UINT32_MAX, 0, UINT32_MAX, &WOPT_Ip_Alias_Class_Limit, NULL }, 00267 { OVK_BOOL, OV_INTERNAL, TRUE, "add_do_loop_info", "add_do", 00268 0, 0, 0, &WOPT_Enable_Add_Do_Loop_Info, NULL }, 00269 { OVK_BOOL, OV_INTERNAL, TRUE, "add_label_loop_info", "add_label", 00270 0, 0, 0, &WOPT_Enable_Add_Label_Loop_Info, NULL }, 00271 { OVK_BOOL, OV_INTERNAL, TRUE, "aggcm", "aggcm", 00272 0, 0, 0, &WOPT_Enable_Aggressive_Code_Motion, NULL }, 00273 { OVK_INT32, OV_INTERNAL, TRUE, "aggcm_limit", "", 00274 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Aggressive_CM_Limit, NULL }, 00275 { OVK_INT32, OV_INTERNAL, TRUE, "aggcm_threshold", "aggcm_thres", 00276 0, 0, 101, &WOPT_Enable_Aggressive_CM_Threshold, NULL }, 00277 { OVK_BOOL, OV_INTERNAL, TRUE, "agglftr", "agglftr", 00278 0, 0, 0, &WOPT_Enable_Aggressive_Lftr, NULL }, 00279 { OVK_BOOL, OV_INTERNAL, TRUE, "aggphi_simp", "aggphi", 00280 0, 0, 0, &WOPT_Enable_Aggressive_Phi_Simp, NULL }, 00281 { OVK_BOOL, OV_INTERNAL, TRUE, "aggdo", "aggdo", 00282 0, 0, 0, &WOPT_Enable_Aggressive_Doloop_Promotion, NULL }, 00283 { OVK_BOOL, OV_INTERNAL, TRUE, "agg_ivr", "agg_ivr", 00284 0, 0, 0, &WOPT_Enable_Aggressive_IVR, NULL }, 00285 { OVK_BOOL, OV_INTERNAL, TRUE, "aggstr_reduction", "aggstr", 00286 0, 0, 0, &WOPT_Enable_Aggstr_Reduction, NULL }, 00287 { OVK_BOOL, OV_INTERNAL, TRUE, "alias_classification", "alias_class", 00288 0, 0, 0, &WOPT_Enable_Alias_Classification, NULL }, 00289 { OVK_BOOL, OV_INTERNAL, TRUE, "ac_fortran", "", 00290 0, 0, 0, &WOPT_Enable_Alias_Class_Fortran_Rule, NULL }, 00291 { OVK_BOOL, OV_INTERNAL, TRUE, "avoid_rehash", "", 00292 0, 0, 0, &WOPT_Enable_Avoid_Rehash, NULL }, 00293 { OVK_BOOL, OV_INTERNAL, TRUE, "bdce", "", 00294 0, 0, 0, &WOPT_Enable_Bitwise_DCE, NULL }, 00295 { OVK_BOOL, OV_INTERNAL, TRUE, "cse_fcmp", "", 00296 0, 0, 0, &WOPT_Enable_CSE_FP_comparison, NULL }, 00297 { OVK_BOOL, OV_INTERNAL, TRUE, "canon_uplevel", "canon", 00298 0, 0, 0, &WOPT_Enable_Canon_Uplevel, NULL }, 00299 { OVK_BOOL, OV_INTERNAL, TRUE, "call_flag", "call_flag", 00300 0, 0, 0, &WOPT_Enable_Call_Flag, NULL }, 00301 { OVK_BOOL, OV_INTERNAL, FALSE, "calls_break_bb", "", 00302 0, 0, 0, &WOPT_Enable_Calls_Break_BB, &WOPT_Enable_Calls_Break_BB_Set }, 00303 { OVK_BOOL, OV_INTERNAL, TRUE, "canon_expr", "canon_expr", 00304 0, 0, 0, &WOPT_Enable_Canon_Expr, NULL }, 00305 { OVK_BOOL, OV_INTERNAL, TRUE, "cg_alias", "cg_alias", 00306 0, 0, 0, &WOPT_Enable_CG_Alias, NULL }, 00307 { OVK_BOOL, OV_INTERNAL, TRUE, "class2", "class2", 00308 0, 0, 0, &WOPT_Enable_Second_Alias_Class, NULL }, 00309 { OVK_BOOL, OV_INTERNAL, TRUE, "combine_operations", "combine", 00310 0, 0, 0, &WOPT_Enable_Combine_Operations, NULL }, 00311 { OVK_BOOL, OV_INTERNAL, TRUE, "compare_simp", "compare", 00312 0, 0, 0, &WOPT_Enable_Compare_Simp, NULL }, 00313 { OVK_BOOL, OV_INTERNAL, TRUE, "const_pre", "const_pre", 00314 0, 0, 0, &WOPT_Enable_Const_PRE, NULL }, 00315 { OVK_INT32, OV_INTERNAL, TRUE, "const_pre_limit", "const_pre_limit", 00316 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Const_PRE_Limit, NULL }, 00317 { OVK_BOOL, OV_INTERNAL, TRUE, "divrem", "divrem", 00318 0, 0, 0, &WOPT_Enable_DIVREM, NULL }, 00319 { OVK_BOOL, OV_INTERNAL, TRUE, "copy_propagate", "copy", 00320 0, 0, 0, &WOPT_Enable_Copy_Propagate, NULL }, 00321 { OVK_BOOL, OV_INTERNAL, TRUE, "copy_ops", "copy_ops", 00322 0, 0, 0, &WOPT_Enable_Copy_Prop_Bad_Ops, NULL }, 00323 { OVK_BOOL, OV_INTERNAL, TRUE, "copy_lno_ops", "copy_lno", 00324 0, 0, 0, &WOPT_Enable_Copy_Prop_LNO_Ops, NULL }, 00325 { OVK_BOOL, OV_INTERNAL, TRUE, "copy_into_array", "", 00326 0, 0, 0, &WOPT_Enable_Copy_Prop_Ops_Into_Array, 00327 &WOPT_Enable_Copy_Prop_Ops_Into_Array_Set }, 00328 { OVK_BOOL, OV_INTERNAL, TRUE, "lno_copy_propagation", "lno_copy", 00329 0, 0, 0, &WOPT_Enable_LNO_Copy_Propagate, NULL }, 00330 { OVK_BOOL, OV_INTERNAL, TRUE, "cr_simp", "cr", 00331 0, 0, 0, &WOPT_Enable_CRSIMP, NULL }, 00332 { OVK_BOOL, OV_INTERNAL, TRUE, "fastsimp", "", 00333 0, 0, 0, &WOPT_Enable_Fast_Simp, NULL }, 00334 { OVK_BOOL, OV_INTERNAL, TRUE, "fold2const", "fold", 00335 0, 0, 0, &WOPT_Enable_Fold2const, NULL }, 00336 { OVK_BOOL, OV_INTERNAL, TRUE, "fold_lda_iload_istore", "fold_lda_iload", 00337 0, 0, 0, &WOPT_Enable_Fold_Lda_Iload_Istore, NULL }, 00338 { OVK_BOOL, OV_INTERNAL, TRUE, "dead_code_elim", "dead", 00339 0, 0, 0, &WOPT_Enable_DCE, NULL }, 00340 { OVK_BOOL, OV_INTERNAL, TRUE, "dce_aggressive", "dce", 00341 0, 0, 0, &WOPT_Enable_Aggressive_dce, NULL }, 00342 { OVK_BOOL, OV_INTERNAL, TRUE, "dce_alias", "", 00343 0, 0, 0, &WOPT_Enable_DCE_Alias, NULL }, 00344 { OVK_BOOL, OV_INTERNAL, TRUE, "dce_branch", "", 00345 0, 0, 0, &WOPT_Enable_DCE_Branch, NULL }, 00346 { OVK_INT32, OV_INTERNAL, TRUE, "dce_branch_pred_limit", "", 00347 5, 0, INT32_MAX, &WOPT_Enable_DCE_Branch_Pred_Limit, NULL }, 00348 { OVK_BOOL, OV_INTERNAL, TRUE, "dce_global", "", 00349 0, 0, 0, &WOPT_Enable_DCE_Global, NULL }, 00350 { OVK_BOOL, OV_INTERNAL, TRUE, "dce_label", "", 00351 0, 0, 0, &WOPT_Enable_DCE_Label, NULL }, 00352 { OVK_BOOL, OV_INTERNAL, TRUE, "du_full", "", 00353 0, 0, 0, &WOPT_Enable_DU_Full, NULL }, 00354 { OVK_BOOL, OV_INTERNAL, TRUE, "du_union", "", 00355 0, 0, 0, &WOPT_Enable_DU_Union, NULL }, 00356 { OVK_BOOL, OV_INTERNAL, TRUE, "dead_cr", "", 00357 0, 0, 0, &WOPT_Enable_Dead_CR_Fix, NULL }, 00358 { OVK_BOOL, OV_INTERNAL, TRUE, "debug_class", "", 00359 0, 0, 0, &WOPT_Enable_Debug_Inconsistent_Ip_Class, NULL }, 00360 { OVK_BOOL, OV_INTERNAL, TRUE, "epre", "epre", 00361 0, 0, 0, &WOPT_Enable_Exp_PRE, NULL }, 00362 { OVK_INT32, OV_INTERNAL, TRUE, "epre_limit", "", 00363 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Exp_PRE_Limit, NULL }, 00364 { OVK_BOOL, OV_INTERNAL, TRUE, "estr_fb_injury", "", 00365 0, 0, 0, &WOPT_Enable_Estr_FB_Injury, &WOPT_Enable_Estr_FB_Injury_Set }, 00366 { OVK_BOOL, OV_INTERNAL, TRUE, "goto_conversion", "goto", 00367 0, 0, 0, &WOPT_Enable_Goto, NULL }, 00368 { OVK_BOOL, OV_INTERNAL, TRUE, "hoisting", "hoist", 00369 0, 0, 0, &WOPT_Enable_Hoisting, NULL }, 00370 { OVK_BOOL, OV_INTERNAL, TRUE, "hoist_ivar", "hoist_ivar", 00371 0, 0, 0, &WOPT_Enable_Ivar_Hoisting, NULL }, 00372 { OVK_BOOL, OV_INTERNAL, TRUE, "i8_iv", "i8_iv", 00373 0, 0, 0, &WOPT_Enable_I8_Primary_IV, NULL }, 00374 { OVK_BOOL, OV_INTERNAL, TRUE, "addr", "addr", 00375 0, 0, 0, &WOPT_Enable_Improved_Addr_Taken, NULL }, 00376 { OVK_BOOL, OV_INTERNAL, TRUE, "icopy_propagate", "icopy", 00377 0, 0, 0, &WOPT_Enable_Input_Prop, NULL }, 00378 { OVK_BOOL, OV_INTERNAL, TRUE, "itself_prop", "itself", 00379 0, 0, 0, &WOPT_Enable_Itself_Prop, NULL }, 00380 { OVK_BOOL, OV_INTERNAL, TRUE, "ipaa", "ipaa", 00381 0, 0, 0, &WOPT_Enable_IPAA, NULL }, 00382 { OVK_NAME, OV_INTERNAL, TRUE, "ipaa_file", "ipaa_f", 00383 0, 0, 0, &Ipa_File_Name, NULL }, 00384 { OVK_BOOL, OV_INTERNAL, TRUE, "iv_elimination", "iv_elim", 00385 0, 0, 0, &WOPT_Enable_IVE, NULL }, 00386 { OVK_BOOL, OV_INTERNAL, TRUE, "ive_old", "ive_old", 00387 0, 0, 0, &WOPT_Enable_IVE_Old, NULL }, 00388 { OVK_BOOL, OV_INTERNAL, TRUE, "iv_recognition", "iv_recog", 00389 0, 0, 0, &WOPT_Enable_IVR, NULL }, 00390 { OVK_INT32, OV_INTERNAL, TRUE, "ivr_expand_limit", "", 00391 1000, 0, INT32_MAX, &WOPT_Enable_IVR_Expand_Limit, NULL }, 00392 { OVK_BOOL, OV_INTERNAL, TRUE, "iv_outer_parallel", "", 00393 0, 0, 0, &WOPT_Enable_IVR_Outermost_Loop_Parallel_Region, NULL }, 00394 { OVK_BOOL, OV_INTERNAL, TRUE, "ivar_common", "ivar", 00395 0, 0, 0, &WOPT_Enable_Ivar_Common, NULL }, 00396 { OVK_BOOL, OV_INTERNAL, TRUE, "ivar_pre", "ivar_pre", 00397 0, 0, 0, &WOPT_Enable_Ivar_PRE, NULL }, 00398 { OVK_BOOL, OV_INTERNAL, TRUE, "ivincr_cand", "ivincr", 00399 0, 0, 0, &WOPT_Enable_Ivincr_Cand, NULL }, 00400 { OVK_INT32, OV_INTERNAL, TRUE, "ldx_ratio_regins", "ldx_ratio", 00401 0, 0, 4096, &WOPT_Ldx_Ratio_RegIns, NULL }, 00402 { OVK_BOOL, OV_INTERNAL, TRUE, "ldx", "ldx", 00403 0, 0, 0, &WOPT_Enable_Ldx, NULL }, 00404 { OVK_BOOL, OV_INTERNAL, TRUE, "lego_opt", "lego", 00405 0, 0, 0, &WOPT_Enable_Lego_Opt, NULL }, 00406 { OVK_BOOL, OV_INTERNAL, TRUE, "lftr", "lftr", 00407 0, 0, 0, &WOPT_Enable_LFTR, NULL }, 00408 { OVK_BOOL, OV_INTERNAL, TRUE, "lftr_ivar", "lftr_ivar", 00409 0, 0, 0, &WOPT_Enable_LFTR_Ivar, NULL }, 00410 { OVK_BOOL, OV_INTERNAL, TRUE, "lftr2", "lftr2", 00411 0, 0, 0, &WOPT_Enable_LFTR2, NULL }, 00412 { OVK_INT32, OV_INTERNAL, TRUE, "lftr2_limit", "lftr2_limit", 00413 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_LFTR2_Limit, NULL }, 00414 { OVK_BOOL, OV_INTERNAL, TRUE, "lpre", "lpre", 00415 0, 0, 0, &WOPT_Enable_Load_PRE, NULL }, 00416 { OVK_INT32, OV_INTERNAL, TRUE, "lpre_limit", "", 00417 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Load_PRE_Limit, NULL }, 00418 { OVK_BOOL, OV_INTERNAL, TRUE, "loop_invarexp", "loop_invar", 00419 0, 0, 0, &WOPT_Enable_Loopinvarexp_Str_Reduction, NULL }, 00420 { OVK_BOOL, OV_INTERNAL, FALSE, "lower_short_circuit", "", 00421 0, 0, 0, &WOPT_Enable_Lower_Short_Circuit, &WOPT_Enable_Lower_Short_Circuit_Set }, 00422 { OVK_BOOL, OV_INTERNAL, TRUE, "minmax", "minmax", 00423 0, 0, 0, &WOPT_Enable_MINMAX, NULL }, 00424 { OVK_BOOL, OV_INTERNAL, TRUE, "min_type", "min_type", 00425 0, 0, 0, &WOPT_Enable_Min_Type, NULL }, 00426 { OVK_BOOL, OV_INTERNAL, TRUE, "intrinsic", "intrinsic", 00427 0, 0, 0, &WOPT_Enable_Move_Intrinsicop, NULL }, 00428 { OVK_BOOL, OV_INTERNAL, TRUE, "mp_varref", "mp_varref", 00429 0, 0, 0, &WOPT_Enable_MP_varref, NULL }, 00430 #ifdef CHANGE_MIND_AGAIN 00431 { OVK_BOOL, OV_INTERNAL, TRUE, "mp_const_prop", "mp_const_prop", 00432 0, 0, 0, &WOPT_Enable_MP_Const_Prop, NULL }, 00433 #endif 00434 { OVK_BOOL, OV_INTERNAL, TRUE, "spec_nix_lftr", "", 00435 0, 0, 0, &WOPT_Enable_Speculation_Defeats_LFTR, NULL }, 00436 { OVK_BOOL, OV_INTERNAL, TRUE, "ssapre", "ssapre", 00437 0, 0, 0, &WOPT_Enable_SSA_PRE, NULL }, 00438 { OVK_BOOL, OV_INTERNAL, TRUE, "new_sr", "", 00439 0, 0, 0, &WOPT_Enable_New_SR, NULL }, 00440 { OVK_INT32, OV_INTERNAL, TRUE, "new_sr_limit", "new_sr_limit", 00441 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_New_SR_Limit, NULL }, 00442 { OVK_BOOL, OV_INTERNAL, TRUE, "ocopy", "ocopy", 00443 0, 0, 0, &WOPT_Enable_Output_Copy, NULL }, 00444 { OVK_INT32, OV_INTERNAL, TRUE, "ocopy_lookup_stmtcnt", "ocopy_lookup", 00445 0, 0, 4096, &WOPT_Enable_Ocopy_Lookupstmt, NULL }, 00446 { OVK_BOOL, OV_INTERNAL, TRUE, "parm", "parm", 00447 0, 0, 0, &WOPT_Enable_Parm, NULL }, 00448 { OVK_NAME, OV_INTERNAL, TRUE, "process", "process", 00449 0, 0, 0, &WOPT_Enable_Process, NULL }, 00450 { OVK_BOOL, OV_INTERNAL, TRUE, "phi_simp", "phi", 00451 0, 0, 0, &WOPT_Enable_Phi_Simp, NULL }, 00452 { OVK_BOOL, OV_INTERNAL, TRUE, "prop_ivar", "", 00453 0, 0, 0, &WOPT_Enable_Prop_Ivar, NULL }, 00454 { OVK_BOOL, OV_INTERNAL, FALSE, "prop_cse", "", 00455 0, 0, 0, &WOPT_Enable_Prop_CSE, NULL }, 00456 { OVK_INT32, OV_INTERNAL, TRUE, "prop_limit", "", 00457 14, 0, INT32_MAX, &WOPT_Enable_Prop_Limit, NULL }, /* PV 468862 */ 00458 { OVK_BOOL, OV_INTERNAL, TRUE, "prune", "", 00459 0, 0, 0, &WOPT_Enable_Prune, NULL }, 00460 { OVK_BOOL, OV_INTERNAL, TRUE, "replace_second_iv", "", 00461 0, 0, 0, &WOPT_Enable_Replace_Second_IV, NULL }, 00462 { OVK_BOOL, OV_INTERNAL, TRUE, "replace_while_loop_second_iv", "", 00463 0, 0, 0, &WOPT_Enable_Replace_While_Loop_Second_IV, NULL }, 00464 { OVK_BOOL, OV_INTERNAL, TRUE, "restricted_map", "", 00465 0, 0, 0, &WOPT_Enable_Restricted_Map, NULL }, 00466 { OVK_INT32, OV_INTERNAL, TRUE, "rsv_bits", "rsv", 00467 0, 0, 4096, &WOPT_Enable_Rsv_Bits, NULL }, 00468 { OVK_BOOL, OV_INTERNAL, TRUE, "rvi_enable", "rvi", 00469 0, 0, 0, &WOPT_Enable_RVI, NULL }, 00470 { OVK_BOOL, OV_INTERNAL, TRUE, "rvi1", "", 00471 0, 0, 0, &WOPT_Enable_RVI1, NULL }, 00472 { OVK_BOOL, OV_INTERNAL, TRUE, "rvi2", "", 00473 0, 0, 0, &WOPT_Enable_RVI2, NULL }, 00474 { OVK_BOOL, OV_INTERNAL, TRUE, "rviistore", "", 00475 0, 0, 0, &WOPT_Enable_Rviistore, NULL }, 00476 { OVK_NAME, OV_INTERNAL, TRUE, "rviskip", "", 00477 0, 0, 0, &WOPT_Enable_Rviskip, NULL }, 00478 { OVK_BOOL, OV_INTERNAL, TRUE, "rvisplit", "", 00479 0, 0, 0, &WOPT_Enable_Rvisplit, NULL }, 00480 { OVK_BOOL, OV_INTERNAL, TRUE, "rvivsym", "", 00481 0, 0, 0, &WOPT_Enable_Rvivsym, NULL }, 00482 { OVK_BOOL, OV_INTERNAL, TRUE, "second_order", "second", 00483 0, 0, 0, &WOPT_Enable_Second_Order, NULL }, 00484 { OVK_NAME, OV_INTERNAL, TRUE, "skip", "skip", 00485 0, 0, 0, &WOPT_Enable_Skip, NULL }, 00486 { OVK_LIST, OV_INTERNAL, TRUE, "skip_after", "skip_a", 00487 0, 0, 0, &WOPT_Skip, NULL }, 00488 { OVK_LIST, OV_INTERNAL, TRUE, "skip_before", "skip_b", 00489 0, 0, 0, &WOPT_Skip, NULL }, 00490 { OVK_LIST, OV_INTERNAL, TRUE, "skip_equal", "skip_e", 00491 0, 0, 0, &WOPT_Skip, NULL }, 00492 { OVK_BOOL, OV_INTERNAL, TRUE, "ssa_minimization", "ssa_min", 00493 0, 0, 0, &WOPT_Enable_SSA_Minimization, NULL }, 00494 { OVK_BOOL, OV_INTERNAL, TRUE, "spre", "spre", 00495 0, 0, 0, &WOPT_Enable_Store_PRE, NULL }, 00496 { OVK_INT32, OV_INTERNAL, TRUE, "spre_limit", "", 00497 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Store_PRE_Limit, NULL }, 00498 { OVK_BOOL, OV_INTERNAL, TRUE, "strength_reduction", "str", 00499 0, 0, 0, &WOPT_Enable_Strength_Reduction, NULL }, 00500 { OVK_BOOL, OV_INTERNAL, TRUE, "slt", "slt", 00501 0, 0, 0, &WOPT_Enable_SLT, NULL }, 00502 { OVK_BOOL, OV_INTERNAL, TRUE, "small_br_target", "small_br", 00503 0, 0, 0, &WOPT_Enable_Small_Br_Target, NULL }, 00504 { OVK_INT32, OV_INTERNAL, TRUE, "trip_count", "trip", 00505 2, 0, 2, &WOPT_Enable_Generate_Trip_Count, NULL }, 00506 { OVK_BOOL, OV_INTERNAL, TRUE, "update_vsym", "update_vsym", 00507 0, 0, 0, &WOPT_Enable_Update_Vsym, NULL }, 00508 { OVK_BOOL, OV_INTERNAL, TRUE, "unique_pt_vsym", "", 00509 0, 0, 0, &WOPT_Enable_Unique_Pt_Vsym, NULL }, 00510 { OVK_INT32, OV_INTERNAL, TRUE, "value_numbering", "val", 00511 1, 0, 4, &WOPT_Enable_Value_Numbering, NULL }, 00512 { OVK_BOOL, OV_INTERNAL, TRUE, "verbose", "v", 00513 0, 0, 0, &WOPT_Enable_Verbose, NULL }, 00514 { OVK_INT32, OV_INTERNAL, TRUE, "verify", "verify", 00515 1, 0, 4, &WOPT_Enable_Verify, NULL }, 00516 { OVK_BOOL, OV_INTERNAL, TRUE, "while_loop", "while", 00517 0, 0, 0, &WOPT_Enable_While_Loop, NULL }, 00518 { OVK_BOOL, OV_INTERNAL, TRUE, "worklist_prune", "worklist_prune", 00519 0, 0, 0, &WOPT_Enable_Worklist_Pruning, NULL }, 00520 { OVK_BOOL, OV_INTERNAL, TRUE, "zero_version", "zero", 00521 0, 0, 0, &WOPT_Enable_Zero_Version, NULL }, 00522 { OVK_BOOL, OV_INTERNAL, TRUE, "call_zero_version", "call_zero", 00523 0, 0, 0, &WOPT_Enable_Call_Zero_Version, NULL }, 00524 { OVK_BOOL, OV_INTERNAL, TRUE, "vsym_unique", "vsym", 00525 0, 0, 0, &WOPT_Enable_Vsym_Unique, NULL }, 00526 { OVK_BOOL, OV_INTERNAL, TRUE, "dse_aggressive", "dse", 00527 0, 0, 0, &WOPT_Enable_Dse_Aggressive, NULL }, 00528 { OVK_BOOL, OV_INTERNAL, TRUE, "prop_aggressive", "prop", 00529 0, 0, 0, &WOPT_Enable_Prop_Aggressive, NULL }, 00530 { OVK_BOOL, OV_INTERNAL, TRUE, "iload_prop", "iload", 00531 0, 0, 0, &WOPT_Enable_Iload_Prop, NULL }, 00532 { OVK_BOOL, OV_INTERNAL, TRUE, "vn_full", "vn", 00533 0, 0, 0, &WOPT_Enable_VN_Full, NULL }, 00534 { OVK_BOOL, OV_INTERNAL, TRUE, "simp_iload", "", 00535 0, 0, 0, &WOPT_Enable_Simp_Iload, NULL }, 00536 { OVK_BOOL, OV_INTERNAL, TRUE, "if_conv", "", 00537 0, 0, 0, &WOPT_Enable_Simple_If_Conv, NULL }, 00538 { OVK_BOOL, OV_INTERNAL, TRUE, "tail_recursion", "tail", 00539 0, 0, 0, &WOPT_Enable_Tail_Recur, NULL }, 00540 { OVK_BOOL, OV_INTERNAL, TRUE, "edge_placement", "edge", 00541 0, 0, 0, &WOPT_Enable_Edge_Placement, NULL }, 00542 { OVK_BOOL, OV_INTERNAL, TRUE, "backedge_placement", "backedge_p", 00543 0, 0, 0, &WOPT_Enable_Backedge_Placement, NULL }, 00544 { OVK_BOOL, OV_INTERNAL, TRUE, "src_order", "", 00545 0, 0, 0, &WOPT_Enable_Source_Order, NULL }, 00546 { OVK_NAME, OV_INTERNAL, TRUE, "set_unique_pt", "", 00547 0, 0, 0, &WOPT_Set_Unique_Pt, NULL }, 00548 { OVK_BOOL, OV_INTERNAL, TRUE, "fold_cvt", "", 00549 0, 0, 0, &WOPT_Enable_Cvt_Folding, NULL }, 00550 { OVK_BOOL, OV_INTERNAL, TRUE, "local_rvi", "", 00551 0, 0, 0, &WOPT_Enable_Local_Rvi, NULL }, 00552 { OVK_BOOL, OV_INTERNAL, TRUE, "strong_barrier", "", 00553 0, 0, 0, &WOPT_Enable_Strong_Barrier, NULL }, 00554 { OVK_BOOL, OV_INTERNAL, TRUE, "aggr_invariant", "", 00555 0, 0, 0, &WOPT_Enable_Aggr_Invariant, NULL }, 00556 { OVK_INT32, OV_INTERNAL, TRUE, "lrvi_limit", "", 00557 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Local_Rvi_Limit, NULL }, 00558 { OVK_BOOL, OV_INTERNAL, TRUE, "shrink", "", 00559 0, 0, 0, &WOPT_Enable_Shrink, NULL }, 00560 { OVK_INT32, OV_INTERNAL, TRUE, "extra_rename", "", 00561 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_Extra_Rename_Pass, &WOPT_Enable_Extra_Rename_Pass_Set }, 00562 { OVK_UINT32, OV_INTERNAL, TRUE, "extra_preopt", "extra_p", 00563 0, 0, UINT32_MAX, &WOPT_Enable_Extra_Preopt_Pass, NULL }, 00564 { OVK_BOOL, OV_INTERNAL, TRUE, "bool_simp", "", 00565 0, 0, 0, &WOPT_Enable_Bool_Simp, NULL }, 00566 { OVK_BOOL, OV_INTERNAL, FALSE, "fb_lpre", "", 00567 0, 0, 0, &WOPT_Enable_Feedback_LPRE, NULL }, 00568 { OVK_BOOL, OV_INTERNAL, FALSE, "fb_epre", "", 00569 0, 0, 0, &WOPT_Enable_Feedback_EPRE, NULL }, 00570 { OVK_BOOL, OV_INTERNAL, FALSE, "cfo_display", "", 00571 0, 0, 0, &WOPT_Enable_CFG_Display, NULL }, 00572 { OVK_BOOL, OV_INTERNAL, TRUE, "merge_multi_zone", "", 00573 0, 0, 0, &WOPT_Enable_CFG_Merge_Multi_Zone, &WOPT_Enable_CFG_Merge_Multi_Zone_Set }, 00574 { OVK_BOOL, OV_INTERNAL, FALSE, "cfo_main", "", 00575 0, 0, 0, &WOPT_Enable_CFG_Opt, NULL }, 00576 { OVK_BOOL, OV_INTERNAL, FALSE, "cfo1", "", 00577 0, 0, 0, &WOPT_Enable_CFG_Opt1, NULL }, 00578 { OVK_BOOL, OV_INTERNAL, FALSE, "cfo2", "", 00579 0, 0, 0, &WOPT_Enable_CFG_Opt2, NULL }, 00580 { OVK_INT32, OV_INTERNAL, TRUE, "min_cfo2_coverage", "", 00581 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_CFG_Opt2_Limit, NULL }, 00582 { OVK_BOOL, OV_INTERNAL, FALSE, "cfo3", "", 00583 0, 0, 0, &WOPT_Enable_CFG_Opt3, NULL }, 00584 { OVK_BOOL, OV_INTERNAL, FALSE, "cfo4", "", 00585 0, 0, 0, &WOPT_Enable_CFG_Opt4, NULL }, 00586 { OVK_INT32, OV_INTERNAL, FALSE, "cfo_limit", "", 00587 INT32_MAX, 0, INT32_MAX, &WOPT_Enable_CFG_Opt_Limit, NULL }, 00588 { OVK_INT32, OV_INTERNAL, TRUE, "vn_ivc", "", 00589 1, 0, 8, &WOPT_Enable_Vn_Ivc, NULL }, 00590 { OVK_UINT32, OV_INTERNAL, TRUE, "vnfre_after", "vnfre_a", 00591 0, 0, UINT32_MAX, &WOPT_Enable_Vnfre_After, NULL }, 00592 { OVK_UINT32, OV_INTERNAL, TRUE, "vnfre_before", "vnfre_b", 00593 UINT32_MAX, 0, UINT32_MAX, &WOPT_Enable_Vnfre_Before, NULL }, 00594 { OVK_BOOL, OV_INTERNAL, TRUE, "bit_field", "", 00595 0, 0, 0, &WOPT_Enable_Bits_Load_Store, NULL }, 00596 { OVK_BOOL, OV_INTERNAL, TRUE, "epre4ivr", "epre4ivr", 00597 0, 0, 0, &WOPT_Enable_Epre_Before_Ivr, NULL }, 00598 { OVK_BOOL, OV_INTERNAL, TRUE, "lpre4ivr", "lpre4ivr", 00599 0, 0, 0, &WOPT_Enable_Lpre_Before_Ivr, NULL }, 00600 { OVK_BOOL, OV_INTERNAL, TRUE, "spre4ivr", "spre4ivr", 00601 0, 0, 0, &WOPT_Enable_Spre_Before_Ivr, NULL }, 00602 { OVK_BOOL, OV_INTERNAL, TRUE, "bdce4ivr", "bdce4ivr", 00603 0, 0, 0, &WOPT_Enable_Bdce_Before_Ivr, NULL }, 00604 { OVK_BOOL, OV_INTERNAL, TRUE, "new_phase_order", "new_phase_order", 00605 TRUE, 0, 0, &WOPT_Enable_New_Phase_Ordering, NULL }, 00606 { OVK_COUNT } /* List terminator -- must be last */ 00607 };