alpha_in_small_data_p, alpha_split_complex_arg,
alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
Constify.
* config/arm/arm-protos.h (arm_mangle_type): Likewise.
* config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
Likewise.
* config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
* config/darwin-protos.h (darwin_binds_local_p): Likewise.
* config/darwin.c (darwin_binds_local_p): Likewise.
* config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
Likewise.
* config/i386/i386-protos.h (i386_pe_binds_local_p,
i386_pe_valid_dllimport_attribute_p): Likewise.
* config/i386/i386.c (ix86_function_regparm,
ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
x86_can_output_mi_thunk, ix86_mangle_type,
TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
* config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
i386_pe_binds_local_p): Likewise.
* config/ia64/ia64.c
(ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
ia64_invalid_conversion, ia64_invalid_unary_op,
ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
Likewise.
* config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
* config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
* config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
* config/mips/mips.c (mips_use_blocks_for_constant_p,
mips_in_small_data_p, mips_use_anchors_for_symbol_p,
mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
* config/pa/pa.c (pa_commutative_p): Likewise.
* config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
Likewise.
* config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
rs6000_use_blocks_for_constant_p,
rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
* config/s390/s390.c (s390_mangle_type,
TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
Likewise.
* config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
th_in_small_data_p): Likewise.
* config/sh/sh.c (sh_ms_bitfield_layout_p,
sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
Likewise.
* config/sparc/sparc.c (sparc_can_output_mi_thunk,
sparc_mangle_type): Likewise.
* config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
* config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
* emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
Likewise.
* hooks.c (hook_bool_mode_const_rtx_false,
hook_bool_mode_const_rtx_true,
hook_bool_const_tree_hwi_hwi_const_tree_false,
hook_bool_const_tree_hwi_hwi_const_tree_true,
hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
hook_constcharptr_const_tree_null,
hook_constcharptr_const_rtx_null,
hook_constcharptr_const_tree_const_tree_null,
hook_constcharptr_int_const_tree_null,
hook_constcharptr_int_const_tree_const_tree_null): New.
(hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
hook_bool_tree_hwi_hwi_tree_false,
hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
hook_int_tree_tree_1, hook_constcharptr_tree_null,
hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
hook_constcharptr_int_tree_null,
hook_constcharptr_int_tree_tree_null): Delete.
(default_can_output_mi_thunk_no_vcall): Constify.
* hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
hook_bool_tree_hwi_hwi_tree_false,
hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
hook_int_tree_tree_1, hook_constcharptr_tree_null,
hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
hook_constcharptr_int_tree_null,
hook_constcharptr_int_tree_tree_null): Delete.
(hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
hook_bool_const_tree_hwi_hwi_const_tree_false,
hook_bool_const_tree_hwi_hwi_const_tree_true,
hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
hook_constcharptr_const_tree_null,
hook_constcharptr_const_rtx_null,
hook_constcharptr_const_tree_const_tree_null,
hook_constcharptr_int_const_tree_null,
hook_constcharptr_int_const_tree_const_tree_null): New.
(default_can_output_mi_thunk_no_vcall): Constify.
* integrate.c (function_attribute_inlinable_p): Likewise.
* integrate.h (function_attribute_inlinable_p): Likewise.
* jump.c (rtx_renumbered_equal_p): Likewise.
* output.h (decl_readonly_section, categorize_decl_for_section,
default_use_anchors_for_symbol_p, default_binds_local_p,
default_binds_local_p_1): Likewise.
* rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
Likewise.
* target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
TARGET_COMP_TYPE_ATTRIBUTES,
TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
TARGET_DWARF_CALLING_CONVENTION): Likewise.
* target.h (can_output_mi_thunk, needs_block_p,
first_cycle_multipass_dfa_lookahead_guard_spec,
vector_alignment_reachable, comp_type_attributes,
function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
commutative_p, use_blocks_for_constant_p,
use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
invalid_within_doloop, valid_dllimport_attribute_p,
split_complex_arg, invalid_arg_for_unprototyped_fn,
invalid_conversion, invalid_unary_op, invalid_binary_op):
Likewise.
* targhooks.c (default_invalid_within_doloop,
hook_invalid_arg_for_unprototyped_fn,
default_builtin_vector_alignment_reachable): Likewise.
(hook_bool_rtx_commutative_p): Delete.
(hook_bool_const_rtx_commutative_p): New.
* targhooks.h (default_invalid_within_doloop,
default_builtin_vector_alignment_reachable,
hook_invalid_arg_for_unprototyped_fn): Constify.
(hook_bool_rtx_commutative_p): Delete.
(hook_bool_const_rtx_commutative_p): New.
* varasm.c (bss_initializer_p, decl_default_tls_model,
categorize_decl_for_section, decl_readonly_section,
default_use_anchors_for_symbol_p, default_binds_local_p,
default_binds_local_p_1): Constify.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127785
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * config/alpha/alpha.c (alpha_mangle_type, decl_has_samegp,
+ alpha_in_small_data_p, alpha_split_complex_arg,
+ alpha_stdarg_optimize_hook, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
+ Constify.
+ * config/arm/arm-protos.h (arm_mangle_type): Likewise.
+ * config/arm/arm.c (arm_comp_type_attributes, arm_mangle_type):
+ Likewise.
+ * config/bfin/bfin.c (funkind, bfin_comp_type_attributes,
+ TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
+ * config/darwin-protos.h (darwin_binds_local_p): Likewise.
+ * config/darwin.c (darwin_binds_local_p): Likewise.
+ * config/frv/frv.c (frv_string_begins_with, frv_in_small_data_p):
+ Likewise.
+ * config/i386/i386-protos.h (i386_pe_binds_local_p,
+ i386_pe_valid_dllimport_attribute_p): Likewise.
+ * config/i386/i386.c (ix86_function_regparm,
+ ix86_comp_type_attributes, ix86_ms_bitfield_layout_p,
+ x86_can_output_mi_thunk, ix86_mangle_type,
+ TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
+ * config/i386/winnt.c (i386_pe_valid_dllimport_attribute_p,
+ i386_pe_binds_local_p): Likewise.
+ * config/ia64/ia64.c
+ (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
+ ia64_needs_block_p, ia64_in_small_data_p, ia64_mangle_type,
+ ia64_invalid_conversion, ia64_invalid_unary_op,
+ ia64_invalid_binary_op, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
+ Likewise.
+ * config/m32c/m32c.c (m32c_comp_type_attributes): Likewise.
+ * config/m32r/m32r.c (m32r_in_small_data_p): Likewise.
+ * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
+ * config/mips/mips.c (mips_use_blocks_for_constant_p,
+ mips_in_small_data_p, mips_use_anchors_for_symbol_p,
+ mips_comp_type_attributes, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
+ mips_near_type_p, mips_far_type_p, mips_global_symbol_p,
+ mips_symbol_binds_local_p, mips_classify_symbol): Likewise.
+ * config/pa/pa.c (pa_commutative_p): Likewise.
+ * config/rs6000/rs6000-protos.h (rs6000_elf_in_small_data_p):
+ Likewise.
+ * config/rs6000/rs6000.c (rs6000_invalid_within_doloop,
+ rs6000_ms_bitfield_layout_p, rs6000_mangle_type,
+ rs6000_use_blocks_for_constant_p,
+ rs6000_vector_alignment_reachable, rs6000_is_opaque_type,
+ invalid_arg_for_unprototyped_fn, TARGET_ASM_CAN_OUTPUT_MI_THUNK,
+ TARGET_SPLIT_COMPLEX_ARG, rs6000_elf_in_small_data_p): Likewise.
+ * config/s390/s390.c (s390_mangle_type,
+ TARGET_ASM_CAN_OUTPUT_MI_THUNK, TARGET_INVALID_WITHIN_DOLOOP):
+ Likewise.
+ * config/score/score.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
+ th_in_small_data_p): Likewise.
+ * config/sh/sh.c (sh_ms_bitfield_layout_p,
+ sh_dwarf_calling_convention, TARGET_ASM_CAN_OUTPUT_MI_THUNK):
+ Likewise.
+ * config/sparc/sparc.c (sparc_can_output_mi_thunk,
+ sparc_mangle_type): Likewise.
+ * config/spu/spu.c (spu_vector_alignment_reachable): Likewise.
+ * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): Likewise.
+ * emit-rtl.c (const_fixed_htab_hash, const_fixed_htab_eq):
+ Likewise.
+ * hooks.c (hook_bool_mode_const_rtx_false,
+ hook_bool_mode_const_rtx_true,
+ hook_bool_const_tree_hwi_hwi_const_tree_false,
+ hook_bool_const_tree_hwi_hwi_const_tree_true,
+ hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
+ hook_constcharptr_const_tree_null,
+ hook_constcharptr_const_rtx_null,
+ hook_constcharptr_const_tree_const_tree_null,
+ hook_constcharptr_int_const_tree_null,
+ hook_constcharptr_int_const_tree_const_tree_null): New.
+ (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
+ hook_bool_tree_hwi_hwi_tree_false,
+ hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
+ hook_int_tree_tree_1, hook_constcharptr_tree_null,
+ hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
+ hook_constcharptr_int_tree_null,
+ hook_constcharptr_int_tree_tree_null): Delete.
+ (default_can_output_mi_thunk_no_vcall): Constify.
+ * hooks.h (hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
+ hook_bool_tree_hwi_hwi_tree_false,
+ hook_bool_tree_hwi_hwi_tree_true, hook_int_tree_0,
+ hook_int_tree_tree_1, hook_constcharptr_tree_null,
+ hook_constcharptr_rtx_null, hook_constcharptr_tree_tree_null,
+ hook_constcharptr_int_tree_null,
+ hook_constcharptr_int_tree_tree_null): Delete.
+ (hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
+ hook_bool_const_tree_hwi_hwi_const_tree_false,
+ hook_bool_const_tree_hwi_hwi_const_tree_true,
+ hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
+ hook_constcharptr_const_tree_null,
+ hook_constcharptr_const_rtx_null,
+ hook_constcharptr_const_tree_const_tree_null,
+ hook_constcharptr_int_const_tree_null,
+ hook_constcharptr_int_const_tree_const_tree_null): New.
+ (default_can_output_mi_thunk_no_vcall): Constify.
+ * integrate.c (function_attribute_inlinable_p): Likewise.
+ * integrate.h (function_attribute_inlinable_p): Likewise.
+ * jump.c (rtx_renumbered_equal_p): Likewise.
+ * output.h (decl_readonly_section, categorize_decl_for_section,
+ default_use_anchors_for_symbol_p, default_binds_local_p,
+ default_binds_local_p_1): Likewise.
+ * rtl.h (rtx_renumbered_equal_p, decl_default_tls_model):
+ Likewise.
+ * target-def.h (TARGET_ASM_CAN_OUTPUT_MI_THUNK,
+ TARGET_VALID_DLLIMPORT_ATTRIBUTE_P, TARGET_VECTOR_OPAQUE_P,
+ TARGET_COMMUTATIVE_P, TARGET_USE_BLOCKS_FOR_CONSTANT_P,
+ TARGET_COMP_TYPE_ATTRIBUTES,
+ TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P,
+ TARGET_MS_BITFIELD_LAYOUT_P, TARGET_MANGLE_TYPE,
+ TARGET_IN_SMALL_DATA_P, TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
+ TARGET_DWARF_CALLING_CONVENTION): Likewise.
+ * target.h (can_output_mi_thunk, needs_block_p,
+ first_cycle_multipass_dfa_lookahead_guard_spec,
+ vector_alignment_reachable, comp_type_attributes,
+ function_attribute_inlinable_p, ms_bitfield_layout_p, mangle_type,
+ commutative_p, use_blocks_for_constant_p,
+ use_anchors_for_symbol_p, in_small_data_p, binds_local_p,
+ vector_opaque_p, dwarf_calling_convention, stdarg_optimize_hook,
+ invalid_within_doloop, valid_dllimport_attribute_p,
+ split_complex_arg, invalid_arg_for_unprototyped_fn,
+ invalid_conversion, invalid_unary_op, invalid_binary_op):
+ Likewise.
+ * targhooks.c (default_invalid_within_doloop,
+ hook_invalid_arg_for_unprototyped_fn,
+ default_builtin_vector_alignment_reachable): Likewise.
+ (hook_bool_rtx_commutative_p): Delete.
+ (hook_bool_const_rtx_commutative_p): New.
+ * targhooks.h (default_invalid_within_doloop,
+ default_builtin_vector_alignment_reachable,
+ hook_invalid_arg_for_unprototyped_fn): Constify.
+ (hook_bool_rtx_commutative_p): Delete.
+ (hook_bool_const_rtx_commutative_p): New.
+ * varasm.c (bss_initializer_p, decl_default_tls_model,
+ categorize_decl_for_section, decl_readonly_section,
+ default_use_anchors_for_symbol_p, default_binds_local_p,
+ default_binds_local_p_1): Constify.
+
2007-08-24 Jie Zhang <jie.zhang@analog.com>
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
/* Implement TARGET_MANGLE_TYPE. */
static const char *
-alpha_mangle_type (tree type)
+alpha_mangle_type (const_tree type)
{
if (TYPE_MAIN_VARIANT (type) == long_double_type_node
&& TARGET_LONG_DOUBLE_128)
function in the current unit of translation. */
static bool
-decl_has_samegp (tree decl)
+decl_has_samegp (const_tree decl)
{
/* Functions that are not local can be overridden, and thus may
not share the same gp. */
/* Return true if EXP should be placed in the small data section. */
static bool
-alpha_in_small_data_p (tree exp)
+alpha_in_small_data_p (const_tree exp)
{
/* We want to merge strings, so we never consider them small data. */
if (TREE_CODE (exp) == STRING_CST)
should not split these values. */
static bool
-alpha_split_complex_arg (tree type)
+alpha_split_complex_arg (const_tree type)
{
return TYPE_MODE (type) != TCmode;
}
current statement. */
static bool
-alpha_stdarg_optimize_hook (struct stdarg_info *si, tree lhs, tree rhs)
+alpha_stdarg_optimize_hook (struct stdarg_info *si, const_tree lhs, const_tree rhs)
{
tree base, offset, arg1, arg2;
int offset_arg = 1;
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK alpha_output_mi_thunk_osf
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_STDARG_OPTIMIZE_HOOK
#define TARGET_STDARG_OPTIMIZE_HOOK alpha_stdarg_optimize_hook
#endif
extern void arm_pr_no_long_calls (struct cpp_reader *);
extern void arm_pr_long_calls_off (struct cpp_reader *);
-extern const char *arm_mangle_type (tree);
+extern const char *arm_mangle_type (const_tree);
#endif /* ! GCC_ARM_PROTOS_H */
static void arm_output_function_epilogue (FILE *, HOST_WIDE_INT);
static void arm_output_function_prologue (FILE *, HOST_WIDE_INT);
static void thumb1_output_function_prologue (FILE *, HOST_WIDE_INT);
-static int arm_comp_type_attributes (tree, tree);
+static int arm_comp_type_attributes (const_tree, const_tree);
static void arm_set_default_type_attributes (tree);
static int arm_adjust_cost (rtx, rtx, rtx, int);
static int count_insns_for_constant (HOST_WIDE_INT, int);
are compatible, and 2 if they are nearly compatible (which causes a
warning to be generated). */
static int
-arm_comp_type_attributes (tree type1, tree type2)
+arm_comp_type_attributes (const_tree type1, const_tree type2)
{
int l1, l2, s1, s2;
};
const char *
-arm_mangle_type (tree type)
+arm_mangle_type (const_tree type)
{
arm_mangle_map_entry *pos = arm_mangle_map;
/* Examine machine-dependent attributes of function type FUNTYPE and return its
type. See the definition of E_FUNKIND. */
-static e_funkind funkind (tree funtype)
+static e_funkind
+funkind (const_tree funtype)
{
tree attrs = TYPE_ATTRIBUTES (funtype);
if (lookup_attribute ("interrupt_handler", attrs))
warning to be generated). */
static int
-bfin_comp_type_attributes (tree type1, tree type2)
+bfin_comp_type_attributes (const_tree type1, const_tree type2)
{
e_funkind kind1, kind2;
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK bfin_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_SCHED_ADJUST_COST
#define TARGET_SCHED_ADJUST_COST bfin_adjust_cost
const char *);
extern void darwin_asm_output_dwarf_offset (FILE *, int, const char *,
section *);
-extern bool darwin_binds_local_p (tree);
+extern bool darwin_binds_local_p (const_tree);
extern void darwin_cpp_builtins (struct cpp_reader *);
extern void darwin_asm_output_anchor (rtx symbol);
extern bool darwin_kextabi_p (void);
functions at dynamic-link time, except for vtables in kexts. */
bool
-darwin_binds_local_p (tree decl)
+darwin_binds_local_p (const_tree decl)
{
return default_binds_local_p_1 (decl,
TARGET_KEXTABI && DARWIN_VTABLE_P (decl));
static bool frv_handle_option (size_t, const char *, int);
static int frv_default_flags_for_cpu (void);
-static int frv_string_begins_with (tree, const char *);
+static int frv_string_begins_with (const_tree, const char *);
static FRV_INLINE bool frv_small_data_reloc_p (rtx, int);
static void frv_print_operand_memory_reference_reg
(FILE *, rtx);
static void frv_init_builtins (void);
static rtx frv_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
static void frv_init_libfuncs (void);
-static bool frv_in_small_data_p (tree);
+static bool frv_in_small_data_p (const_tree);
static void frv_asm_output_mi_thunk
(FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree);
static void frv_setup_incoming_varargs (CUMULATIVE_ARGS *,
/* Return true if NAME (a STRING_CST node) begins with PREFIX. */
static int
-frv_string_begins_with (tree name, const char *prefix)
+frv_string_begins_with (const_tree name, const char *prefix)
{
- int prefix_len = strlen (prefix);
+ const int prefix_len = strlen (prefix);
/* Remember: NAME's length includes the null terminator. */
return (TREE_STRING_LENGTH (name) > prefix_len
}
static bool
-frv_in_small_data_p (tree decl)
+frv_in_small_data_p (const_tree decl)
{
HOST_WIDE_INT size;
- tree section_name;
+ const_tree section_name;
/* Don't apply the -G flag to internal compiler structures. We
should leave such structures in the main data section, partly
extern void i386_pe_record_external_function (tree, const char *);
extern void i386_pe_maybe_record_exported_symbol (tree, const char *, int);
extern void i386_pe_encode_section_info (tree, rtx, int);
-extern bool i386_pe_binds_local_p (tree);
+extern bool i386_pe_binds_local_p (const_tree);
extern const char *i386_pe_strip_name_encoding_full (const char *);
-extern bool i386_pe_valid_dllimport_attribute_p (tree);
+extern bool i386_pe_valid_dllimport_attribute_p (const_tree);
extern unsigned int i386_pe_section_type_flags (tree, const char *, int);
extern void i386_pe_asm_named_section (const char *, unsigned int, tree);
extern void i386_pe_asm_output_aligned_decl_common (FILE *, tree,
\f
static struct machine_function * ix86_init_machine_status (void);
static rtx ix86_function_value (const_tree, const_tree, bool);
-static int ix86_function_regparm (tree, tree);
+static int ix86_function_regparm (const_tree, const_tree);
static void ix86_compute_frame_layout (struct ix86_frame *);
static bool ix86_expand_vector_init_one_nonzero (bool, enum machine_mode,
rtx, rtx, int);
warning to be generated). */
static int
-ix86_comp_type_attributes (tree type1, tree type2)
+ix86_comp_type_attributes (const_tree type1, const_tree type2)
{
/* Check for mismatch of non-default calling convention. */
const char *const rtdstr = TARGET_RTD ? "cdecl" : "stdcall";
or considering a libcall. */
static int
-ix86_function_regparm (tree type, tree decl)
+ix86_function_regparm (const_tree type, const_tree decl)
{
tree attr;
int regparm = ix86_regparm;
if (decl && TREE_CODE (decl) == FUNCTION_DECL
&& flag_unit_at_a_time && !profile_flag)
{
- struct cgraph_local_info *i = cgraph_local_info (decl);
+ /* FIXME: remove this CONST_CAST when cgraph.[ch] is constified. */
+ struct cgraph_local_info *i = cgraph_local_info ((tree)CONST_CAST(decl));
if (i && i->local)
{
int local_regparm, globals = 0, regno;
}
static bool
-ix86_ms_bitfield_layout_p (tree record_type)
+ix86_ms_bitfield_layout_p (const_tree record_type)
{
return (TARGET_MS_BITFIELD_LAYOUT &&
!lookup_attribute ("gcc_struct", TYPE_ATTRIBUTES (record_type)))
/* Determine whether x86_output_mi_thunk can succeed. */
static bool
-x86_can_output_mi_thunk (tree thunk ATTRIBUTE_UNUSED,
+x86_can_output_mi_thunk (const_tree thunk ATTRIBUTE_UNUSED,
HOST_WIDE_INT delta ATTRIBUTE_UNUSED,
- HOST_WIDE_INT vcall_offset, tree function)
+ HOST_WIDE_INT vcall_offset, const_tree function)
{
/* 64-bit can handle anything. */
if (TARGET_64BIT)
/* Return the mangling of TYPE if it is an extended fundamental type. */
static const char *
-ix86_mangle_type (tree type)
+ix86_mangle_type (const_tree type)
{
type = TYPE_MAIN_VARIANT (type);
#undef TARGET_CANNOT_FORCE_CONST_MEM
#define TARGET_CANNOT_FORCE_CONST_MEM ix86_cannot_force_const_mem
#undef TARGET_USE_BLOCKS_FOR_CONSTANT_P
-#define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_rtx_true
+#define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_const_rtx_true
#undef TARGET_DELEGITIMIZE_ADDRESS
#define TARGET_DELEGITIMIZE_ADDRESS ix86_delegitimize_address
/* Handle the -mno-fun-dllimport target switch. */
bool
-i386_pe_valid_dllimport_attribute_p (tree decl)
+i386_pe_valid_dllimport_attribute_p (const_tree decl)
{
if (TARGET_NOP_FUN_DLLIMPORT && TREE_CODE (decl) == FUNCTION_DECL)
return false;
}
bool
-i386_pe_binds_local_p (tree exp)
+i386_pe_binds_local_p (const_tree exp)
{
/* PE does not do dynamic binding. Indeed, the only kind of
non-local reference comes from a dllimport'd symbol. */
static void ia64_init_dfa_pre_cycle_insn (void);
static rtx ia64_dfa_pre_cycle_insn (void);
static int ia64_first_cycle_multipass_dfa_lookahead_guard (rtx);
-static bool ia64_first_cycle_multipass_dfa_lookahead_guard_spec (rtx);
+static bool ia64_first_cycle_multipass_dfa_lookahead_guard_spec (const_rtx);
static int ia64_dfa_new_cycle (FILE *, int, rtx, int, int, int *);
static void ia64_h_i_d_extended (void);
static int ia64_mode_to_int (enum machine_mode);
static void ia64_set_sched_flags (spec_info_t);
static int ia64_speculate_insn (rtx, ds_t, rtx *);
static rtx ia64_gen_spec_insn (rtx, ds_t, int, bool, bool);
-static bool ia64_needs_block_p (rtx);
+static bool ia64_needs_block_p (const_rtx);
static rtx ia64_gen_check (rtx, rtx, bool);
static int ia64_spec_check_p (rtx);
static int ia64_spec_check_src_p (rtx);
static void final_emit_insn_group_barriers (FILE *);
static void emit_predicate_relation_info (void);
static void ia64_reorg (void);
-static bool ia64_in_small_data_p (tree);
+static bool ia64_in_small_data_p (const_tree);
static void process_epilogue (FILE *, rtx, bool, bool);
static int process_set (FILE *, rtx, rtx, bool, bool);
static bool ia64_scalar_mode_supported_p (enum machine_mode mode);
static bool ia64_vector_mode_supported_p (enum machine_mode mode);
static bool ia64_cannot_force_const_mem (rtx);
-static const char *ia64_mangle_type (tree);
-static const char *ia64_invalid_conversion (tree, tree);
-static const char *ia64_invalid_unary_op (int, tree);
-static const char *ia64_invalid_binary_op (int, tree, tree);
+static const char *ia64_mangle_type (const_tree);
+static const char *ia64_invalid_conversion (const_tree, const_tree);
+static const char *ia64_invalid_unary_op (int, const_tree);
+static const char *ia64_invalid_binary_op (int, const_tree, const_tree);
static enum machine_mode ia64_c_mode_for_suffix (char);
\f
/* Table of valid machine attributes. */
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK ia64_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_ASM_FILE_START
#define TARGET_ASM_FILE_START ia64_file_start
can be chosen. */
static bool
-ia64_first_cycle_multipass_dfa_lookahead_guard_spec (rtx insn)
+ia64_first_cycle_multipass_dfa_lookahead_guard_spec (const_rtx insn)
{
gcc_assert (insn && INSN_P (insn));
/* Size of ALAT is 32. As far as we perform conservative data speculation,
/* Return nonzero, if INSN needs branchy recovery check. */
static bool
-ia64_needs_block_p (rtx insn)
+ia64_needs_block_p (const_rtx insn)
{
int check_no;
types which can't go in sdata/sbss. */
static bool
-ia64_in_small_data_p (tree exp)
+ia64_in_small_data_p (const_tree exp)
{
if (TARGET_NO_SDATA)
return false;
/* Return the mangling of TYPE if it is an extended fundamental type. */
static const char *
-ia64_mangle_type (tree type)
+ia64_mangle_type (const_tree type)
{
type = TYPE_MAIN_VARIANT (type);
/* Return the diagnostic message string if conversion from FROMTYPE to
TOTYPE is not allowed, NULL otherwise. */
static const char *
-ia64_invalid_conversion (tree fromtype, tree totype)
+ia64_invalid_conversion (const_tree fromtype, const_tree totype)
{
/* Reject nontrivial conversion to or from __fpreg. */
if (TYPE_MODE (fromtype) == RFmode
/* Return the diagnostic message string if the unary operation OP is
not permitted on TYPE, NULL otherwise. */
static const char *
-ia64_invalid_unary_op (int op, tree type)
+ia64_invalid_unary_op (int op, const_tree type)
{
/* Reject operations on __fpreg other than unary + or &. */
if (TYPE_MODE (type) == RFmode
/* Return the diagnostic message string if the binary operation OP is
not permitted on TYPE1 and TYPE2, NULL otherwise. */
static const char *
-ia64_invalid_binary_op (int op ATTRIBUTE_UNUSED, tree type1, tree type2)
+ia64_invalid_binary_op (int op ATTRIBUTE_UNUSED, const_tree type1, const_tree type2)
{
/* Reject operations on __fpreg. */
if (TYPE_MODE (type1) == RFmode || TYPE_MODE (type2) == RFmode)
static tree function_vector_handler (tree *, tree, tree, int, bool *);
static int interrupt_p (tree node);
static bool m32c_asm_integer (rtx, unsigned int, int);
-static int m32c_comp_type_attributes (tree, tree);
+static int m32c_comp_type_attributes (const_tree, const_tree);
static bool m32c_fixed_condition_code_regs (unsigned int *, unsigned int *);
static struct machine_function *m32c_init_machine_status (void);
static void m32c_insert_attributes (tree, tree *);
#undef TARGET_COMP_TYPE_ATTRIBUTES
#define TARGET_COMP_TYPE_ATTRIBUTES m32c_comp_type_attributes
static int
-m32c_comp_type_attributes (tree type1 ATTRIBUTE_UNUSED,
- tree type2 ATTRIBUTE_UNUSED)
+m32c_comp_type_attributes (const_tree type1 ATTRIBUTE_UNUSED,
+ const_tree type2 ATTRIBUTE_UNUSED)
{
/* 0=incompatible 1=compatible 2=warning */
return 1;
static int m32r_issue_rate (void);
static void m32r_encode_section_info (tree, rtx, int);
-static bool m32r_in_small_data_p (tree);
+static bool m32r_in_small_data_p (const_tree);
static bool m32r_return_in_memory (const_tree, const_tree);
static void m32r_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
tree, int *, int);
the object doesn't fit the linker will give an error. */
static bool
-m32r_in_small_data_p (tree decl)
+m32r_in_small_data_p (const_tree decl)
{
- tree section;
+ const_tree section;
if (TREE_CODE (decl) != VAR_DECL)
return false;
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK m68k_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_ASM_FILE_START_APP_OFF
#define TARGET_ASM_FILE_START_APP_OFF true
static bool mips_classify_address (struct mips_address_info *, rtx,
enum machine_mode, int);
static bool mips_cannot_force_const_mem (rtx);
-static bool mips_use_blocks_for_constant_p (enum machine_mode, rtx);
+static bool mips_use_blocks_for_constant_p (enum machine_mode, const_rtx);
static int mips_symbol_insns (enum mips_symbol_type, enum machine_mode);
static bool mips16_unextended_reference_p (enum machine_mode mode, rtx, rtx);
static rtx mips_force_temporary (rtx, rtx);
static section *mips_select_rtx_section (enum machine_mode, rtx,
unsigned HOST_WIDE_INT);
static section *mips_function_rodata_section (tree);
-static bool mips_in_small_data_p (tree);
-static bool mips_use_anchors_for_symbol_p (rtx);
+static bool mips_in_small_data_p (const_tree);
+static bool mips_use_anchors_for_symbol_p (const_rtx);
static int mips_fpr_return_fields (const_tree, tree *);
static bool mips_return_in_msb (const_tree);
static rtx mips_return_fpr_pair (enum machine_mode mode,
static rtx mips_expand_builtin_bposge (enum mips_builtin_type, rtx);
static void mips_encode_section_info (tree, rtx, int);
static void mips_extra_live_on_entry (bitmap);
-static int mips_comp_type_attributes (tree, tree);
+static int mips_comp_type_attributes (const_tree, const_tree);
static int mips_mode_rep_extended (enum machine_mode, enum machine_mode);
static bool mips_offset_within_alignment_p (rtx, HOST_WIDE_INT);
static void mips_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK mips_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_SETUP_INCOMING_VARARGS
#define TARGET_SETUP_INCOMING_VARARGS mips_setup_incoming_varargs
attributes on the given TYPE. */
static bool
-mips_near_type_p (tree type)
+mips_near_type_p (const_tree type)
{
return lookup_attribute ("near", TYPE_ATTRIBUTES (type)) != NULL;
}
static bool
-mips_far_type_p (tree type)
+mips_far_type_p (const_tree type)
{
return (lookup_attribute ("long_call", TYPE_ATTRIBUTES (type)) != NULL
|| lookup_attribute ("far", TYPE_ATTRIBUTES (type)) != NULL);
warning to be generated). */
static int
-mips_comp_type_attributes (tree type1, tree type2)
+mips_comp_type_attributes (const_tree type1, const_tree type2)
{
/* Check for mismatch of non-default calling convention. */
if (TREE_CODE (type1) != FUNCTION_TYPE)
(in the STB_GLOBAL sense). */
static bool
-mips_global_symbol_p (rtx x)
+mips_global_symbol_p (const_rtx x)
{
- tree decl;
+ const_tree const decl = SYMBOL_REF_DECL (x);
- decl = SYMBOL_REF_DECL (x);
if (!decl)
return !SYMBOL_REF_LOCAL_P (x);
/* Return true if SYMBOL_REF X binds locally. */
static bool
-mips_symbol_binds_local_p (rtx x)
+mips_symbol_binds_local_p (const_rtx x)
{
return (SYMBOL_REF_DECL (x)
? targetm.binds_local_p (SYMBOL_REF_DECL (x))
LABEL_REF X in context CONTEXT. */
static enum mips_symbol_type
-mips_classify_symbol (rtx x, enum mips_symbol_context context)
+mips_classify_symbol (const_rtx x, enum mips_symbol_context context)
{
if (TARGET_RTP_PIC)
return SYMBOL_GOT_DISP;
static bool
mips_use_blocks_for_constant_p (enum machine_mode mode ATTRIBUTE_UNUSED,
- rtx x ATTRIBUTE_UNUSED)
+ const_rtx x ATTRIBUTE_UNUSED)
{
return !TARGET_MIPS16_PCREL_LOADS;
}
mips_classify_symbol decide when to use %gp_rel(...)($gp) accesses. */
static bool
-mips_in_small_data_p (tree decl)
+mips_in_small_data_p (const_tree decl)
{
HOST_WIDE_INT size;
where the PC acts as an anchor. */
static bool
-mips_use_anchors_for_symbol_p (rtx symbol)
+mips_use_anchors_for_symbol_p (const_rtx symbol)
{
switch (mips_classify_symbol (symbol, SYMBOL_CONTEXT_MEM))
{
static rtx hppa_builtin_saveregs (void);
static tree hppa_gimplify_va_arg_expr (tree, tree, tree *, tree *);
static bool pa_scalar_mode_supported_p (enum machine_mode);
-static bool pa_commutative_p (rtx x, int outer_code);
+static bool pa_commutative_p (const_rtx x, int outer_code);
static void copy_fp_args (rtx) ATTRIBUTE_UNUSED;
static int length_fp_args (rtx) ATTRIBUTE_UNUSED;
static inline void pa_file_start_level (void) ATTRIBUTE_UNUSED;
space register selection rules for memory addresses. Therefore, we
don't consider a + b == b + a, as this might be inside a MEM. */
static bool
-pa_commutative_p (rtx x, int outer_code)
+pa_commutative_p (const_rtx x, int outer_code)
{
return (COMMUTATIVE_P (x)
&& (TARGET_NO_SPACE_REGS
extern rtx rs6000_va_arg (tree, tree);
extern int function_ok_for_sibcall (tree);
extern void rs6000_elf_declare_function_name (FILE *, const char *, tree);
-extern bool rs6000_elf_in_small_data_p (tree);
+extern bool rs6000_elf_in_small_data_p (const_tree);
#ifdef ARGS_SIZE_RTX
/* expr.h defines ARGS_SIZE_RTX and `enum direction' */
extern enum direction function_arg_padding (enum machine_mode, const_tree);
\f
static bool rs6000_function_ok_for_sibcall (tree, tree);
-static const char *rs6000_invalid_within_doloop (rtx);
+static const char *rs6000_invalid_within_doloop (const_rtx);
static rtx rs6000_generate_compare (enum rtx_code);
static void rs6000_emit_stack_tie (void);
static void rs6000_frame_related (rtx, rtx, HOST_WIDE_INT, rtx, rtx);
static int rs6000_ra_ever_killed (void);
static tree rs6000_handle_longcall_attribute (tree *, tree, tree, int, bool *);
static tree rs6000_handle_altivec_attribute (tree *, tree, tree, int, bool *);
-static bool rs6000_ms_bitfield_layout_p (tree);
+static bool rs6000_ms_bitfield_layout_p (const_tree);
static tree rs6000_handle_struct_attribute (tree *, tree, tree, int, bool *);
static void rs6000_eliminate_indexed_memrefs (rtx operands[2]);
-static const char *rs6000_mangle_type (tree);
+static const char *rs6000_mangle_type (const_tree);
extern const struct attribute_spec rs6000_attribute_table[];
static void rs6000_set_default_type_attributes (tree);
static bool rs6000_reg_live_or_pic_offset_p (int);
static void rs6000_elf_encode_section_info (tree, rtx, int)
ATTRIBUTE_UNUSED;
#endif
-static bool rs6000_use_blocks_for_constant_p (enum machine_mode, rtx);
+static bool rs6000_use_blocks_for_constant_p (enum machine_mode, const_rtx);
#if TARGET_XCOFF
static void rs6000_xcoff_asm_output_anchor (rtx);
static void rs6000_xcoff_asm_globalize_label (FILE *, const char *);
static tree rs6000_builtin_conversion (enum tree_code, tree);
static void def_builtin (int, const char *, tree, int);
-static bool rs6000_vector_alignment_reachable (tree, bool);
+static bool rs6000_vector_alignment_reachable (const_tree, bool);
static void rs6000_init_builtins (void);
static rtx rs6000_expand_unop_builtin (enum insn_code, tree, rtx);
static rtx rs6000_expand_binop_builtin (enum insn_code, tree, rtx);
static void is_altivec_return_reg (rtx, void *);
static rtx generate_set_vrsave (rtx, rs6000_stack_t *, int);
int easy_vector_constant (rtx, enum machine_mode);
-static bool rs6000_is_opaque_type (tree);
+static bool rs6000_is_opaque_type (const_tree);
static rtx rs6000_dwarf_register_span (rtx);
static void rs6000_init_dwarf_reg_sizes_extra (tree);
static rtx rs6000_legitimize_tls_address (rtx, enum tls_model);
const_tree, bool);
static int rs6000_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode,
tree, bool);
-static const char *invalid_arg_for_unprototyped_fn (tree, tree, tree);
+static const char *invalid_arg_for_unprototyped_fn (const_tree, const_tree, const_tree);
#if TARGET_MACHO
static void macho_branch_islands (void);
static int no_previous_def (tree function_name);
#define TARGET_ASM_OUTPUT_MI_THUNK rs6000_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
#define TARGET_FUNCTION_OK_FOR_SIBCALL rs6000_function_ok_for_sibcall
#undef TARGET_PRETEND_OUTGOING_VARARGS_NAMED
#define TARGET_PRETEND_OUTGOING_VARARGS_NAMED hook_bool_CUMULATIVE_ARGS_true
#undef TARGET_SPLIT_COMPLEX_ARG
-#define TARGET_SPLIT_COMPLEX_ARG hook_bool_tree_true
+#define TARGET_SPLIT_COMPLEX_ARG hook_bool_const_tree_true
#undef TARGET_MUST_PASS_IN_STACK
#define TARGET_MUST_PASS_IN_STACK rs6000_must_pass_in_stack
#undef TARGET_PASS_BY_REFERENCE
how may iterations are required to reach desired alignment. */
static bool
-rs6000_vector_alignment_reachable (tree type ATTRIBUTE_UNUSED, bool is_packed)
+rs6000_vector_alignment_reachable (const_tree type ATTRIBUTE_UNUSED, bool is_packed)
{
if (is_packed)
return false;
PowerPC uses the COUNT register for branch on table instructions. */
static const char *
-rs6000_invalid_within_doloop (rtx insn)
+rs6000_invalid_within_doloop (const_rtx insn)
{
if (CALL_P (insn))
return "Function call in the loop.";
elements; we must teach the compiler how to mangle them. */
static const char *
-rs6000_mangle_type (tree type)
+rs6000_mangle_type (const_tree type)
{
type = TYPE_MAIN_VARIANT (type);
}
static bool
-rs6000_ms_bitfield_layout_p (tree record_type)
+rs6000_ms_bitfield_layout_p (const_tree record_type)
{
return (TARGET_USE_MS_BITFIELD_LAYOUT &&
!lookup_attribute ("gcc_struct", TYPE_ATTRIBUTES (record_type)))
}
bool
-rs6000_elf_in_small_data_p (tree decl)
+rs6000_elf_in_small_data_p (const_tree decl)
{
if (rs6000_sdata == SDATA_NONE)
return false;
/* Implement TARGET_USE_BLOCKS_FOR_CONSTANT_P. */
static bool
-rs6000_use_blocks_for_constant_p (enum machine_mode mode, rtx x)
+rs6000_use_blocks_for_constant_p (enum machine_mode mode, const_rtx x)
{
return !ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (x, mode);
}
/* Return true if TYPE is a SPE or AltiVec opaque type. */
static bool
-rs6000_is_opaque_type (tree type)
+rs6000_is_opaque_type (const_tree type)
{
return (type == opaque_V2SI_type_node
|| type == opaque_V2SF_type_node
/* Target hook for invalid_arg_for_unprototyped_fn. */
static const char *
-invalid_arg_for_unprototyped_fn (tree typelist, tree funcdecl, tree val)
+invalid_arg_for_unprototyped_fn (const_tree typelist, const_tree funcdecl, const_tree val)
{
return (!rs6000_darwin64_abi
&& typelist == 0
/* Implement TARGET_MANGLE_TYPE. */
static const char *
-s390_mangle_type (tree type)
+s390_mangle_type (const_tree type)
{
if (TYPE_MAIN_VARIANT (type) == long_double_type_node
&& TARGET_LONG_DOUBLE_128)
#undef TARGET_ASM_OUTPUT_MI_THUNK
#define TARGET_ASM_OUTPUT_MI_THUNK s390_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_SCHED_ADJUST_PRIORITY
#define TARGET_SCHED_ADJUST_PRIORITY s390_adjust_priority
#define TARGET_CC_MODES_COMPATIBLE s390_cc_modes_compatible
#undef TARGET_INVALID_WITHIN_DOLOOP
-#define TARGET_INVALID_WITHIN_DOLOOP hook_constcharptr_rtx_null
+#define TARGET_INVALID_WITHIN_DOLOOP hook_constcharptr_const_rtx_null
#ifdef HAVE_AS_TLS
#undef TARGET_ASM_OUTPUT_DWARF_DTPREL
#define TARGET_ASM_OUTPUT_MI_THUNK th_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_PROMOTE_FUNCTION_ARGS
#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_const_tree_true
/* Implement TARGET_IN_SMALL_DATA_P. */
static bool
-th_in_small_data_p (tree decl)
+th_in_small_data_p (const_tree decl)
{
HOST_WIDE_INT size;
static bool sh_cannot_modify_jumps_p (void);
static int sh_target_reg_class (void);
static bool sh_optimize_target_register_callee_saved (bool);
-static bool sh_ms_bitfield_layout_p (tree);
+static bool sh_ms_bitfield_layout_p (const_tree);
static void sh_init_builtins (void);
static void sh_media_init_builtins (void);
const_tree, bool);
static int sh_arg_partial_bytes (CUMULATIVE_ARGS *, enum machine_mode,
tree, bool);
-static int sh_dwarf_calling_convention (tree);
+static int sh_dwarf_calling_convention (const_tree);
\f
/* Initialize the GCC target structure. */
#define TARGET_ASM_OUTPUT_MI_THUNK sh_output_mi_thunk
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_true
#undef TARGET_ASM_FILE_START
#define TARGET_ASM_FILE_START sh_file_start
}
static bool
-sh_ms_bitfield_layout_p (tree record_type ATTRIBUTE_UNUSED)
+sh_ms_bitfield_layout_p (const_tree record_type ATTRIBUTE_UNUSED)
{
return (TARGET_SH5 || TARGET_HITACHI || sh_attr_renesas_p (record_type));
}
/* Implements target hook dwarf_calling_convention. Return an enum
of dwarf_calling_convention. */
int
-sh_dwarf_calling_convention (tree func)
+sh_dwarf_calling_convention (const_tree func)
{
if (sh_attr_renesas_p (func))
return DW_CC_GNU_renesas_sh;
static tree sparc_handle_vis_mul8x16 (int, tree, tree, tree);
static void sparc_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
HOST_WIDE_INT, tree);
-static bool sparc_can_output_mi_thunk (tree, HOST_WIDE_INT,
- HOST_WIDE_INT, tree);
+static bool sparc_can_output_mi_thunk (const_tree, HOST_WIDE_INT,
+ HOST_WIDE_INT, const_tree);
static struct machine_function * sparc_init_machine_status (void);
static bool sparc_cannot_force_const_mem (rtx);
static rtx sparc_tls_get_addr (void);
static void sparc_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
static void sparc_file_end (void);
#ifdef TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
-static const char *sparc_mangle_type (tree);
+static const char *sparc_mangle_type (const_tree);
#endif
#ifdef SUBTARGET_ATTRIBUTE_TABLE
const struct attribute_spec sparc_attribute_table[];
assembler code for the thunk function specified by the arguments
it is passed, and false otherwise. */
static bool
-sparc_can_output_mi_thunk (tree thunk_fndecl ATTRIBUTE_UNUSED,
+sparc_can_output_mi_thunk (const_tree thunk_fndecl ATTRIBUTE_UNUSED,
HOST_WIDE_INT delta ATTRIBUTE_UNUSED,
HOST_WIDE_INT vcall_offset,
- tree function ATTRIBUTE_UNUSED)
+ const_tree function ATTRIBUTE_UNUSED)
{
/* Bound the loop used in the default method above. */
return (vcall_offset >= -32768 || ! fixed_regs[5]);
/* Implement TARGET_MANGLE_TYPE. */
static const char *
-sparc_mangle_type (tree type)
+sparc_mangle_type (const_tree type)
{
if (!TARGET_64BIT
&& TYPE_MAIN_VARIANT (type) == long_double_type_node
static tree spu_builtin_mul_widen_odd (tree);
static tree spu_builtin_mask_for_load (void);
static int spu_builtin_vectorization_cost (bool);
-static bool spu_vector_alignment_reachable (tree, bool);
+static bool spu_vector_alignment_reachable (const_tree, bool);
extern const char *reg_names[];
rtx spu_compare_op0, spu_compare_op1;
how may iterations are required to reach desired alignment. */
static bool
-spu_vector_alignment_reachable (tree type ATTRIBUTE_UNUSED, bool is_packed)
+spu_vector_alignment_reachable (const_tree type ATTRIBUTE_UNUSED, bool is_packed)
{
if (is_packed)
return false;
#undef TARGET_RETURN_IN_MEMORY
#define TARGET_RETURN_IN_MEMORY xtensa_return_in_memory
#undef TARGET_SPLIT_COMPLEX_ARG
-#define TARGET_SPLIT_COMPLEX_ARG hook_bool_tree_true
+#define TARGET_SPLIT_COMPLEX_ARG hook_bool_const_tree_true
#undef TARGET_MUST_PASS_IN_STACK
#define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size
static hashval_t
const_fixed_htab_hash (const void *x)
{
- rtx value = (rtx) x;
+ const_rtx const value = (const_rtx) x;
hashval_t h;
h = fixed_hash (CONST_FIXED_VALUE (value));
static int
const_fixed_htab_eq (const void *x, const void *y)
{
- rtx a = (rtx)x, b = (rtx)y;
+ const_rtx const a = (const_rtx) x, b = (const_rtx) y;
if (GET_MODE (a) != GET_MODE (b))
return 0;
/* Generic hook that takes (enum machine_mode, rtx) and returns false. */
bool
-hook_bool_mode_rtx_false (enum machine_mode mode ATTRIBUTE_UNUSED,
- rtx value ATTRIBUTE_UNUSED)
+hook_bool_mode_const_rtx_false (enum machine_mode mode ATTRIBUTE_UNUSED,
+ const_rtx value ATTRIBUTE_UNUSED)
{
return false;
}
/* Generic hook that takes (enum machine_mode, rtx) and returns true. */
bool
-hook_bool_mode_rtx_true (enum machine_mode mode ATTRIBUTE_UNUSED,
- rtx value ATTRIBUTE_UNUSED)
+hook_bool_mode_const_rtx_true (enum machine_mode mode ATTRIBUTE_UNUSED,
+ const_rtx value ATTRIBUTE_UNUSED)
{
return true;
}
/* Used for the TARGET_ASM_CAN_OUTPUT_MI_THUNK hook. */
bool
-hook_bool_tree_hwi_hwi_tree_false (tree a ATTRIBUTE_UNUSED,
- HOST_WIDE_INT b ATTRIBUTE_UNUSED,
- HOST_WIDE_INT c ATTRIBUTE_UNUSED,
- tree d ATTRIBUTE_UNUSED)
+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)
{
return false;
}
bool
-hook_bool_tree_hwi_hwi_tree_true (tree a ATTRIBUTE_UNUSED,
- HOST_WIDE_INT b ATTRIBUTE_UNUSED,
- HOST_WIDE_INT c ATTRIBUTE_UNUSED,
- tree d ATTRIBUTE_UNUSED)
+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)
{
return true;
}
}
bool
-default_can_output_mi_thunk_no_vcall (tree a ATTRIBUTE_UNUSED,
+default_can_output_mi_thunk_no_vcall (const_tree a ATTRIBUTE_UNUSED,
HOST_WIDE_INT b ATTRIBUTE_UNUSED,
HOST_WIDE_INT c,
- tree d ATTRIBUTE_UNUSED)
+ const_tree d ATTRIBUTE_UNUSED)
{
return c == 0;
}
int
-hook_int_tree_0 (tree a ATTRIBUTE_UNUSED)
+hook_int_const_tree_0 (const_tree a ATTRIBUTE_UNUSED)
{
return 0;
}
/* ??? Used for comp_type_attributes, which ought to return bool. */
int
-hook_int_tree_tree_1 (tree a ATTRIBUTE_UNUSED, tree b ATTRIBUTE_UNUSED)
+hook_int_const_tree_const_tree_1 (const_tree a ATTRIBUTE_UNUSED, const_tree b ATTRIBUTE_UNUSED)
{
return 1;
}
/* Generic hook that takes a tree and returns a NULL string. */
const char *
-hook_constcharptr_tree_null (tree t ATTRIBUTE_UNUSED)
+hook_constcharptr_const_tree_null (const_tree t ATTRIBUTE_UNUSED)
{
return NULL;
}
/* Generic hook that takes a rtx and returns a NULL string. */
const char *
-hook_constcharptr_rtx_null (rtx r ATTRIBUTE_UNUSED)
+hook_constcharptr_const_rtx_null (const_rtx r ATTRIBUTE_UNUSED)
{
return NULL;
}
const char *
-hook_constcharptr_tree_tree_null (tree t0 ATTRIBUTE_UNUSED,
- tree t1 ATTRIBUTE_UNUSED)
+hook_constcharptr_const_tree_const_tree_null (const_tree t0 ATTRIBUTE_UNUSED,
+ const_tree t1 ATTRIBUTE_UNUSED)
{
return NULL;
}
const char *
-hook_constcharptr_int_tree_null (int i ATTRIBUTE_UNUSED,
- tree t0 ATTRIBUTE_UNUSED)
+hook_constcharptr_int_const_tree_null (int i ATTRIBUTE_UNUSED,
+ const_tree t0 ATTRIBUTE_UNUSED)
{
return NULL;
}
const char *
-hook_constcharptr_int_tree_tree_null (int i ATTRIBUTE_UNUSED,
- tree t0 ATTRIBUTE_UNUSED,
- tree t1 ATTRIBUTE_UNUSED)
+hook_constcharptr_int_const_tree_const_tree_null (int i ATTRIBUTE_UNUSED,
+ const_tree t0 ATTRIBUTE_UNUSED,
+ const_tree t1 ATTRIBUTE_UNUSED)
{
return NULL;
}
extern bool hook_bool_void_true (void);
extern bool hook_bool_bool_false (bool);
extern bool hook_bool_mode_false (enum machine_mode);
-extern bool hook_bool_mode_rtx_false (enum machine_mode, rtx);
-extern bool hook_bool_mode_rtx_true (enum machine_mode, rtx);
+extern bool hook_bool_mode_const_rtx_false (enum machine_mode, const_rtx);
+extern bool hook_bool_mode_const_rtx_true (enum machine_mode, const_rtx);
extern bool hook_bool_tree_false (tree);
extern bool hook_bool_const_tree_false (const_tree);
extern bool hook_bool_tree_true (tree);
extern bool hook_bool_const_tree_true (const_tree);
-extern bool hook_bool_tree_hwi_hwi_tree_false (tree, HOST_WIDE_INT, HOST_WIDE_INT,
- tree);
-extern bool hook_bool_tree_hwi_hwi_tree_true (tree, HOST_WIDE_INT, HOST_WIDE_INT,
- tree);
+extern bool hook_bool_const_tree_hwi_hwi_const_tree_false (const_tree,
+ HOST_WIDE_INT,
+ HOST_WIDE_INT,
+ const_tree);
+extern bool hook_bool_const_tree_hwi_hwi_const_tree_true (const_tree,
+ HOST_WIDE_INT,
+ HOST_WIDE_INT,
+ const_tree);
extern bool hook_bool_rtx_false (rtx);
extern bool hook_bool_uintp_uintp_false (unsigned int *, unsigned int *);
extern bool hook_bool_rtx_int_int_intp_false (rtx, int, int, int *);
extern void hook_void_tree (tree);
extern void hook_void_tree_treeptr (tree, tree *);
-extern int hook_int_tree_0 (tree);
-extern int hook_int_tree_tree_1 (tree, tree);
+extern int hook_int_const_tree_0 (const_tree);
+extern int hook_int_const_tree_const_tree_1 (const_tree, const_tree);
extern int hook_int_rtx_0 (rtx);
extern int hook_int_size_t_constcharptr_int_0 (size_t, const char *, int);
extern int hook_int_void_no_regs (void);
extern unsigned hook_uint_uint_constcharptrptr_0 (unsigned, const char **);
-extern bool default_can_output_mi_thunk_no_vcall (tree, HOST_WIDE_INT,
- HOST_WIDE_INT, tree);
+extern bool default_can_output_mi_thunk_no_vcall (const_tree, HOST_WIDE_INT,
+ HOST_WIDE_INT, const_tree);
extern rtx hook_rtx_rtx_identity (rtx);
extern rtx hook_rtx_rtx_null (rtx);
extern rtx hook_rtx_tree_int_null (tree, int);
-extern const char *hook_constcharptr_tree_null (tree);
-extern const char *hook_constcharptr_rtx_null (rtx);
-extern const char *hook_constcharptr_tree_tree_null (tree, tree);
-extern const char *hook_constcharptr_int_tree_null (int, tree);
-extern const char *hook_constcharptr_int_tree_tree_null (int, tree, tree);
+extern const char *hook_constcharptr_const_tree_null (const_tree);
+extern const char *hook_constcharptr_const_rtx_null (const_rtx);
+extern const char *hook_constcharptr_const_tree_const_tree_null (const_tree, const_tree);
+extern const char *hook_constcharptr_int_const_tree_null (int, const_tree);
+extern const char *hook_constcharptr_int_const_tree_const_tree_null (int, const_tree, const_tree);
#endif
/* Return false if the function FNDECL cannot be inlined on account of its
attributes, true otherwise. */
bool
-function_attribute_inlinable_p (tree fndecl)
+function_attribute_inlinable_p (const_tree fndecl)
{
if (targetm.attribute_table)
{
- tree a;
+ const_tree a;
for (a = DECL_ATTRIBUTES (fndecl); a; a = TREE_CHAIN (a))
{
- tree name = TREE_PURPOSE (a);
+ const_tree name = TREE_PURPOSE (a);
int i;
for (i = 0; targetm.attribute_table[i].name != NULL; i++)
/* Check whether there's any attribute in a function declaration that
makes the function uninlinable. Returns false if it finds any,
true otherwise. */
-extern bool function_attribute_inlinable_p (tree);
+extern bool function_attribute_inlinable_p (const_tree);
reversed. */
int
-rtx_renumbered_equal_p (rtx x, rtx y)
+rtx_renumbered_equal_p (const_rtx x, const_rtx y)
{
int i;
const enum rtx_code code = GET_CODE (x);
/* Decide whether DECL needs to be in a writable section.
RELOC is the same as for SELECT_SECTION. */
-extern bool decl_readonly_section (tree, int);
+extern bool decl_readonly_section (const_tree, int);
/* This can be used to compute RELOC for the function above, when
given a constant expression. */
extern bool have_global_bss_p (void);
extern void default_no_named_section (const char *, unsigned int, tree);
extern void default_elf_asm_named_section (const char *, unsigned int, tree);
-extern enum section_category categorize_decl_for_section (tree, int);
+extern enum section_category categorize_decl_for_section (const_tree, int);
extern void default_coff_asm_named_section (const char *, unsigned int, tree);
extern void default_pe_asm_named_section (const char *, unsigned int, tree);
extern void default_encode_section_info (tree, rtx, int);
extern const char *default_strip_name_encoding (const char *);
extern void default_asm_output_anchor (rtx);
-extern bool default_use_anchors_for_symbol_p (rtx);
-extern bool default_binds_local_p (tree);
-extern bool default_binds_local_p_1 (tree, int);
+extern bool default_use_anchors_for_symbol_p (const_rtx);
+extern bool default_binds_local_p (const_tree);
+extern bool default_binds_local_p_1 (const_tree, int);
extern void default_globalize_label (FILE *, const char *);
extern void default_globalize_decl_name (FILE *, tree);
extern void default_emit_unwind_label (FILE *, tree, int, int);
extern int sets_cc0_p (const_rtx);
extern int invert_jump_1 (rtx, rtx);
extern int invert_jump (rtx, rtx, int);
-extern int rtx_renumbered_equal_p (rtx, rtx);
+extern int rtx_renumbered_equal_p (const_rtx, const_rtx);
extern int true_regnum (const_rtx);
extern unsigned int reg_or_subregno (const_rtx);
extern int redirect_jump_1 (rtx, rtx);
/* In varasm.c */
extern void init_varasm_once (void);
-extern enum tls_model decl_default_tls_model (tree);
+extern enum tls_model decl_default_tls_model (const_tree);
/* In rtl.c */
extern void traverse_md_constants (int (*) (void **, void *), void *);
#endif
#define TARGET_ASM_OUTPUT_MI_THUNK NULL
-#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_false
+#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_const_tree_hwi_hwi_const_tree_false
#if !defined(TARGET_HAVE_CTORS_DTORS)
# if defined(TARGET_ASM_CONSTRUCTOR) && defined(TARGET_ASM_DESTRUCTOR)
#endif
#ifndef TARGET_VALID_DLLIMPORT_ATTRIBUTE_P
-#define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P hook_bool_tree_true
+#define TARGET_VALID_DLLIMPORT_ATTRIBUTE_P hook_bool_const_tree_true
#endif
#ifndef TARGET_HAVE_TLS
#endif
#ifndef TARGET_VECTOR_OPAQUE_P
-#define TARGET_VECTOR_OPAQUE_P hook_bool_tree_false
+#define TARGET_VECTOR_OPAQUE_P hook_bool_const_tree_false
#endif
/* In hooks.c. */
#define TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED hook_bool_bool_false
#define TARGET_CANNOT_FORCE_CONST_MEM hook_bool_rtx_false
#define TARGET_CANNOT_COPY_INSN_P NULL
-#define TARGET_COMMUTATIVE_P hook_bool_rtx_commutative_p
+#define TARGET_COMMUTATIVE_P hook_bool_const_rtx_commutative_p
#define TARGET_DELEGITIMIZE_ADDRESS hook_rtx_rtx_identity
-#define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_rtx_false
+#define TARGET_USE_BLOCKS_FOR_CONSTANT_P hook_bool_mode_const_rtx_false
#define TARGET_MIN_ANCHOR_OFFSET 0
#define TARGET_MAX_ANCHOR_OFFSET 0
#define TARGET_USE_ANCHORS_FOR_SYMBOL_P default_use_anchors_for_symbol_p
#define TARGET_FUNCTION_OK_FOR_SIBCALL hook_bool_tree_tree_false
-#define TARGET_COMP_TYPE_ATTRIBUTES hook_int_tree_tree_1
+#define TARGET_COMP_TYPE_ATTRIBUTES hook_int_const_tree_const_tree_1
#ifndef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
#define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES hook_void_tree
#endif
#define TARGET_INSERT_ATTRIBUTES hook_void_tree_treeptr
-#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_tree_false
-#define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_tree_false
+#define TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P hook_bool_const_tree_false
+#define TARGET_MS_BITFIELD_LAYOUT_P hook_bool_const_tree_false
#define TARGET_ALIGN_ANON_BITFIELD hook_bool_void_false
#define TARGET_NARROW_VOLATILE_BITFIELD hook_bool_void_false
#define TARGET_RTX_COSTS hook_bool_rtx_int_int_intp_false
-#define TARGET_MANGLE_TYPE hook_constcharptr_tree_null
+#define TARGET_MANGLE_TYPE hook_constcharptr_const_tree_null
#define TARGET_ALLOCATE_INITIAL_VALUE NULL
#ifndef TARGET_INIT_LIBFUNCS
#endif
#ifndef TARGET_IN_SMALL_DATA_P
-#define TARGET_IN_SMALL_DATA_P hook_bool_tree_false
+#define TARGET_IN_SMALL_DATA_P hook_bool_const_tree_false
#endif
#ifndef TARGET_MANGLE_DECL_ASSEMBLER_NAME
#define TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN hook_invalid_arg_for_unprototyped_fn
#endif
-#define TARGET_INVALID_CONVERSION hook_constcharptr_tree_tree_null
-#define TARGET_INVALID_UNARY_OP hook_constcharptr_int_tree_null
-#define TARGET_INVALID_BINARY_OP hook_constcharptr_int_tree_tree_null
+#define TARGET_INVALID_CONVERSION hook_constcharptr_const_tree_const_tree_null
+#define TARGET_INVALID_UNARY_OP hook_constcharptr_int_const_tree_null
+#define TARGET_INVALID_BINARY_OP hook_constcharptr_int_const_tree_const_tree_null
#define TARGET_FIXED_CONDITION_CODE_REGS hook_bool_uintp_uintp_false
#define TARGET_MD_ASM_CLOBBERS hook_tree_tree_tree_tree_3rd_identity
-#define TARGET_DWARF_CALLING_CONVENTION hook_int_tree_0
+#define TARGET_DWARF_CALLING_CONVENTION hook_int_const_tree_0
#define TARGET_DWARF_HANDLE_FRAME_UNSPEC 0
too much undo-able setup involved in invoking output_mi_thunk.
Could be fixed by making output_mi_thunk emit rtl instead of
text to the output file. */
- bool (* can_output_mi_thunk) (tree thunk_decl, HOST_WIDE_INT delta,
+ bool (* can_output_mi_thunk) (const_tree thunk_decl, HOST_WIDE_INT delta,
HOST_WIDE_INT vcall_offset,
- tree function_decl);
+ const_tree function_decl);
/* Output any boilerplate text needed at the beginning of a
translation unit. */
by the insn scheduler. It should return true if the check instruction
corresponding to the instruction passed as the parameter needs a
recovery block. */
- bool (* needs_block_p) (rtx);
+ bool (* needs_block_p) (const_rtx);
/* The following member value is a pointer to a function called
by the insn scheduler. It should return a pattern for the check
passed as the parameter, the insn will not be chosen to be
issued. This hook is used to discard speculative instructions,
that stand at the first position of the ready list. */
- bool (* first_cycle_multipass_dfa_lookahead_guard_spec) (rtx);
+ bool (* first_cycle_multipass_dfa_lookahead_guard_spec) (const_rtx);
/* The following member value is a pointer to a function that provides
information about the speculation capabilities of the target.
/* Return true if vector alignment is reachable (by peeling N
iterations) for the given type. */
- bool (* vector_alignment_reachable) (tree, bool);
+ bool (* vector_alignment_reachable) (const_tree, bool);
} vectorize;
/* The initial value of target_flags. */
/* Return zero if the attributes on TYPE1 and TYPE2 are incompatible,
one if they are compatible and two if they are nearly compatible
(which causes a warning to be generated). */
- int (* comp_type_attributes) (tree type1, tree type2);
+ int (* comp_type_attributes) (const_tree type1, const_tree type2);
/* Assign default attributes to the newly defined TYPE. */
void (* set_default_type_attributes) (tree type);
/* Return true if FNDECL (which has at least one machine attribute)
can be inlined despite its machine attributes, false otherwise. */
- bool (* function_attribute_inlinable_p) (tree fndecl);
+ bool (* function_attribute_inlinable_p) (const_tree fndecl);
/* Return true if bitfields in RECORD_TYPE should follow the
Microsoft Visual C++ bitfield layout rules. */
- bool (* ms_bitfield_layout_p) (tree record_type);
+ bool (* ms_bitfield_layout_p) (const_tree record_type);
/* True if the target supports decimal floating point. */
bool (* decimal_float_supported_p) (void);
/* For a vendor-specific TYPE, return a pointer to a statically-allocated
string containing the C++ mangling for TYPE. In all other cases, return
NULL. */
- const char * (* mangle_type) (tree type);
+ const char * (* mangle_type) (const_tree type);
/* Make any adjustments to libfunc names needed for this target. */
void (* init_libfuncs) (void);
bool (* cannot_copy_insn_p) (rtx);
/* True if X is considered to be commutative. */
- bool (* commutative_p) (rtx, int);
+ bool (* commutative_p) (const_rtx, int);
/* Given an address RTX, undo the effects of LEGITIMIZE_ADDRESS. */
rtx (* delegitimize_address) (rtx);
/* True if the given constant can be put into an object_block. */
- bool (* use_blocks_for_constant_p) (enum machine_mode, rtx);
+ bool (* use_blocks_for_constant_p) (enum machine_mode, const_rtx);
/* The minimum and maximum byte offsets for anchored addresses. */
HOST_WIDE_INT min_anchor_offset;
HOST_WIDE_INT max_anchor_offset;
/* True if section anchors can be used to access the given symbol. */
- bool (* use_anchors_for_symbol_p) (rtx);
+ bool (* use_anchors_for_symbol_p) (const_rtx);
/* True if it is OK to do sibling call optimization for the specified
call expression EXP. DECL will be the called function, or NULL if
bool (*function_ok_for_sibcall) (tree decl, tree exp);
/* True if EXP should be placed in a "small data" section. */
- bool (* in_small_data_p) (tree);
+ bool (* in_small_data_p) (const_tree);
/* True if EXP names an object for which name resolution must resolve
to the current module. */
- bool (* binds_local_p) (tree);
+ bool (* binds_local_p) (const_tree);
/* Modify and return the identifier of a DECL's external name,
originally identified by ID, as required by the target,
bool (* vector_mode_supported_p) (enum machine_mode mode);
/* True if a vector is opaque. */
- bool (* vector_opaque_p) (tree);
+ bool (* vector_opaque_p) (const_tree);
/* Compute a (partial) cost for rtx X. Return true if the complete
cost has been computed, and false if subexpressions should be
enum dwarf_calling_convention, but because of forward declarations
and not wanting to include dwarf2.h everywhere target.h is included
the function is being declared as an int. */
- int (* dwarf_calling_convention) (tree);
+ int (* dwarf_calling_convention) (const_tree);
/* This target hook allows the backend to emit frame-related insns that
contain UNSPECs or UNSPEC_VOLATILEs. The call frame debugging info
from VA_ARG_EXPR. LHS is left hand side of MODIFY_EXPR, RHS
is right hand side. Returns true if the statements doesn't need
to be checked for va_list references. */
- bool (* stdarg_optimize_hook) (struct stdarg_info *ai, tree lhs, tree rhs);
+ bool (* stdarg_optimize_hook) (struct stdarg_info *ai, const_tree lhs, const_tree rhs);
/* This target hook allows the operating system to override the DECL
that represents the external variable that contains the stack
/* Returns NULL if target supports the insn within a doloop block,
otherwise it returns an error message. */
- const char * (*invalid_within_doloop) (rtx);
+ const char * (*invalid_within_doloop) (const_rtx);
/* DECL is a variable or function with __attribute__((dllimport))
specified. Use this hook if the target needs to add extra validation
checks to handle_dll_attribute (). */
- bool (* valid_dllimport_attribute_p) (tree decl);
+ bool (* valid_dllimport_attribute_p) (const_tree decl);
/* Functions relating to calls - argument passing, returns, etc. */
struct calls {
/* Given a complex type T, return true if a parameter of type T
should be passed as two scalars. */
- bool (* split_complex_arg) (tree type);
+ bool (* split_complex_arg) (const_tree type);
/* Return true if type T, mode MODE, may not be passed in registers,
but must be passed on the stack. */
/* Return the diagnostic message string if function without a prototype
is not allowed for this 'val' argument; NULL otherwise. */
- const char *(*invalid_arg_for_unprototyped_fn) (tree typelist,
- tree funcdecl, tree val);
+ const char *(*invalid_arg_for_unprototyped_fn) (const_tree typelist,
+ const_tree funcdecl,
+ const_tree val);
/* Return an rtx for the return value location of the function
specified by FN_DECL_OR_TYPE with a return type of RET_TYPE. */
/* Return the diagnostic message string if conversion from FROMTYPE
to TOTYPE is not allowed, NULL otherwise. */
- const char *(*invalid_conversion) (tree fromtype, tree totype);
+ const char *(*invalid_conversion) (const_tree fromtype, const_tree totype);
/* Return the diagnostic message string if the unary operation OP is
not permitted on TYPE, NULL otherwise. */
- const char *(*invalid_unary_op) (int op, tree type);
+ const char *(*invalid_unary_op) (int op, const_tree type);
/* Return the diagnostic message string if the binary operation OP
is not permitted on TYPE1 and TYPE2, NULL otherwise. */
- const char *(*invalid_binary_op) (int op, tree type1, tree type2);
+ const char *(*invalid_binary_op) (int op, const_tree type1, const_tree type2);
/* Return the class for a secondary reload, and fill in extra information. */
enum reg_class (*secondary_reload) (bool, rtx, enum reg_class,
these cases. */
const char *
-default_invalid_within_doloop (rtx insn)
+default_invalid_within_doloop (const_rtx insn)
{
if (CALL_P (insn))
return "Function call in loop.";
const char *
hook_invalid_arg_for_unprototyped_fn (
- tree typelist ATTRIBUTE_UNUSED,
- tree funcdecl ATTRIBUTE_UNUSED,
- tree val ATTRIBUTE_UNUSED)
+ const_tree typelist ATTRIBUTE_UNUSED,
+ const_tree funcdecl ATTRIBUTE_UNUSED,
+ const_tree val ATTRIBUTE_UNUSED)
{
return NULL;
}
}
bool
-hook_bool_rtx_commutative_p (rtx x, int outer_code ATTRIBUTE_UNUSED)
+hook_bool_const_rtx_commutative_p (const_rtx x,
+ int outer_code ATTRIBUTE_UNUSED)
{
return COMMUTATIVE_P (x);
}
}
bool
-default_builtin_vector_alignment_reachable (tree type, bool is_packed)
+default_builtin_vector_alignment_reachable (const_tree type, bool is_packed)
{
if (is_packed)
return false;
extern bool default_decimal_float_supported_p (void);
extern bool default_fixed_point_supported_p (void);
-extern const char * default_invalid_within_doloop (rtx);
+extern const char * default_invalid_within_doloop (const_rtx);
extern tree default_builtin_vectorized_function
(enum built_in_function, tree, tree);
extern tree default_builtin_reciprocal (enum built_in_function, bool, bool);
-extern bool default_builtin_vector_alignment_reachable (tree, bool);
+extern bool default_builtin_vector_alignment_reachable (const_tree, bool);
/* These are here, and not in hooks.[ch], because not all users of
hooks.h include tm.h, and thus we don't have CUMULATIVE_ARGS. */
extern int hook_int_CUMULATIVE_ARGS_mode_tree_bool_0
(CUMULATIVE_ARGS *, enum machine_mode, tree, bool);
extern const char *hook_invalid_arg_for_unprototyped_fn
- (tree, tree, tree);
-extern bool hook_bool_rtx_commutative_p (rtx, int);
+ (const_tree, const_tree, const_tree);
+extern bool hook_bool_const_rtx_commutative_p (const_rtx, int);
extern rtx default_function_value (const_tree, const_tree, bool);
extern rtx default_internal_arg_pointer (void);
extern enum reg_class default_secondary_reload (bool, rtx, enum reg_class,
/* Return true if DECL's initializer is suitable for a BSS section. */
static bool
-bss_initializer_p (tree decl)
+bss_initializer_p (const_tree decl)
{
return (DECL_INITIAL (decl) == NULL
|| DECL_INITIAL (decl) == error_mark_node
}
enum tls_model
-decl_default_tls_model (tree decl)
+decl_default_tls_model (const_tree decl)
{
enum tls_model kind;
bool is_local;
}
enum section_category
-categorize_decl_for_section (tree decl, int reloc)
+categorize_decl_for_section (const_tree decl, int reloc)
{
enum section_category ret;
}
bool
-decl_readonly_section (tree decl, int reloc)
+decl_readonly_section (const_tree decl, int reloc)
{
switch (categorize_decl_for_section (decl, reloc))
{
/* The default implementation of TARGET_USE_ANCHORS_FOR_SYMBOL_P. */
bool
-default_use_anchors_for_symbol_p (rtx symbol)
+default_use_anchors_for_symbol_p (const_rtx symbol)
{
section *sect;
tree decl;
wrt cross-module name binding. */
bool
-default_binds_local_p (tree exp)
+default_binds_local_p (const_tree exp)
{
return default_binds_local_p_1 (exp, flag_shlib);
}
bool
-default_binds_local_p_1 (tree exp, int shlib)
+default_binds_local_p_1 (const_tree exp, int shlib)
{
bool local_p;