]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/hooks.c
[multiple changes]
[thirdparty/gcc.git] / gcc / hooks.c
CommitLineData
e4ec2cac 1/* General-purpose hooks.
bc7ffd06 2 Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
e4ec2cac
AO
3
4This program is free software; you can redistribute it and/or modify it
5under the terms of the GNU General Public License as published by the
6Free Software Foundation; either version 2, or (at your option) any
7later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program; if not, write to the Free Software
366ccddb 16Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
e4ec2cac
AO
17
18 In other words, you are welcome to use, share and improve this program.
19 You are forbidden to forbid anyone else to use, share and improve
20 what you give them. Help stamp out software-hoarding! */
21
22/* This file contains generic hooks that can be used as defaults for
23 target or language-dependent hook initializers. */
24
25#include "config.h"
26#include "system.h"
4977bab6
ZW
27#include "coretypes.h"
28#include "tm.h"
e4ec2cac
AO
29#include "hooks.h"
30
e5f3b786
NB
31/* Generic hook that does absolutely zappo. */
32void
1d088dee 33hook_void_void (void)
e5f3b786
NB
34{
35}
36
e4ec2cac
AO
37/* Generic hook that takes no arguments and returns false. */
38bool
1d088dee 39hook_bool_void_false (void)
ae46c4e0
RH
40{
41 return false;
42}
fb49053f 43
af287697
MM
44/* Generic hook that takes no arguments and returns true. */
45bool
46hook_bool_void_true (void)
47{
48 return true;
49}
50
8c27b7d4 51/* Generic hook that takes no arguments and returns NO_REGS. */
a3424f5c
RH
52int
53hook_int_void_no_regs (void)
fe3ad572
SC
54{
55 return NO_REGS;
56}
57
58/* Generic hook that takes (bool) and returns false. */
59bool
60hook_bool_bool_false (bool a ATTRIBUTE_UNUSED)
61{
62 return false;
63}
64
f676971a
EC
65/* Generic hook that takes (enum machine_mode) and returns false. */
66bool
67hook_bool_mode_false (enum machine_mode mode ATTRIBUTE_UNUSED)
68{
69 return false;
70}
71
aacd3885
RS
72/* Generic hook that takes (enum machine_mode, rtx) and returns false. */
73bool
74hook_bool_mode_rtx_false (enum machine_mode mode ATTRIBUTE_UNUSED,
75 rtx value ATTRIBUTE_UNUSED)
76{
77 return false;
78}
79
1d3dbd99
RS
80/* Generic hook that takes (enum machine_mode, rtx) and returns true. */
81bool
82hook_bool_mode_rtx_true (enum machine_mode mode ATTRIBUTE_UNUSED,
83 rtx value ATTRIBUTE_UNUSED)
84{
85 return true;
86}
87
5eb99654
KG
88/* Generic hook that takes (FILE *, const char *) and does nothing. */
89void
1d088dee 90hook_void_FILEptr_constcharptr (FILE *a ATTRIBUTE_UNUSED, const char *b ATTRIBUTE_UNUSED)
5eb99654
KG
91{
92}
3961e8fe
RH
93
94/* Used for the TARGET_ASM_CAN_OUTPUT_MI_THUNK hook. */
95bool
1d088dee
AJ
96hook_bool_tree_hwi_hwi_tree_false (tree a ATTRIBUTE_UNUSED,
97 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
98 HOST_WIDE_INT c ATTRIBUTE_UNUSED,
99 tree d ATTRIBUTE_UNUSED)
3961e8fe
RH
100{
101 return false;
102}
103
104bool
1d088dee
AJ
105hook_bool_tree_hwi_hwi_tree_true (tree a ATTRIBUTE_UNUSED,
106 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
107 HOST_WIDE_INT c ATTRIBUTE_UNUSED,
108 tree d ATTRIBUTE_UNUSED)
3961e8fe
RH
109{
110 return true;
111}
112
cb66e385
NB
113bool
114hook_bool_constcharptr_size_t_false (const char *a ATTRIBUTE_UNUSED,
115 size_t b ATTRIBUTE_UNUSED)
116{
117 return false;
118}
119
75685792
RS
120bool
121hook_bool_size_t_constcharptr_int_true (size_t a ATTRIBUTE_UNUSED,
122 const char *b ATTRIBUTE_UNUSED,
123 int c ATTRIBUTE_UNUSED)
124{
125 return true;
126}
127
3961e8fe 128bool
1d088dee
AJ
129default_can_output_mi_thunk_no_vcall (tree a ATTRIBUTE_UNUSED,
130 HOST_WIDE_INT b ATTRIBUTE_UNUSED,
131 HOST_WIDE_INT c,
132 tree d ATTRIBUTE_UNUSED)
3961e8fe
RH
133{
134 return c == 0;
135}
7b1bd3c5 136
a1c496cb
EC
137int
138hook_int_tree_0 (tree a ATTRIBUTE_UNUSED)
139{
140 return 0;
141}
142
7b1bd3c5
RH
143/* ??? Used for comp_type_attributes, which ought to return bool. */
144int
1d088dee 145hook_int_tree_tree_1 (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
7b1bd3c5
RH
146{
147 return 1;
148}
149
dcefdf67 150int
1d088dee 151hook_int_rtx_0 (rtx a ATTRIBUTE_UNUSED)
dcefdf67
RH
152{
153 return 0;
154}
155
7fb26bb0
NB
156int
157hook_int_size_t_constcharptr_int_0 (size_t a ATTRIBUTE_UNUSED,
158 const char *b ATTRIBUTE_UNUSED,
159 int c ATTRIBUTE_UNUSED)
160{
161 return 0;
162}
163
b86f6cd9
NB
164unsigned int
165hook_uint_uint_constcharptrptr_0 (unsigned int a ATTRIBUTE_UNUSED,
166 const char **b ATTRIBUTE_UNUSED)
167{
168 return 0;
169}
170
7b1bd3c5 171void
1d088dee 172hook_void_tree (tree a ATTRIBUTE_UNUSED)
7b1bd3c5
RH
173{
174}
175
94d1613b 176void
8e3e233b 177hook_void_constcharptr (const char *a ATTRIBUTE_UNUSED)
94d1613b
MS
178{
179}
180
7b1bd3c5 181void
1d088dee 182hook_void_tree_treeptr (tree a ATTRIBUTE_UNUSED, tree *b ATTRIBUTE_UNUSED)
7b1bd3c5
RH
183{
184}
185
186bool
1d088dee 187hook_bool_tree_false (tree a ATTRIBUTE_UNUSED)
7b1bd3c5
RH
188{
189 return false;
190}
3a04ff64 191
c6e8c921
GK
192bool
193hook_bool_tree_true (tree a ATTRIBUTE_UNUSED)
194{
195 return true;
196}
197
4977bab6 198bool
1d088dee 199hook_bool_tree_tree_false (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
4977bab6
ZW
200{
201 return false;
202}
203
953ff289
DN
204bool
205hook_bool_tree_bool_false (tree a ATTRIBUTE_UNUSED, bool b ATTRIBUTE_UNUSED)
206{
207 return false;
208}
209
3a04ff64 210bool
1d088dee 211hook_bool_rtx_false (rtx a ATTRIBUTE_UNUSED)
3a04ff64
RH
212{
213 return false;
214}
3c50106f 215
e129d93a
ILT
216bool
217hook_bool_uintp_uintp_false (unsigned int *a ATTRIBUTE_UNUSED,
218 unsigned int *b ATTRIBUTE_UNUSED)
219{
220 return false;
221}
222
3c50106f 223bool
1d088dee
AJ
224hook_bool_rtx_int_int_intp_false (rtx a ATTRIBUTE_UNUSED,
225 int b ATTRIBUTE_UNUSED,
226 int c ATTRIBUTE_UNUSED,
227 int *d ATTRIBUTE_UNUSED)
3c50106f
RH
228{
229 return false;
230}
231
7daebb7a
RS
232/* Generic hook that takes an rtx and returns it. */
233rtx
1d088dee 234hook_rtx_rtx_identity (rtx x)
7daebb7a
RS
235{
236 return x;
237}
238
96714395
AH
239/* Generic hook that takes an rtx and returns NULL_RTX. */
240rtx
1d088dee 241hook_rtx_rtx_null (rtx x ATTRIBUTE_UNUSED)
96714395 242{
c6e8c921
GK
243 return NULL;
244}
245
246/* Generic hook that takes a tree and an int and returns NULL_RTX. */
247rtx
248hook_rtx_tree_int_null (tree a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)
249{
250 return NULL;
96714395 251}
18c81520 252
61158923 253/* Generic hook that takes three trees and returns the last one as is. */
67dfe110 254tree
61158923
HPN
255hook_tree_tree_tree_tree_3rd_identity (tree a ATTRIBUTE_UNUSED,
256 tree b ATTRIBUTE_UNUSED, tree c)
67dfe110 257{
61158923 258 return c;
67dfe110 259}
f18eca82
ZL
260
261/* Generic hook that takes a tree and returns a NULL string. */
262const char *
263hook_constcharptr_tree_null (tree t ATTRIBUTE_UNUSED)
264{
265 return NULL;
266}
55e74277
PB
267
268tree
a05a80fc
KH
269hook_tree_tree_tree_bool_null (tree t0 ATTRIBUTE_UNUSED, tree t1 ATTRIBUTE_UNUSED,
270 bool ignore ATTRIBUTE_UNUSED)
55e74277
PB
271{
272 return NULL;
273}
e7e64a25 274
953ff289
DN
275tree
276hook_tree_tree_tree_null (tree t0 ATTRIBUTE_UNUSED, tree t1 ATTRIBUTE_UNUSED)
277{
278 return NULL;
279}
280
e7e64a25
AS
281/* Generic hook that takes a rtx and returns a NULL string. */
282const char *
283hook_constcharptr_rtx_null (rtx r ATTRIBUTE_UNUSED)
284{
285 return NULL;
286}
4de67c26
JM
287
288const char *
289hook_constcharptr_tree_tree_null (tree t0 ATTRIBUTE_UNUSED,
290 tree t1 ATTRIBUTE_UNUSED)
291{
292 return NULL;
293}
294
295const char *
296hook_constcharptr_int_tree_null (int i ATTRIBUTE_UNUSED,
297 tree t0 ATTRIBUTE_UNUSED)
298{
299 return NULL;
300}
301
302const char *
303hook_constcharptr_int_tree_tree_null (int i ATTRIBUTE_UNUSED,
304 tree t0 ATTRIBUTE_UNUSED,
305 tree t1 ATTRIBUTE_UNUSED)
306{
307 return NULL;
308}