xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/common/config/tilegx/tilegx-common.c (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1 /* Common hooks for TILE-Gx.
2    Copyright (C) 2011-2020 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   /* 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
tilegx_option_init_struct(struct gcc_options * opts)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