111
|
1 /* Target hook definitions for common hooks.
|
131
|
2 Copyright (C) 2011-2018 Free Software Foundation, Inc.
|
111
|
3
|
|
4 This program is free software; you can redistribute it and/or modify it
|
|
5 under the terms of the GNU General Public License as published by the
|
|
6 Free Software Foundation; either version 3, or (at your option) any
|
|
7 later version.
|
|
8
|
|
9 This program is distributed in the hope that it will be useful,
|
|
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12 GNU General Public License for more details.
|
|
13
|
|
14 You should have received a copy of the GNU General Public License
|
|
15 along with this program; see the file COPYING3. If not see
|
|
16 <http://www.gnu.org/licenses/>. */
|
|
17
|
|
18 /* See target-hooks-macros.h for details of macros that should be
|
|
19 provided by the including file, and how to use them here. */
|
|
20 #include "target-hooks-macros.h"
|
|
21
|
|
22 #undef HOOK_TYPE
|
|
23 #define HOOK_TYPE "Common Target Hook"
|
|
24
|
|
25 HOOK_VECTOR (TARGETM_COMMON_INITIALIZER, gcc_targetm_common)
|
|
26
|
|
27 #undef HOOK_PREFIX
|
|
28 #define HOOK_PREFIX "TARGET_"
|
|
29
|
|
30 /* Handle target switch DECODED for options structures OPTS and
|
|
31 OPTS_SET, at location LOC. Return true if the switch was valid. */
|
|
32 DEFHOOK
|
|
33 (handle_option,
|
|
34 "",
|
|
35 bool, (struct gcc_options *opts, struct gcc_options *opts_set,
|
|
36 const struct cl_decoded_option *decoded,
|
|
37 location_t loc),
|
|
38 default_target_handle_option)
|
|
39
|
|
40 DEFHOOK
|
|
41 (option_init_struct,
|
|
42 "Set target-dependent initial values of fields in @var{opts}.",
|
|
43 void, (struct gcc_options *opts),
|
|
44 hook_void_gcc_optionsp)
|
|
45
|
|
46 /* Set default optimizations for the target. */
|
|
47 DEFHOOKPOD
|
|
48 (option_optimization_table,
|
|
49 "",
|
|
50 const struct default_options *, empty_optimization_table)
|
|
51
|
|
52 DEFHOOK
|
|
53 (option_default_params,
|
|
54 "Set target-dependent default values for @option{--param} settings, using\
|
|
55 calls to @code{set_default_param_value}.",
|
|
56 void, (void),
|
|
57 hook_void_void)
|
|
58
|
131
|
59 DEFHOOK
|
|
60 (option_validate_param,
|
|
61 "Validate target-dependent value for @option{--param} settings, using\
|
|
62 calls to @code{set_param_value}.",
|
|
63 bool, (int, int),
|
|
64 default_option_validate_param)
|
|
65
|
111
|
66 /* The initial value of target_flags. */
|
|
67 DEFHOOKPOD
|
|
68 (default_target_flags,
|
|
69 "",
|
|
70 int, 0)
|
|
71
|
|
72 /* Determine the type of unwind info to emit for exceptions. */
|
|
73 DEFHOOK
|
|
74 (except_unwind_info,
|
|
75 "",
|
|
76 enum unwind_info_type, (struct gcc_options *opts),
|
|
77 default_except_unwind_info)
|
|
78
|
|
79 DEFHOOK
|
|
80 (supports_split_stack,
|
|
81 "Whether this target supports splitting the stack when the options\
|
|
82 described in @var{opts} have been passed. This is called\
|
|
83 after options have been parsed, so the target may reject splitting\
|
|
84 the stack in some configurations. The default version of this hook\
|
|
85 returns false. If @var{report} is true, this function may issue a warning\
|
|
86 or error; if @var{report} is false, it must simply return a value",
|
|
87 bool, (bool report, struct gcc_options *opts),
|
|
88 hook_bool_bool_gcc_optionsp_false)
|
|
89
|
131
|
90 DEFHOOK
|
|
91 (get_valid_option_values,
|
|
92 "The hook is used for options that have a non-trivial list of\
|
|
93 possible option values. OPTION_CODE is option code of opt_code\
|
|
94 enum type. PREFIX is used for bash completion and allows an implementation\
|
|
95 to return more specific completion based on the prefix. All string values\
|
|
96 should be allocated from heap memory and consumers should release them. \
|
|
97 The result will be pruned to cases with PREFIX if not NULL.",
|
|
98 vec<const char *>, (int option_code, const char *prefix),
|
|
99 default_get_valid_option_values)
|
|
100
|
111
|
101 /* Leave the boolean fields at the end. */
|
|
102
|
|
103 /* True if unwinding tables should be generated by default. */
|
|
104 DEFHOOKPOD
|
|
105 (unwind_tables_default,
|
|
106 "",
|
|
107 bool, false)
|
|
108
|
|
109 /* True if arbitrary sections are supported. */
|
|
110 DEFHOOKPOD
|
|
111 (have_named_sections,
|
|
112 "",
|
|
113 bool, true)
|
|
114
|
|
115 DEFHOOKPOD
|
|
116 (always_strip_dotdot,
|
|
117 "True if @file{..} components should always be removed from directory names\
|
|
118 computed relative to GCC's internal directories, false (default) if such\
|
|
119 components should be preserved and directory names containing them passed\
|
|
120 to other tools such as the linker.",
|
|
121 bool, false)
|
|
122
|
|
123 HOOK_VECTOR_END (C90_EMPTY_HACK)
|
|
124
|
|
125 #undef HOOK_PREFIX
|