Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
config_opt.h
Go to the documentation of this file.
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  *  05-May-96 - Extracted from be/opt/opt_config.h.
00042  *
00043  * Description:
00044  *
00045  * Declare global flag variables for -OPT group options.
00046  * This file is included in common/com/config.c.
00047  *
00048  * Declarations of -OPT flags should be put here, instead of in
00049  * config.h.  The intent is to allow updates of the -OPT group
00050  * without forcing recompilation of everything that includes config.h.
00051  * (However, the transfer of the flags' definitions here from config.h
00052  * is not yet complete, so most of the old ones still require
00053  * config.h.)
00054  *
00055  * ====================================================================
00056  * WARNING: WHENEVER A NEW FLAG IS ADDED:
00057  * ###  - Add the flag variable declaration to config_opt.h (here) .
00058  * ###  - Add the flag variable definition to config_opt.cxx .
00059  * ###  - Add the option to the group description in config_opt.cxx .
00060  * ====================================================================
00061  *
00062  * ====================================================================
00063  * ====================================================================
00064  */
00065 
00066 #ifndef config_opt_INCLUDED
00067 #define config_opt_INCLUDED
00068 
00069 #ifndef flags_INCLUDED
00070 #include "flags.h"
00071 #endif
00072 
00073 #ifdef __cplusplus
00074 extern "C" {
00075 #endif
00076 
00077 /* Incomplete types to prevent unnecessary inclusion: */
00078 struct skiplist;
00079 
00080 /*********************************************************************
00081  ***
00082  *** Flag variable declarations:
00083  ***
00084  *********************************************************************
00085  */
00086 
00087 /***** Optimization Warning Messages *****/
00088 extern BOOL Show_OPT_Warnings;          /* Display OPT warning messages */
00089 
00090 /***** Aliasing control *****/
00091 extern BOOL Alias_Pointer_Parms;        /* Reference parms indep? */
00092 extern BOOL Alias_Pointer_Types;        /* Ptrs to distinct basic types indep? */
00093 extern BOOL Alias_Not_In_Union; /* Ptrs point to non-union types */
00094 extern BOOL Alias_Pointer_Strongly_Typed; /* Ptrs to distinct types indep? */
00095 extern BOOL Alias_Pointer_Named_Data;   /* No pointers to named data? */
00096 extern BOOL Alias_Pointer_Restricted;   /* *p and *q not aliased */
00097 extern BOOL Alias_Pointer_Disjoint;     /* **p and **q not aliased */
00098 extern BOOL Alias_Pointer_Cray;         /* Cray pointer semantics? */
00099 extern BOOL Alias_Common_Scalar;        /* Distinguish scalar from other array
00100                                            in a common block */
00101 extern BOOL  Alias_F90_Pointer_Unaliased;  /* Are F90 pointers unaliased? */
00102 
00103 /***** Expression folding options *****/
00104 extern BOOL Enable_Cfold_Float;         /* FP constant folding? */
00105 extern BOOL Enable_Cfold_Reassociate;   /* Re-association allowed? */
00106 extern BOOL Enable_Cfold_Intrinsics;    /* Intrinsic constant folding? */
00107 extern BOOL Cfold_Intrinsics_Set;       /* ... option seen? */
00108 extern BOOL CIS_Allowed;        /* sin(x) and cos(x) => cis(x) ? */
00109 extern BOOL Div_Split_Allowed;  /* Change a/b --> a*1/b ? */
00110 extern BOOL Fast_Exp_Allowed;   /* Avoid exp() calls? */
00111 extern BOOL Fast_IO_Allowed;    /* Fast printf/scanf/printw */
00112 extern BOOL Fast_Sqrt_Allowed;  /* Change sqrt(x) --> x * rsqrt(x) ? */
00113 extern BOOL Optimize_CVTL_Exp;  /* Optimize expansion of CVTL operators */
00114 extern BOOL Enable_CVT_Opt;     /* Optimize expansion of CVT operators */
00115 extern BOOL Force_IEEE_Comparisons;     /* IEEE NaN comparisons? */
00116 extern BOOL Inline_Intrinsics_Early;    /* Inline intrinsics just after VHO */
00117 extern BOOL Enable_extract_compose;     /* Enable use of the extract/compose whirl ops */
00118 
00119 /***** Miscellaneous optimization options *****/
00120 extern BOOL OPT_Pad_Common;     /* Do internal common block padding? */
00121 extern BOOL OPT_Reorg_Common;   /* Do common block reorganization (split)? */
00122 extern BOOL OPT_Reorg_Common_Set;       /* ... option seen? */
00123 extern BOOL OPT_Unroll_Analysis;        /* Enable unroll limitations? */
00124 extern BOOL OPT_Unroll_Analysis_Set;    /* ... option seen? */
00125 extern BOOL GCM_Speculative_Ptr_Deref;   /* allow load speculation of a memory
00126                                           reference that differs by a small
00127                                           offset from some reference location*/
00128 extern BOOL GCM_Speculative_Ptr_Deref_Set;   /* ... option seen? */
00129 extern BOOL Early_MP_Processing; /* Do mp lowerering before lno/preopt */
00130 extern BOOL Implied_Do_Io_Opt;  /* Do implied-do loop opt for I/O */
00131 extern BOOL Cray_Ivdep;         /* Use Cray meaning for Ivdep */
00132 extern BOOL Liberal_Ivdep;      /* Use liberal meaning for ivdep */
00133 extern BOOL Inhibit_EH_opt;     /* Don't remove calless EH regions */
00134 extern BOOL OPT_recompute_addr_flags; /* recompute addr saved */
00135 extern BOOL OPT_IPA_addr_analysis; /* enable the use of IPA addr analysis result */ 
00136 extern BOOL Delay_U64_Lowering;/* Delay unsigned 64-bit lowering to after wopt*/
00137 extern BOOL OPT_shared_memory;  // assume use of shared memory
00138 
00139 /***** Instrumentation related options *****/
00140 extern INT32 Instrumentation_Phase_Num;
00141 extern BOOL Instrumentation_Enabled;
00142 extern UINT32 Instrumentation_Actions;
00143 extern BOOL Instrumentation_Unique_Output;
00144 extern INT32 Feedback_Phase_Num;
00145 extern OPTION_LIST* Feedback_Option;
00146 #ifdef __cplusplus
00147 }
00148 #endif
00149 #endif /* config_opt_INCLUDED */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines