xref: /dflybsd-src/contrib/gcc-4.7/gcc/hooks.c (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino /* General-purpose hooks.
2*e4b17023SJohn Marino    Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
3*e4b17023SJohn Marino    Free Software Foundation, Inc.
4*e4b17023SJohn Marino 
5*e4b17023SJohn Marino    This program is free software; you can redistribute it and/or modify it
6*e4b17023SJohn Marino    under the terms of the GNU General Public License as published by the
7*e4b17023SJohn Marino    Free Software Foundation; either version 3, or (at your option) any
8*e4b17023SJohn Marino    later version.
9*e4b17023SJohn Marino 
10*e4b17023SJohn Marino    This program is distributed in the hope that it will be useful,
11*e4b17023SJohn Marino    but WITHOUT ANY WARRANTY; without even the implied warranty of
12*e4b17023SJohn Marino    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*e4b17023SJohn Marino    GNU General Public License for more details.
14*e4b17023SJohn Marino 
15*e4b17023SJohn Marino    You should have received a copy of the GNU General Public License
16*e4b17023SJohn Marino    along with this program; see the file COPYING3.  If not see
17*e4b17023SJohn Marino    <http://www.gnu.org/licenses/>.
18*e4b17023SJohn Marino 
19*e4b17023SJohn Marino    In other words, you are welcome to use, share and improve this program.
20*e4b17023SJohn Marino    You are forbidden to forbid anyone else to use, share and improve
21*e4b17023SJohn Marino    what you give them.   Help stamp out software-hoarding!  */
22*e4b17023SJohn Marino 
23*e4b17023SJohn Marino /* This file contains generic hooks that can be used as defaults for
24*e4b17023SJohn Marino    target or language-dependent hook initializers.  */
25*e4b17023SJohn Marino 
26*e4b17023SJohn Marino #include "config.h"
27*e4b17023SJohn Marino #include "system.h"
28*e4b17023SJohn Marino #include "coretypes.h"
29*e4b17023SJohn Marino #include "tm.h"
30*e4b17023SJohn Marino #include "hooks.h"
31*e4b17023SJohn Marino 
32*e4b17023SJohn Marino /* Generic hook that does absolutely zappo.  */
33*e4b17023SJohn Marino void
hook_void_void(void)34*e4b17023SJohn Marino hook_void_void (void)
35*e4b17023SJohn Marino {
36*e4b17023SJohn Marino }
37*e4b17023SJohn Marino 
38*e4b17023SJohn Marino /* Generic hook that takes no arguments and returns false.  */
39*e4b17023SJohn Marino bool
hook_bool_void_false(void)40*e4b17023SJohn Marino hook_bool_void_false (void)
41*e4b17023SJohn Marino {
42*e4b17023SJohn Marino   return false;
43*e4b17023SJohn Marino }
44*e4b17023SJohn Marino 
45*e4b17023SJohn Marino /* Generic hook that takes no arguments and returns true.  */
46*e4b17023SJohn Marino bool
hook_bool_void_true(void)47*e4b17023SJohn Marino hook_bool_void_true (void)
48*e4b17023SJohn Marino {
49*e4b17023SJohn Marino   return true;
50*e4b17023SJohn Marino }
51*e4b17023SJohn Marino 
52*e4b17023SJohn Marino /* Generic hook that takes (bool) and returns false.  */
53*e4b17023SJohn Marino bool
hook_bool_bool_false(bool a ATTRIBUTE_UNUSED)54*e4b17023SJohn Marino hook_bool_bool_false (bool a ATTRIBUTE_UNUSED)
55*e4b17023SJohn Marino {
56*e4b17023SJohn Marino   return false;
57*e4b17023SJohn Marino }
58*e4b17023SJohn Marino 
59*e4b17023SJohn Marino /* Generic hook that takes (bool, struct gcc_options *) and returns false.  */
60*e4b17023SJohn Marino bool
hook_bool_bool_gcc_optionsp_false(bool a ATTRIBUTE_UNUSED,struct gcc_options * opts ATTRIBUTE_UNUSED)61*e4b17023SJohn Marino hook_bool_bool_gcc_optionsp_false (bool a ATTRIBUTE_UNUSED,
62*e4b17023SJohn Marino 				   struct gcc_options *opts ATTRIBUTE_UNUSED)
63*e4b17023SJohn Marino {
64*e4b17023SJohn Marino   return false;
65*e4b17023SJohn Marino }
66*e4b17023SJohn Marino 
67*e4b17023SJohn Marino /* Generic hook that takes const int, const int) and returns true.  */
hook_bool_const_int_const_int_true(const int a ATTRIBUTE_UNUSED,const int b ATTRIBUTE_UNUSED)68*e4b17023SJohn Marino bool hook_bool_const_int_const_int_true (const int a ATTRIBUTE_UNUSED,
69*e4b17023SJohn Marino                                          const int b ATTRIBUTE_UNUSED)
70*e4b17023SJohn Marino {
71*e4b17023SJohn Marino   return true;
72*e4b17023SJohn Marino }
73*e4b17023SJohn Marino 
74*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode) and returns false.  */
75*e4b17023SJohn Marino bool
hook_bool_mode_false(enum machine_mode mode ATTRIBUTE_UNUSED)76*e4b17023SJohn Marino hook_bool_mode_false (enum machine_mode mode ATTRIBUTE_UNUSED)
77*e4b17023SJohn Marino {
78*e4b17023SJohn Marino   return false;
79*e4b17023SJohn Marino }
80*e4b17023SJohn Marino 
81*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode) and returns true.  */
82*e4b17023SJohn Marino bool
hook_bool_mode_true(enum machine_mode mode ATTRIBUTE_UNUSED)83*e4b17023SJohn Marino hook_bool_mode_true (enum machine_mode mode ATTRIBUTE_UNUSED)
84*e4b17023SJohn Marino {
85*e4b17023SJohn Marino   return true;
86*e4b17023SJohn Marino }
87*e4b17023SJohn Marino 
88*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode, const_rtx) and returns false.  */
89*e4b17023SJohn Marino bool
hook_bool_mode_const_rtx_false(enum machine_mode mode ATTRIBUTE_UNUSED,const_rtx value ATTRIBUTE_UNUSED)90*e4b17023SJohn Marino hook_bool_mode_const_rtx_false (enum machine_mode mode ATTRIBUTE_UNUSED,
91*e4b17023SJohn Marino 				const_rtx value ATTRIBUTE_UNUSED)
92*e4b17023SJohn Marino {
93*e4b17023SJohn Marino   return false;
94*e4b17023SJohn Marino }
95*e4b17023SJohn Marino 
96*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode, const_rtx) and returns true.  */
97*e4b17023SJohn Marino bool
hook_bool_mode_const_rtx_true(enum machine_mode mode ATTRIBUTE_UNUSED,const_rtx value ATTRIBUTE_UNUSED)98*e4b17023SJohn Marino hook_bool_mode_const_rtx_true (enum machine_mode mode ATTRIBUTE_UNUSED,
99*e4b17023SJohn Marino 			       const_rtx value ATTRIBUTE_UNUSED)
100*e4b17023SJohn Marino {
101*e4b17023SJohn Marino   return true;
102*e4b17023SJohn Marino }
103*e4b17023SJohn Marino 
104*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode, rtx) and returns false.  */
105*e4b17023SJohn Marino bool
hook_bool_mode_rtx_false(enum machine_mode mode ATTRIBUTE_UNUSED,rtx value ATTRIBUTE_UNUSED)106*e4b17023SJohn Marino hook_bool_mode_rtx_false (enum machine_mode mode ATTRIBUTE_UNUSED,
107*e4b17023SJohn Marino 			  rtx value ATTRIBUTE_UNUSED)
108*e4b17023SJohn Marino {
109*e4b17023SJohn Marino   return false;
110*e4b17023SJohn Marino }
111*e4b17023SJohn Marino 
112*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode, rtx) and returns true.  */
113*e4b17023SJohn Marino bool
hook_bool_mode_rtx_true(enum machine_mode mode ATTRIBUTE_UNUSED,rtx value ATTRIBUTE_UNUSED)114*e4b17023SJohn Marino hook_bool_mode_rtx_true (enum machine_mode mode ATTRIBUTE_UNUSED,
115*e4b17023SJohn Marino 			 rtx value ATTRIBUTE_UNUSED)
116*e4b17023SJohn Marino {
117*e4b17023SJohn Marino   return true;
118*e4b17023SJohn Marino }
119*e4b17023SJohn Marino 
120*e4b17023SJohn Marino /* Generic hook that takes (enum machine_mode, unsigned HOST_WIDE_INT)
121*e4b17023SJohn Marino    and returns false.  */
122*e4b17023SJohn Marino bool
hook_bool_mode_uhwi_false(enum machine_mode mode ATTRIBUTE_UNUSED,unsigned HOST_WIDE_INT value ATTRIBUTE_UNUSED)123*e4b17023SJohn Marino hook_bool_mode_uhwi_false (enum machine_mode mode ATTRIBUTE_UNUSED,
124*e4b17023SJohn Marino 			   unsigned HOST_WIDE_INT value ATTRIBUTE_UNUSED)
125*e4b17023SJohn Marino {
126*e4b17023SJohn Marino   return false;
127*e4b17023SJohn Marino }
128*e4b17023SJohn Marino 
129*e4b17023SJohn Marino /* Generic hook that takes (FILE *, const char *) and does nothing.  */
130*e4b17023SJohn Marino void
hook_void_FILEptr_constcharptr(FILE * a ATTRIBUTE_UNUSED,const char * b ATTRIBUTE_UNUSED)131*e4b17023SJohn Marino hook_void_FILEptr_constcharptr (FILE *a ATTRIBUTE_UNUSED, const char *b ATTRIBUTE_UNUSED)
132*e4b17023SJohn Marino {
133*e4b17023SJohn Marino }
134*e4b17023SJohn Marino 
135*e4b17023SJohn Marino /* Generic hook that takes (FILE *, rtx) and returns false.  */
136*e4b17023SJohn Marino bool
hook_bool_FILEptr_rtx_false(FILE * a ATTRIBUTE_UNUSED,rtx b ATTRIBUTE_UNUSED)137*e4b17023SJohn Marino hook_bool_FILEptr_rtx_false (FILE *a ATTRIBUTE_UNUSED,
138*e4b17023SJohn Marino 			     rtx b ATTRIBUTE_UNUSED)
139*e4b17023SJohn Marino {
140*e4b17023SJohn Marino   return false;
141*e4b17023SJohn Marino }
142*e4b17023SJohn Marino 
143*e4b17023SJohn Marino /* Used for the TARGET_ASM_CAN_OUTPUT_MI_THUNK hook.  */
144*e4b17023SJohn Marino bool
hook_bool_const_tree_hwi_hwi_const_tree_false(const_tree a ATTRIBUTE_UNUSED,HOST_WIDE_INT b ATTRIBUTE_UNUSED,HOST_WIDE_INT c ATTRIBUTE_UNUSED,const_tree d ATTRIBUTE_UNUSED)145*e4b17023SJohn Marino hook_bool_const_tree_hwi_hwi_const_tree_false (const_tree a ATTRIBUTE_UNUSED,
146*e4b17023SJohn Marino 					       HOST_WIDE_INT b ATTRIBUTE_UNUSED,
147*e4b17023SJohn Marino 					       HOST_WIDE_INT c ATTRIBUTE_UNUSED,
148*e4b17023SJohn Marino 					       const_tree d ATTRIBUTE_UNUSED)
149*e4b17023SJohn Marino {
150*e4b17023SJohn Marino   return false;
151*e4b17023SJohn Marino }
152*e4b17023SJohn Marino 
153*e4b17023SJohn Marino bool
hook_bool_const_tree_hwi_hwi_const_tree_true(const_tree a ATTRIBUTE_UNUSED,HOST_WIDE_INT b ATTRIBUTE_UNUSED,HOST_WIDE_INT c ATTRIBUTE_UNUSED,const_tree d ATTRIBUTE_UNUSED)154*e4b17023SJohn Marino hook_bool_const_tree_hwi_hwi_const_tree_true (const_tree a ATTRIBUTE_UNUSED,
155*e4b17023SJohn Marino 					      HOST_WIDE_INT b ATTRIBUTE_UNUSED,
156*e4b17023SJohn Marino 					      HOST_WIDE_INT c ATTRIBUTE_UNUSED,
157*e4b17023SJohn Marino 					      const_tree d ATTRIBUTE_UNUSED)
158*e4b17023SJohn Marino {
159*e4b17023SJohn Marino   return true;
160*e4b17023SJohn Marino }
161*e4b17023SJohn Marino 
162*e4b17023SJohn Marino bool
default_can_output_mi_thunk_no_vcall(const_tree a ATTRIBUTE_UNUSED,HOST_WIDE_INT b ATTRIBUTE_UNUSED,HOST_WIDE_INT c,const_tree d ATTRIBUTE_UNUSED)163*e4b17023SJohn Marino default_can_output_mi_thunk_no_vcall (const_tree a ATTRIBUTE_UNUSED,
164*e4b17023SJohn Marino 				      HOST_WIDE_INT b ATTRIBUTE_UNUSED,
165*e4b17023SJohn Marino 				      HOST_WIDE_INT c,
166*e4b17023SJohn Marino 				      const_tree d ATTRIBUTE_UNUSED)
167*e4b17023SJohn Marino {
168*e4b17023SJohn Marino   return c == 0;
169*e4b17023SJohn Marino }
170*e4b17023SJohn Marino 
171*e4b17023SJohn Marino int
hook_int_uint_mode_1(unsigned int a ATTRIBUTE_UNUSED,enum machine_mode b ATTRIBUTE_UNUSED)172*e4b17023SJohn Marino hook_int_uint_mode_1 (unsigned int a ATTRIBUTE_UNUSED,
173*e4b17023SJohn Marino 		      enum machine_mode b ATTRIBUTE_UNUSED)
174*e4b17023SJohn Marino {
175*e4b17023SJohn Marino   return 1;
176*e4b17023SJohn Marino }
177*e4b17023SJohn Marino 
178*e4b17023SJohn Marino int
hook_int_const_tree_0(const_tree a ATTRIBUTE_UNUSED)179*e4b17023SJohn Marino hook_int_const_tree_0 (const_tree a ATTRIBUTE_UNUSED)
180*e4b17023SJohn Marino {
181*e4b17023SJohn Marino   return 0;
182*e4b17023SJohn Marino }
183*e4b17023SJohn Marino 
184*e4b17023SJohn Marino /* ??? Used for comp_type_attributes, which ought to return bool.  */
185*e4b17023SJohn Marino int
hook_int_const_tree_const_tree_1(const_tree a ATTRIBUTE_UNUSED,const_tree b ATTRIBUTE_UNUSED)186*e4b17023SJohn Marino hook_int_const_tree_const_tree_1 (const_tree a ATTRIBUTE_UNUSED, const_tree b ATTRIBUTE_UNUSED)
187*e4b17023SJohn Marino {
188*e4b17023SJohn Marino   return 1;
189*e4b17023SJohn Marino }
190*e4b17023SJohn Marino 
191*e4b17023SJohn Marino int
hook_int_rtx_0(rtx a ATTRIBUTE_UNUSED)192*e4b17023SJohn Marino hook_int_rtx_0 (rtx a ATTRIBUTE_UNUSED)
193*e4b17023SJohn Marino {
194*e4b17023SJohn Marino   return 0;
195*e4b17023SJohn Marino }
196*e4b17023SJohn Marino 
197*e4b17023SJohn Marino int
hook_int_rtx_bool_0(rtx a ATTRIBUTE_UNUSED,bool b ATTRIBUTE_UNUSED)198*e4b17023SJohn Marino hook_int_rtx_bool_0 (rtx a ATTRIBUTE_UNUSED, bool b ATTRIBUTE_UNUSED)
199*e4b17023SJohn Marino {
200*e4b17023SJohn Marino   return 0;
201*e4b17023SJohn Marino }
202*e4b17023SJohn Marino 
203*e4b17023SJohn Marino unsigned int
hook_uint_void_0(void)204*e4b17023SJohn Marino hook_uint_void_0 (void)
205*e4b17023SJohn Marino {
206*e4b17023SJohn Marino   return 0;
207*e4b17023SJohn Marino }
208*e4b17023SJohn Marino 
209*e4b17023SJohn Marino void
hook_void_tree(tree a ATTRIBUTE_UNUSED)210*e4b17023SJohn Marino hook_void_tree (tree a ATTRIBUTE_UNUSED)
211*e4b17023SJohn Marino {
212*e4b17023SJohn Marino }
213*e4b17023SJohn Marino 
214*e4b17023SJohn Marino void
hook_void_constcharptr(const char * a ATTRIBUTE_UNUSED)215*e4b17023SJohn Marino hook_void_constcharptr (const char *a ATTRIBUTE_UNUSED)
216*e4b17023SJohn Marino {
217*e4b17023SJohn Marino }
218*e4b17023SJohn Marino 
219*e4b17023SJohn Marino void
hook_void_tree_treeptr(tree a ATTRIBUTE_UNUSED,tree * b ATTRIBUTE_UNUSED)220*e4b17023SJohn Marino hook_void_tree_treeptr (tree a ATTRIBUTE_UNUSED, tree *b ATTRIBUTE_UNUSED)
221*e4b17023SJohn Marino {
222*e4b17023SJohn Marino }
223*e4b17023SJohn Marino 
224*e4b17023SJohn Marino void
hook_void_int_int(int a ATTRIBUTE_UNUSED,int b ATTRIBUTE_UNUSED)225*e4b17023SJohn Marino hook_void_int_int (int a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)
226*e4b17023SJohn Marino {
227*e4b17023SJohn Marino }
228*e4b17023SJohn Marino 
229*e4b17023SJohn Marino bool
hook_bool_tree_false(tree a ATTRIBUTE_UNUSED)230*e4b17023SJohn Marino hook_bool_tree_false (tree a ATTRIBUTE_UNUSED)
231*e4b17023SJohn Marino {
232*e4b17023SJohn Marino   return false;
233*e4b17023SJohn Marino }
234*e4b17023SJohn Marino 
235*e4b17023SJohn Marino bool
hook_bool_const_tree_false(const_tree a ATTRIBUTE_UNUSED)236*e4b17023SJohn Marino hook_bool_const_tree_false (const_tree a ATTRIBUTE_UNUSED)
237*e4b17023SJohn Marino {
238*e4b17023SJohn Marino   return false;
239*e4b17023SJohn Marino }
240*e4b17023SJohn Marino 
241*e4b17023SJohn Marino bool
hook_bool_tree_true(tree a ATTRIBUTE_UNUSED)242*e4b17023SJohn Marino hook_bool_tree_true (tree a ATTRIBUTE_UNUSED)
243*e4b17023SJohn Marino {
244*e4b17023SJohn Marino   return true;
245*e4b17023SJohn Marino }
246*e4b17023SJohn Marino 
247*e4b17023SJohn Marino bool
hook_bool_const_tree_true(const_tree a ATTRIBUTE_UNUSED)248*e4b17023SJohn Marino hook_bool_const_tree_true (const_tree a ATTRIBUTE_UNUSED)
249*e4b17023SJohn Marino {
250*e4b17023SJohn Marino   return true;
251*e4b17023SJohn Marino }
252*e4b17023SJohn Marino 
253*e4b17023SJohn Marino bool
hook_bool_tree_tree_false(tree a ATTRIBUTE_UNUSED,tree b ATTRIBUTE_UNUSED)254*e4b17023SJohn Marino hook_bool_tree_tree_false (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
255*e4b17023SJohn Marino {
256*e4b17023SJohn Marino   return false;
257*e4b17023SJohn Marino }
258*e4b17023SJohn Marino 
259*e4b17023SJohn Marino bool
hook_bool_tree_tree_true(tree a ATTRIBUTE_UNUSED,tree b ATTRIBUTE_UNUSED)260*e4b17023SJohn Marino hook_bool_tree_tree_true (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
261*e4b17023SJohn Marino {
262*e4b17023SJohn Marino   return true;
263*e4b17023SJohn Marino }
264*e4b17023SJohn Marino 
265*e4b17023SJohn Marino bool
hook_bool_tree_bool_false(tree a ATTRIBUTE_UNUSED,bool b ATTRIBUTE_UNUSED)266*e4b17023SJohn Marino hook_bool_tree_bool_false (tree a ATTRIBUTE_UNUSED, bool b ATTRIBUTE_UNUSED)
267*e4b17023SJohn Marino {
268*e4b17023SJohn Marino   return false;
269*e4b17023SJohn Marino }
270*e4b17023SJohn Marino 
271*e4b17023SJohn Marino bool
hook_bool_rtx_false(rtx a ATTRIBUTE_UNUSED)272*e4b17023SJohn Marino hook_bool_rtx_false (rtx a ATTRIBUTE_UNUSED)
273*e4b17023SJohn Marino {
274*e4b17023SJohn Marino   return false;
275*e4b17023SJohn Marino }
276*e4b17023SJohn Marino 
277*e4b17023SJohn Marino bool
hook_bool_uintp_uintp_false(unsigned int * a ATTRIBUTE_UNUSED,unsigned int * b ATTRIBUTE_UNUSED)278*e4b17023SJohn Marino hook_bool_uintp_uintp_false (unsigned int *a ATTRIBUTE_UNUSED,
279*e4b17023SJohn Marino 			     unsigned int *b ATTRIBUTE_UNUSED)
280*e4b17023SJohn Marino {
281*e4b17023SJohn Marino   return false;
282*e4b17023SJohn Marino }
283*e4b17023SJohn Marino 
284*e4b17023SJohn Marino bool
hook_bool_rtx_int_int_int_intp_bool_false(rtx a ATTRIBUTE_UNUSED,int b ATTRIBUTE_UNUSED,int c ATTRIBUTE_UNUSED,int d ATTRIBUTE_UNUSED,int * e ATTRIBUTE_UNUSED,bool speed_p ATTRIBUTE_UNUSED)285*e4b17023SJohn Marino hook_bool_rtx_int_int_int_intp_bool_false (rtx a ATTRIBUTE_UNUSED,
286*e4b17023SJohn Marino 					   int b ATTRIBUTE_UNUSED,
287*e4b17023SJohn Marino 					   int c ATTRIBUTE_UNUSED,
288*e4b17023SJohn Marino 					   int d ATTRIBUTE_UNUSED,
289*e4b17023SJohn Marino 					   int *e ATTRIBUTE_UNUSED,
290*e4b17023SJohn Marino 					   bool speed_p ATTRIBUTE_UNUSED)
291*e4b17023SJohn Marino {
292*e4b17023SJohn Marino   return false;
293*e4b17023SJohn Marino }
294*e4b17023SJohn Marino 
295*e4b17023SJohn Marino /* Generic hook that takes an rtx and returns it.  */
296*e4b17023SJohn Marino rtx
hook_rtx_rtx_identity(rtx x)297*e4b17023SJohn Marino hook_rtx_rtx_identity (rtx x)
298*e4b17023SJohn Marino {
299*e4b17023SJohn Marino   return x;
300*e4b17023SJohn Marino }
301*e4b17023SJohn Marino 
302*e4b17023SJohn Marino /* Generic hook that takes an rtx and returns NULL_RTX.  */
303*e4b17023SJohn Marino rtx
hook_rtx_rtx_null(rtx x ATTRIBUTE_UNUSED)304*e4b17023SJohn Marino hook_rtx_rtx_null (rtx x ATTRIBUTE_UNUSED)
305*e4b17023SJohn Marino {
306*e4b17023SJohn Marino   return NULL;
307*e4b17023SJohn Marino }
308*e4b17023SJohn Marino 
309*e4b17023SJohn Marino /* Generic hook that takes a tree and an int and returns NULL_RTX.  */
310*e4b17023SJohn Marino rtx
hook_rtx_tree_int_null(tree a ATTRIBUTE_UNUSED,int b ATTRIBUTE_UNUSED)311*e4b17023SJohn Marino hook_rtx_tree_int_null (tree a ATTRIBUTE_UNUSED, int b ATTRIBUTE_UNUSED)
312*e4b17023SJohn Marino {
313*e4b17023SJohn Marino   return NULL;
314*e4b17023SJohn Marino }
315*e4b17023SJohn Marino 
316*e4b17023SJohn Marino /* Generic hook that takes three trees and returns the last one as is.  */
317*e4b17023SJohn Marino tree
hook_tree_tree_tree_tree_3rd_identity(tree a ATTRIBUTE_UNUSED,tree b ATTRIBUTE_UNUSED,tree c)318*e4b17023SJohn Marino hook_tree_tree_tree_tree_3rd_identity (tree a ATTRIBUTE_UNUSED,
319*e4b17023SJohn Marino 				       tree b ATTRIBUTE_UNUSED, tree c)
320*e4b17023SJohn Marino {
321*e4b17023SJohn Marino   return c;
322*e4b17023SJohn Marino }
323*e4b17023SJohn Marino 
324*e4b17023SJohn Marino /* Generic hook that takes a tree and returns a NULL string.  */
325*e4b17023SJohn Marino const char *
hook_constcharptr_const_tree_null(const_tree t ATTRIBUTE_UNUSED)326*e4b17023SJohn Marino hook_constcharptr_const_tree_null (const_tree t ATTRIBUTE_UNUSED)
327*e4b17023SJohn Marino {
328*e4b17023SJohn Marino   return NULL;
329*e4b17023SJohn Marino }
330*e4b17023SJohn Marino 
331*e4b17023SJohn Marino tree
hook_tree_tree_int_treep_bool_null(tree t0 ATTRIBUTE_UNUSED,int i ATTRIBUTE_UNUSED,tree * p ATTRIBUTE_UNUSED,bool ignore ATTRIBUTE_UNUSED)332*e4b17023SJohn Marino hook_tree_tree_int_treep_bool_null (tree t0 ATTRIBUTE_UNUSED,
333*e4b17023SJohn Marino 				    int i ATTRIBUTE_UNUSED,
334*e4b17023SJohn Marino 				    tree *p ATTRIBUTE_UNUSED,
335*e4b17023SJohn Marino 				    bool ignore ATTRIBUTE_UNUSED)
336*e4b17023SJohn Marino {
337*e4b17023SJohn Marino   return NULL;
338*e4b17023SJohn Marino }
339*e4b17023SJohn Marino 
340*e4b17023SJohn Marino tree
hook_tree_tree_tree_null(tree t0 ATTRIBUTE_UNUSED,tree t1 ATTRIBUTE_UNUSED)341*e4b17023SJohn Marino hook_tree_tree_tree_null (tree t0 ATTRIBUTE_UNUSED, tree t1 ATTRIBUTE_UNUSED)
342*e4b17023SJohn Marino {
343*e4b17023SJohn Marino   return NULL;
344*e4b17023SJohn Marino }
345*e4b17023SJohn Marino 
346*e4b17023SJohn Marino tree
hook_tree_tree_tree_tree_null(tree t0 ATTRIBUTE_UNUSED,tree t1 ATTRIBUTE_UNUSED,tree t2 ATTRIBUTE_UNUSED)347*e4b17023SJohn Marino hook_tree_tree_tree_tree_null (tree t0 ATTRIBUTE_UNUSED,
348*e4b17023SJohn Marino 			       tree t1 ATTRIBUTE_UNUSED,
349*e4b17023SJohn Marino 			       tree t2 ATTRIBUTE_UNUSED)
350*e4b17023SJohn Marino {
351*e4b17023SJohn Marino   return NULL;
352*e4b17023SJohn Marino }
353*e4b17023SJohn Marino 
354*e4b17023SJohn Marino /* Generic hook that takes a rtx and returns a NULL string.  */
355*e4b17023SJohn Marino const char *
hook_constcharptr_const_rtx_null(const_rtx r ATTRIBUTE_UNUSED)356*e4b17023SJohn Marino hook_constcharptr_const_rtx_null (const_rtx r ATTRIBUTE_UNUSED)
357*e4b17023SJohn Marino {
358*e4b17023SJohn Marino   return NULL;
359*e4b17023SJohn Marino }
360*e4b17023SJohn Marino 
361*e4b17023SJohn Marino const char *
hook_constcharptr_const_tree_const_tree_null(const_tree t0 ATTRIBUTE_UNUSED,const_tree t1 ATTRIBUTE_UNUSED)362*e4b17023SJohn Marino hook_constcharptr_const_tree_const_tree_null (const_tree t0 ATTRIBUTE_UNUSED,
363*e4b17023SJohn Marino 					      const_tree t1 ATTRIBUTE_UNUSED)
364*e4b17023SJohn Marino {
365*e4b17023SJohn Marino   return NULL;
366*e4b17023SJohn Marino }
367*e4b17023SJohn Marino 
368*e4b17023SJohn Marino const char *
hook_constcharptr_int_const_tree_null(int i ATTRIBUTE_UNUSED,const_tree t0 ATTRIBUTE_UNUSED)369*e4b17023SJohn Marino hook_constcharptr_int_const_tree_null (int i ATTRIBUTE_UNUSED,
370*e4b17023SJohn Marino 				       const_tree t0 ATTRIBUTE_UNUSED)
371*e4b17023SJohn Marino {
372*e4b17023SJohn Marino   return NULL;
373*e4b17023SJohn Marino }
374*e4b17023SJohn Marino 
375*e4b17023SJohn Marino const char *
hook_constcharptr_int_const_tree_const_tree_null(int i ATTRIBUTE_UNUSED,const_tree t0 ATTRIBUTE_UNUSED,const_tree t1 ATTRIBUTE_UNUSED)376*e4b17023SJohn Marino hook_constcharptr_int_const_tree_const_tree_null (int i ATTRIBUTE_UNUSED,
377*e4b17023SJohn Marino 						  const_tree t0 ATTRIBUTE_UNUSED,
378*e4b17023SJohn Marino 						  const_tree t1 ATTRIBUTE_UNUSED)
379*e4b17023SJohn Marino {
380*e4b17023SJohn Marino   return NULL;
381*e4b17023SJohn Marino }
382*e4b17023SJohn Marino 
383*e4b17023SJohn Marino /* Generic hook that takes a const_tree and returns NULL_TREE.  */
384*e4b17023SJohn Marino tree
hook_tree_const_tree_null(const_tree t ATTRIBUTE_UNUSED)385*e4b17023SJohn Marino hook_tree_const_tree_null (const_tree t ATTRIBUTE_UNUSED)
386*e4b17023SJohn Marino {
387*e4b17023SJohn Marino   return NULL;
388*e4b17023SJohn Marino }
389*e4b17023SJohn Marino 
390*e4b17023SJohn Marino /* Generic hook that takes a rtx and an int and returns a bool.  */
391*e4b17023SJohn Marino 
392*e4b17023SJohn Marino bool
hook_bool_rtx_int_false(rtx insn ATTRIBUTE_UNUSED,int mode ATTRIBUTE_UNUSED)393*e4b17023SJohn Marino hook_bool_rtx_int_false (rtx insn ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED)
394*e4b17023SJohn Marino {
395*e4b17023SJohn Marino   return false;
396*e4b17023SJohn Marino }
397*e4b17023SJohn Marino 
398*e4b17023SJohn Marino /* Generic hook that takes a rtx and an int and returns void.  */
399*e4b17023SJohn Marino 
400*e4b17023SJohn Marino void
hook_void_rtx_int(rtx insn ATTRIBUTE_UNUSED,int mode ATTRIBUTE_UNUSED)401*e4b17023SJohn Marino hook_void_rtx_int (rtx insn ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED)
402*e4b17023SJohn Marino {
403*e4b17023SJohn Marino }
404*e4b17023SJohn Marino 
405*e4b17023SJohn Marino /* Generic hook that takes a struct gcc_options * and returns void.  */
406*e4b17023SJohn Marino 
407*e4b17023SJohn Marino void
hook_void_gcc_optionsp(struct gcc_options * opts ATTRIBUTE_UNUSED)408*e4b17023SJohn Marino hook_void_gcc_optionsp (struct gcc_options *opts ATTRIBUTE_UNUSED)
409*e4b17023SJohn Marino {
410*e4b17023SJohn Marino }
411