1 /* Common hooks for TILE-Gx. 2 Copyright (C) 2011-2015 Free Software Foundation, Inc. 3 Contributed by Walter Lee (walt@tilera.com) 4 5 This file is part of GCC. 6 7 GCC is free software; you can redistribute it and/or modify it 8 under the terms of the GNU General Public License as published 9 by the Free Software Foundation; either version 3, or (at your 10 option) any later version. 11 12 GCC is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with GCC; see the file COPYING3. If not see 19 <http://www.gnu.org/licenses/>. */ 20 21 #include "config.h" 22 #include "system.h" 23 #include "coretypes.h" 24 #include "diagnostic-core.h" 25 #include "tm.h" 26 #include "common/common-target.h" 27 #include "common/common-target-def.h" 28 #include "opts.h" 29 #include "flags.h" 30 31 static const struct default_options tilegx_option_optimization_table[] = { 32 {OPT_LEVELS_1_PLUS, OPT_fomit_frame_pointer, NULL, 1}, 33 /* Scheduling and bundling are super important for our architecture, so 34 enable them at -O1. */ 35 {OPT_LEVELS_1_PLUS, OPT_fschedule_insns, NULL, 1}, 36 {OPT_LEVELS_1_PLUS, OPT_fschedule_insns2, NULL, 1}, 37 {OPT_LEVELS_NONE, 0, NULL, 0} 38 }; 39 40 41 static void 42 tilegx_option_init_struct (struct gcc_options *opts) 43 { 44 opts->x_flag_asynchronous_unwind_tables = 1; 45 } 46 47 48 #undef TARGET_DEFAULT_TARGET_FLAGS 49 #define TARGET_DEFAULT_TARGET_FLAGS \ 50 (TARGET_DEFAULT \ 51 | TARGET_ENDIAN_DEFAULT) 52 53 #undef TARGET_OPTION_OPTIMIZATION_TABLE 54 #define TARGET_OPTION_OPTIMIZATION_TABLE tilegx_option_optimization_table 55 56 #undef TARGET_OPTION_INIT_STRUCT 57 #define TARGET_OPTION_INIT_STRUCT tilegx_option_init_struct 58 59 struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER; 60