00001 /* 00002 * Copyright (C) 2007. QLogic Corporation. All Rights Reserved. 00003 */ 00004 00005 /* 00006 * Copyright 2003, 2004, 2005, 2006 PathScale, Inc. All Rights Reserved. 00007 */ 00008 00009 /* 00010 00011 Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00012 00013 This program is free software; you can redistribute it and/or modify it 00014 under the terms of version 2 of the GNU General Public License as 00015 published by the Free Software Foundation. 00016 00017 This program is distributed in the hope that it would be useful, but 00018 WITHOUT ANY WARRANTY; without even the implied warranty of 00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 00021 Further, this software is distributed without any warranty that it is 00022 free of the rightful claim of any third person regarding infringement 00023 or the like. Any license provided herein, whether implied or 00024 otherwise, applies only to this software file. Patent licenses, if 00025 any, provided herein do not apply to combinations of this program with 00026 other software, or any other product whatsoever. 00027 00028 You should have received a copy of the GNU General Public License along 00029 with this program; if not, write the Free Software Foundation, Inc., 59 00030 Temple Place - Suite 330, Boston MA 02111-1307, USA. 00031 00032 Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00033 Mountain View, CA 94043, or: 00034 00035 http://www.sgi.com 00036 00037 For further information regarding this notice, see: 00038 00039 http://oss.sgi.com/projects/GenInfo/NoticeExplan 00040 00041 */ 00042 00043 00044 /* ==================================================================== 00045 * ==================================================================== 00046 * 00047 * Module: config_opt.h 00048 * $Revision: 1.1.1.1 $ 00049 * $Date: 2005/10/21 19:00:00 $ 00050 * $Author: marcel $ 00051 * $Source: /proj/osprey/CVS/open64/osprey1.0/common/com/config_opt.h,v $ 00052 * 00053 * Revision history: 00054 * 05-May-96 - Extracted from be/opt/opt_config.h. 00055 * 00056 * Description: 00057 * 00058 * Declare global flag variables for -OPT group options. 00059 * This file is included in common/com/config.c. 00060 * 00061 * Declarations of -OPT flags should be put here, instead of in 00062 * config.h. The intent is to allow updates of the -OPT group 00063 * without forcing recompilation of everything that includes config.h. 00064 * (However, the transfer of the flags' definitions here from config.h 00065 * is not yet complete, so most of the old ones still require 00066 * config.h.) 00067 * 00068 * ==================================================================== 00069 * WARNING: WHENEVER A NEW FLAG IS ADDED: 00070 * ### - Add the flag variable declaration to config_opt.h (here) . 00071 * ### - Add the flag variable definition to config_opt.cxx . 00072 * ### - Add the option to the group description in config_opt.cxx . 00073 * ==================================================================== 00074 * 00075 * ==================================================================== 00076 * ==================================================================== 00077 */ 00078 00079 #ifndef config_opt_INCLUDED 00080 #define config_opt_INCLUDED 00081 00082 #ifndef flags_INCLUDED 00083 #include "flags.h" 00084 #endif 00085 00086 #ifdef __cplusplus 00087 extern "C" { 00088 #endif 00089 00090 /* Incomplete types to prevent unnecessary inclusion: */ 00091 struct skiplist; 00092 00093 /********************************************************************* 00094 *** 00095 *** Flag variable declarations: 00096 *** 00097 ********************************************************************* 00098 */ 00099 00100 /***** Optimization Warning Messages *****/ 00101 extern BOOL Show_OPT_Warnings; /* Display OPT warning messages */ 00102 00103 /***** Aliasing control *****/ 00104 extern BOOL Alias_Pointer_Parms; /* Reference parms indep? */ 00105 extern BOOL Alias_Pointer_Types; /* Ptrs to distinct basic types indep? */ 00106 extern BOOL Alias_Not_In_Union; /* Ptrs point to non-union types */ 00107 extern BOOL Alias_Pointer_Strongly_Typed; /* Ptrs to distinct types indep? */ 00108 extern BOOL Alias_Pointer_Named_Data; /* No pointers to named data? */ 00109 extern BOOL Alias_Pointer_Restricted; /* *p and *q not aliased */ 00110 extern BOOL Alias_Pointer_Disjoint; /* **p and **q not aliased */ 00111 extern BOOL Alias_Pointer_Cray; /* Cray pointer semantics? */ 00112 extern BOOL Alias_Common_Scalar; /* Distinguish scalar from other array 00113 in a common block */ 00114 extern BOOL Alias_F90_Pointer_Unaliased; /* Are F90 pointers unaliased? */ 00115 00116 /***** Expression folding options *****/ 00117 extern BOOL Enable_Cfold_Float; /* FP constant folding? */ 00118 extern BOOL Enable_Cfold_Reassociate; /* Re-association allowed? */ 00119 extern BOOL Enable_Cfold_Intrinsics; /* Intrinsic constant folding? */ 00120 extern BOOL Cfold_Intrinsics_Set; /* ... option seen? */ 00121 extern BOOL CIS_Allowed; /* sin(x) and cos(x) => cis(x) ? */ 00122 extern BOOL Div_Split_Allowed; /* Change a/b --> a*1/b ? */ 00123 #ifdef KEY 00124 extern UINT32 Div_Exe_Counter; /* Change a/b --> a/N if b==N ? */ 00125 extern UINT32 Div_Exe_Ratio; /* Change a/b --> a/N if b has high ratio */ 00126 extern UINT32 Div_Exe_Candidates; /* The top entries that will be taken care. */ 00127 extern UINT32 Mpy_Exe_Counter; /* Change a*b to a if b==N or 0.0 if b == 0.0 */ 00128 extern UINT32 Mpy_Exe_Ratio; /* Change a*b to a if b==N or 0.0 if b == 0.0 */ 00129 #endif 00130 extern BOOL Fast_Exp_Allowed; /* Avoid exp() calls? */ 00131 extern BOOL Fast_IO_Allowed; /* Fast printf/scanf/printw */ 00132 extern BOOL Fast_Sqrt_Allowed; /* Change sqrt(x) --> x * rsqrt(x) ? */ 00133 extern BOOL Optimize_CVTL_Exp; /* Optimize expansion of CVTL operators */ 00134 extern BOOL Enable_CVT_Opt; /* Optimize expansion of CVT operators */ 00135 extern BOOL Force_IEEE_Comparisons; /* IEEE NaN comparisons? */ 00136 extern BOOL Inline_Intrinsics_Early; /* Inline intrinsics just after VHO */ 00137 extern BOOL Enable_extract_bits; /* Enable use of the extract/compose whirl ops */ 00138 extern BOOL Enable_compose_bits; /* Enable use of the extract/compose whirl ops */ 00139 00140 /***** Miscellaneous optimization options *****/ 00141 extern BOOL OPT_Pad_Common; /* Do internal common block padding? */ 00142 extern BOOL OPT_Reorg_Common; /* Do common block reorganization (split)? */ 00143 extern BOOL OPT_Reorg_Common_Set; /* ... option seen? */ 00144 extern BOOL OPT_Unroll_Analysis; /* Enable unroll limitations? */ 00145 extern BOOL OPT_Unroll_Analysis_Set; /* ... option seen? */ 00146 extern BOOL GCM_Speculative_Ptr_Deref; /* allow load speculation of a memory 00147 reference that differs by a small 00148 offset from some reference location*/ 00149 extern BOOL GCM_Speculative_Ptr_Deref_Set; /* ... option seen? */ 00150 extern BOOL Early_MP_Processing; /* Do mp lowerering before lno/preopt */ 00151 extern BOOL Implied_Do_Io_Opt; /* Do implied-do loop opt for I/O */ 00152 extern BOOL Cray_Ivdep; /* Use Cray meaning for Ivdep */ 00153 extern BOOL Liberal_Ivdep; /* Use liberal meaning for ivdep */ 00154 extern BOOL Inhibit_EH_opt; /* Don't remove calless EH regions */ 00155 extern BOOL OPT_recompute_addr_flags; /* recompute addr saved */ 00156 extern BOOL OPT_IPA_addr_analysis; /* enable the use of IPA addr analysis result */ 00157 extern BOOL Delay_U64_Lowering;/* Delay unsigned 64-bit lowering to after wopt*/ 00158 extern BOOL OPT_shared_memory; // assume use of shared memory 00159 00160 /***** Instrumentation related options *****/ 00161 extern INT32 Instrumentation_Phase_Num; 00162 extern INT32 Instrumentation_Type_Num; 00163 extern BOOL Instrumentation_Enabled; 00164 extern BOOL Instrumentation_Enabled_Before; 00165 extern UINT32 Instrumentation_Actions; 00166 extern BOOL Instrumentation_Unique_Output; 00167 extern INT32 Feedback_Phase_Num; 00168 extern OPTION_LIST* Feedback_Option; 00169 #ifdef KEY 00170 extern INT32 OPT_Cyg_Instrument; 00171 extern BOOL profile_arcs; 00172 extern BOOL Asm_Memory; 00173 extern BOOL Align_Unsafe; 00174 extern INT32 Enable_WN_Simp_Expr_Limit; 00175 extern BOOL OPT_Lower_To_Memlib; 00176 extern INT32 OPT_Threshold_To_Memlib; 00177 extern INT32 OPT_Enable_Lower_To_Memlib_Limit; 00178 extern BOOL OPT_Enable_Simp_Fold; 00179 00180 extern BOOL OPT_Fast_Math; 00181 extern BOOL OPT_Fast_Stdlib; 00182 extern BOOL OPT_MP_Barrier_Opt; 00183 extern BOOL OPT_Icall_Instr; 00184 extern BOOL OPT_Int_Value_Instr; 00185 extern BOOL OPT_FP_Value_Instr; 00186 extern BOOL OPT_Ffast_Math; 00187 extern BOOL OPT_Funsafe_Math_Optimizations; 00188 00189 extern BOOL OPT_Float_Via_Int; 00190 extern UINT32 OPT_Malloc_Alg; 00191 extern BOOL OPT_Malloc_Alg_Set; 00192 extern BOOL Early_Goto_Conversion; 00193 extern BOOL Early_Goto_Conversion_Set; 00194 extern INT32 OPT_Madd_Height; 00195 #endif 00196 #ifdef __cplusplus 00197 } 00198 #endif 00199 #endif /* config_opt_INCLUDED */
1.5.6