xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/hooks.h (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
11debfc3dSmrg /* General-purpose hooks.
2*8feb0f0bSmrg    Copyright (C) 2002-2020 Free Software Foundation, Inc.
31debfc3dSmrg 
41debfc3dSmrg    This program is free software; you can redistribute it and/or modify it
51debfc3dSmrg    under the terms of the GNU General Public License as published by the
61debfc3dSmrg    Free Software Foundation; either version 3, or (at your option) any
71debfc3dSmrg    later version.
81debfc3dSmrg 
91debfc3dSmrg    This program is distributed in the hope that it will be useful,
101debfc3dSmrg    but WITHOUT ANY WARRANTY; without even the implied warranty of
111debfc3dSmrg    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
121debfc3dSmrg    GNU General Public License for more details.
131debfc3dSmrg 
141debfc3dSmrg    You should have received a copy of the GNU General Public License
151debfc3dSmrg    along with this program; see the file COPYING3.  If not see
161debfc3dSmrg    <http://www.gnu.org/licenses/>.
171debfc3dSmrg 
181debfc3dSmrg    In other words, you are welcome to use, share and improve this program.
191debfc3dSmrg    You are forbidden to forbid anyone else to use, share and improve
201debfc3dSmrg    what you give them.   Help stamp out software-hoarding!  */
211debfc3dSmrg 
221debfc3dSmrg #ifndef GCC_HOOKS_H
231debfc3dSmrg #define GCC_HOOKS_H
241debfc3dSmrg 
251debfc3dSmrg 
261debfc3dSmrg extern bool hook_bool_void_false (void);
271debfc3dSmrg extern bool hook_bool_void_true (void);
281debfc3dSmrg extern bool hook_bool_bool_false (bool);
291debfc3dSmrg extern bool hook_bool_bool_gcc_optionsp_false (bool, struct gcc_options *);
301debfc3dSmrg extern bool hook_bool_const_int_const_int_true (const int, const int);
311debfc3dSmrg extern bool hook_bool_mode_false (machine_mode);
321debfc3dSmrg extern bool hook_bool_mode_true (machine_mode);
33a2dc1f3fSmrg extern bool hook_bool_mode_mode_true (machine_mode, machine_mode);
341debfc3dSmrg extern bool hook_bool_mode_const_rtx_false (machine_mode, const_rtx);
351debfc3dSmrg extern bool hook_bool_mode_const_rtx_true (machine_mode, const_rtx);
361debfc3dSmrg extern bool hook_bool_mode_rtx_false (machine_mode, rtx);
371debfc3dSmrg extern bool hook_bool_mode_rtx_true (machine_mode, rtx);
381debfc3dSmrg extern bool hook_bool_const_rtx_insn_const_rtx_insn_true (const rtx_insn *,
391debfc3dSmrg 							  const rtx_insn *);
401debfc3dSmrg extern bool hook_bool_mode_uhwi_false (machine_mode,
411debfc3dSmrg 				       unsigned HOST_WIDE_INT);
42a2dc1f3fSmrg extern bool hook_bool_puint64_puint64_true (poly_uint64, poly_uint64);
43*8feb0f0bSmrg extern bool hook_bool_uint_uint_mode_false (unsigned int, unsigned int,
44c0a68be4Smrg 					    machine_mode);
45a2dc1f3fSmrg extern bool hook_bool_uint_mode_true (unsigned int, machine_mode);
461debfc3dSmrg extern bool hook_bool_tree_false (tree);
471debfc3dSmrg extern bool hook_bool_const_tree_false (const_tree);
48*8feb0f0bSmrg extern bool hook_bool_const_tree_const_tree_true (const_tree, const_tree);
491debfc3dSmrg extern bool hook_bool_tree_true (tree);
501debfc3dSmrg extern bool hook_bool_const_tree_true (const_tree);
511debfc3dSmrg extern bool hook_bool_gsiptr_false (gimple_stmt_iterator *);
521debfc3dSmrg extern bool hook_bool_const_tree_hwi_hwi_const_tree_false (const_tree,
531debfc3dSmrg 							   HOST_WIDE_INT,
541debfc3dSmrg 							   HOST_WIDE_INT,
551debfc3dSmrg 							   const_tree);
561debfc3dSmrg extern bool hook_bool_const_tree_hwi_hwi_const_tree_true (const_tree,
571debfc3dSmrg 							  HOST_WIDE_INT,
581debfc3dSmrg 							  HOST_WIDE_INT,
591debfc3dSmrg 							  const_tree);
601debfc3dSmrg extern bool hook_bool_rtx_insn_true (rtx_insn *);
611debfc3dSmrg extern bool hook_bool_rtx_false (rtx);
621debfc3dSmrg extern bool hook_bool_rtx_insn_int_false (rtx_insn *, int);
631debfc3dSmrg extern bool hook_bool_uintp_uintp_false (unsigned int *, unsigned int *);
641debfc3dSmrg extern bool hook_bool_reg_class_t_false (reg_class_t regclass);
65a2dc1f3fSmrg extern bool hook_bool_mode_mode_reg_class_t_true (machine_mode, machine_mode,
66a2dc1f3fSmrg 						  reg_class_t);
67a2dc1f3fSmrg extern bool hook_bool_mode_reg_class_t_reg_class_t_false (machine_mode,
68a2dc1f3fSmrg 							  reg_class_t,
69a2dc1f3fSmrg 							  reg_class_t);
701debfc3dSmrg extern bool hook_bool_rtx_mode_int_int_intp_bool_false (rtx, machine_mode,
711debfc3dSmrg 							int, int, int *, bool);
721debfc3dSmrg extern bool hook_bool_tree_tree_false (tree, tree);
731debfc3dSmrg extern bool hook_bool_tree_tree_true (tree, tree);
741debfc3dSmrg extern bool hook_bool_tree_bool_false (tree, bool);
751debfc3dSmrg extern bool hook_bool_wint_wint_uint_bool_true (const widest_int &,
761debfc3dSmrg 						const widest_int &,
771debfc3dSmrg 						unsigned int, bool);
781debfc3dSmrg 
791debfc3dSmrg extern void hook_void_void (void);
801debfc3dSmrg extern void hook_void_constcharptr (const char *);
811debfc3dSmrg extern void hook_void_rtx_insn_int (rtx_insn *, int);
821debfc3dSmrg extern void hook_void_FILEptr_constcharptr (FILE *, const char *);
831debfc3dSmrg extern void hook_void_FILEptr_constcharptr_const_tree (FILE *, const char *,
841debfc3dSmrg 						       const_tree);
851debfc3dSmrg extern bool hook_bool_FILEptr_rtx_false (FILE *, rtx);
861debfc3dSmrg extern void hook_void_rtx_tree (rtx, tree);
87c0a68be4Smrg extern void hook_void_FILEptr_tree (FILE *, tree);
881debfc3dSmrg extern void hook_void_tree (tree);
891debfc3dSmrg extern void hook_void_tree_treeptr (tree, tree *);
901debfc3dSmrg extern void hook_void_int_int (int, int);
911debfc3dSmrg extern void hook_void_gcc_optionsp (struct gcc_options *);
921debfc3dSmrg extern bool hook_bool_uint_uintp_false (unsigned int, unsigned int *);
931debfc3dSmrg 
941debfc3dSmrg extern int hook_int_uint_mode_1 (unsigned int, machine_mode);
951debfc3dSmrg extern int hook_int_const_tree_0 (const_tree);
961debfc3dSmrg extern int hook_int_const_tree_const_tree_1 (const_tree, const_tree);
971debfc3dSmrg extern int hook_int_rtx_0 (rtx);
981debfc3dSmrg extern int hook_int_rtx_1 (rtx);
99a2dc1f3fSmrg extern int hook_int_rtx_insn_0 (rtx_insn *);
1001debfc3dSmrg extern int hook_int_rtx_insn_unreachable (rtx_insn *);
1011debfc3dSmrg extern int hook_int_rtx_bool_0 (rtx, bool);
1021debfc3dSmrg extern int hook_int_rtx_mode_as_bool_0 (rtx, machine_mode, addr_space_t,
1031debfc3dSmrg 					bool);
1041debfc3dSmrg 
105a2dc1f3fSmrg extern HOST_WIDE_INT hook_hwi_void_0 (void);
106a2dc1f3fSmrg 
1071debfc3dSmrg extern tree hook_tree_const_tree_null (const_tree);
1081debfc3dSmrg extern tree hook_tree_void_null (void);
1091debfc3dSmrg 
110*8feb0f0bSmrg extern tree hook_tree_tree_bool_null (tree, bool);
1111debfc3dSmrg extern tree hook_tree_tree_tree_null (tree, tree);
1121debfc3dSmrg extern tree hook_tree_tree_tree_tree_null (tree, tree, tree);
1131debfc3dSmrg extern tree hook_tree_tree_int_treep_bool_null (tree, int, tree *, bool);
114*8feb0f0bSmrg extern tree hook_tree_treeptr_tree_tree_int_boolptr_null (tree *, tree, tree, int, bool *);
1151debfc3dSmrg 
1161debfc3dSmrg extern unsigned hook_uint_void_0 (void);
1171debfc3dSmrg extern unsigned int hook_uint_mode_0 (machine_mode);
1181debfc3dSmrg 
1191debfc3dSmrg extern bool default_can_output_mi_thunk_no_vcall (const_tree, HOST_WIDE_INT,
1201debfc3dSmrg 						  HOST_WIDE_INT, const_tree);
1211debfc3dSmrg 
1221debfc3dSmrg extern rtx hook_rtx_rtx_identity (rtx);
1231debfc3dSmrg extern rtx hook_rtx_rtx_null (rtx);
1241debfc3dSmrg extern rtx hook_rtx_tree_int_null (tree, int);
1251debfc3dSmrg 
1261debfc3dSmrg extern char *hook_charptr_void_null (void);
1271debfc3dSmrg extern const char *hook_constcharptr_void_null (void);
1281debfc3dSmrg extern const char *hook_constcharptr_const_tree_null (const_tree);
1291debfc3dSmrg extern const char *hook_constcharptr_const_rtx_insn_null (const rtx_insn *);
1301debfc3dSmrg extern const char *hook_constcharptr_const_tree_const_tree_null (const_tree, const_tree);
1311debfc3dSmrg extern const char *hook_constcharptr_int_const_tree_null (int, const_tree);
1321debfc3dSmrg extern const char *hook_constcharptr_int_const_tree_const_tree_null (int, const_tree, const_tree);
133a2dc1f3fSmrg 
134a2dc1f3fSmrg extern opt_machine_mode hook_optmode_mode_uhwi_none (machine_mode,
135a2dc1f3fSmrg 						     unsigned HOST_WIDE_INT);
1361debfc3dSmrg #endif
137