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 * 00042 * Description: 00043 * 00044 * Configure the -VHO group (included in config.c). 00045 * 00046 * ==================================================================== 00047 * ==================================================================== 00048 */ 00049 00050 /* This file is included in config.c, so it doesn't need its own set of 00051 * standard includes -- only the following: 00052 */ 00053 #include "config_vho.h" 00054 00055 /* ==================================================================== 00056 * 00057 * Global flag variables which reflect the -VHO group options. 00058 * 00059 * ==================================================================== 00060 */ 00061 00062 BOOL VHO_Force_Lowering = FALSE; 00063 BOOL VHO_Struct_Opt = TRUE; 00064 BOOL VHO_Combine_Loads = FALSE; 00065 BOOL VHO_Recycle_Pregs = FALSE; 00066 INT32 VHO_Switch_Density = 12; 00067 INT32 VHO_Switch_If_Else_Limit = 6; 00068 INT32 VHO_Switch_Compgoto_Limit = 3; 00069 BOOL VHO_Switch_Opt = FALSE; 00070 BOOL VHO_Cselect_Opt = FALSE; 00071 BOOL VHO_Iload_Opt = FALSE; 00072 BOOL VHO_Istore_Opt = FALSE; 00073 BOOL VHO_Call_Opt = FALSE; 00074 BOOL VHO_Check_Tree = FALSE; 00075 BOOL VHO_Single_Loop_Test = FALSE; 00076 BOOL VHO_Use_Do_While = FALSE; 00077 00078 /* List of global variables to turn on and off various optimizations */ 00079 00080 /* ==================================================================== 00081 * 00082 * Descriptor for the -VHO option group. 00083 * 00084 * ==================================================================== 00085 */ 00086 00087 /* scalar optimizer options: */ 00088 static OPTION_DESC Options_VHO[] = { 00089 { OVK_BOOL, OV_INTERNAL, FALSE, "lower", "lower", 00090 FALSE, 0, 0, &VHO_Force_Lowering, NULL }, 00091 { OVK_BOOL, OV_INTERNAL, FALSE, "struct_opt", "struct_opt", 00092 TRUE, 0, 0, &VHO_Struct_Opt, NULL }, 00093 { OVK_BOOL, OV_INTERNAL, FALSE, "recycle_pregs", "recycle_pregs", 00094 FALSE, 0, 0, &VHO_Recycle_Pregs, NULL }, 00095 { OVK_BOOL, OV_INTERNAL, FALSE, "combine_loads", "combine_loads", 00096 FALSE, 0, 0, &VHO_Combine_Loads, NULL }, 00097 { OVK_INT32, OV_INTERNAL, FALSE, "switch_if_else", "switch_if_else", 00098 6, 1, INT32_MAX, &VHO_Switch_If_Else_Limit, NULL }, 00099 { OVK_INT32, OV_INTERNAL, FALSE, "switch_density", "switch_density", 00100 12, 1, INT32_MAX, &VHO_Switch_Density, NULL }, 00101 { OVK_INT32, OV_INTERNAL, FALSE, "switch_compgoto", "switch_compgoto", 00102 3, 1, INT32_MAX, &VHO_Switch_Compgoto_Limit, NULL }, 00103 { OVK_BOOL, OV_INTERNAL, FALSE, "switch_opt", "switch", 00104 TRUE, 0, 0, &VHO_Switch_Opt, NULL }, 00105 { OVK_BOOL, OV_INTERNAL, FALSE, "cselect_opt", "cselect", 00106 TRUE, 0, 0, &VHO_Cselect_Opt, NULL }, 00107 { OVK_BOOL, OV_INTERNAL, FALSE, "iload_opt", "iload", 00108 TRUE, 0, 0, &VHO_Iload_Opt, NULL }, 00109 { OVK_BOOL, OV_INTERNAL, FALSE, "istore_opt", "istore", 00110 TRUE, 0, 0, &VHO_Istore_Opt, NULL }, 00111 { OVK_BOOL, OV_INTERNAL, FALSE, "call_opt", "call", 00112 TRUE, 0, 0, &VHO_Call_Opt, NULL }, 00113 { OVK_BOOL, OV_INTERNAL, FALSE, "check_tree", "check_tree", 00114 TRUE, 0, 0, &VHO_Check_Tree, NULL }, 00115 { OVK_BOOL, OV_INTERNAL, FALSE, "single_loop_test", "single_loop_test", 00116 TRUE, 0, 0, &VHO_Single_Loop_Test, NULL }, 00117 { OVK_BOOL, OV_INTERNAL, FALSE, "use_do_while", "use_do_while", 00118 TRUE, 0, 0, &VHO_Use_Do_While, NULL }, 00119 { OVK_COUNT } /* List terminator -- must be last */ 00120 };