Home | History | Annotate | Line # | Download | only in tilegx
      1 /* Common hooks for TILE-Gx.
      2    Copyright (C) 2011-2022 Free Software Foundation, Inc.
      3    Contributed by Walter Lee (walt (at) 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   /* Scheduling and bundling are super important for our architecture, so
     33      enable them at -O1. */
     34   {OPT_LEVELS_1_PLUS, OPT_fschedule_insns, NULL, 1},
     35   {OPT_LEVELS_1_PLUS, OPT_fschedule_insns2, NULL, 1},
     36   {OPT_LEVELS_NONE, 0, NULL, 0}
     37 };
     38 
     39 
     40 static void
     41 tilegx_option_init_struct (struct gcc_options *opts)
     42 {
     43   opts->x_flag_asynchronous_unwind_tables = 1;
     44 }
     45 
     46 
     47 #undef  TARGET_DEFAULT_TARGET_FLAGS
     48 #define TARGET_DEFAULT_TARGET_FLAGS \
     49   (TARGET_DEFAULT		    \
     50    | TARGET_ENDIAN_DEFAULT)
     51 
     52 #undef  TARGET_OPTION_OPTIMIZATION_TABLE
     53 #define TARGET_OPTION_OPTIMIZATION_TABLE tilegx_option_optimization_table
     54 
     55 #undef  TARGET_OPTION_INIT_STRUCT
     56 #define TARGET_OPTION_INIT_STRUCT tilegx_option_init_struct
     57 
     58 struct gcc_targetm_common targetm_common = TARGETM_COMMON_INITIALIZER;
     59