Lines Matching refs:tree

1 /* Front-end tree definitions for GNU compiler.
36 /* Codes of tree nodes */
41 #include "tree.def"
52 /* Number of language-independent tree codes. */
75 /* Each tree code class has an associated string representation.
165 /* Returns nonzero iff CLASS is the tree-code class of an
189 /* Number of argument-words in each kind of tree-node. */
194 /* Names of tree components. */
199 DEF_VEC_P(tree);
200 DEF_VEC_ALLOC_P(tree,gc);
201 DEF_VEC_ALLOC_P(tree,heap);
270 extern GTY(()) tree built_in_decls[(int) END_BUILTINS];
271 extern GTY(()) tree implicit_built_in_decls[(int) END_BUILTINS];
335 /* The definition of tree nodes fills the next several pages. */
337 /* A tree node can represent a data type, a variable, an expression
346 As for the contents of a tree node: there are some fields
351 /* Every kind of tree node starts with this structure,
360 tree chain;
361 tree type;
550 Used in tree traversals to mark visited nodes.
570 /* Define accessors for the fields that all tree nodes have
573 /* The tree-code says what kind of node it is.
574 Codes are defined in tree.def. */
578 /* When checking is enabled, errors will be generated if a tree node
583 ({ const tree __t = (T); \
590 ({ const tree __t = (T); \
597 ({ const tree __t = (T); \
605 ({ const tree __t = (T); \
613 ({ const tree __t = (T); \
622 ({ const tree __t = (T); \
631 ({ const tree __t = (T); \
641 ({ const tree __t = (T); \
651 ({ const tree __t = (T); \
662 ({ const tree __t = (T); \
673 ({ const tree __t = (T); \
680 ({ const tree __t = (T); \
687 ({ const tree __t = (T); \
694 ({ const tree __t = (T); \
704 ({ const tree __t = (T); \
716 ({ const tree __t = (T); \
725 ({ const tree __t = (T); \
732 (*({const tree __t = (T); \
743 (*({const tree __t = t; \
754 (*({const tree __t = t; \
766 (*({const tree __t = EXPR_CHECK (T); \
774 (*({const tree __t = (T); \
785 ({const tree __t = (T); \
794 extern void tree_contains_struct_check_failed (const tree,
799 extern void tree_check_failed (const tree, const char *, int, const char *,
801 extern void tree_not_check_failed (const tree, const char *, int, const char *,
803 extern void tree_class_check_failed (const tree, const enum tree_code_class,
806 extern void tree_range_check_failed (const tree, const char *, int,
809 extern void tree_not_class_check_failed (const tree,
822 extern void omp_clause_check_failed (const tree, const char *, int,
825 extern void omp_clause_operand_check_failed (int, tree, const char *,
828 extern void omp_clause_range_check_failed (const tree, const char *, int,
863 #include "tree-check.h"
895 /* A simple hash function for an arbitrary tree node. This must not be
910 /* Given an expression as a tree, strip any NON_LVALUE_EXPRs and NOP_EXPRs
1023 /* Define many boolean fields that all tree nodes have. */
1298 manipulators defined in real.h. We don't want tree.h depending on
1330 tree real;
1331 tree imag;
1340 tree elements;
1346 /* Define fields and accessors for some special-purpose tree nodes. */
1359 ((tree) ((char *) (NODE) - sizeof (struct tree_common)))
1375 tree purpose;
1376 tree value;
1390 tree GTY ((length ("TREE_VEC_LENGTH ((tree)&%h)"))) a[1];
1431 tree index;
1432 tree value;
1560 /* VDEF_EXPR accessors are specified in tree-flow.h, along with the other
1692 tree block;
1693 tree GTY ((special ("tree_exp"),
1694 desc ("TREE_CODE ((tree) &%0)")))
1711 tree SSA, version numbers are not per variable and may be recycled. */
1746 tree GTY((skip(""))) stmt;
1747 tree *GTY((skip(""))) use;
1758 tree var;
1771 tree value_handle;
1782 optimizers, use the accessor macros found in tree-ssa-operands.h.
1784 select places where we *absolutely* must take the address of the tree. */
1806 tree def;
1812 tree result;
1821 struct phi_arg_d GTY ((length ("((tree)&%h)->phi.num_args"))) a[1];
1846 tree GTY ((length ("omp_clause_num_ops[OMP_CLAUSE_CODE ((tree)&%h)]"))) ops[1];
1912 tree vars;
1913 tree subblocks;
1914 tree supercontext;
1915 tree abstract_origin;
1916 tree fragment_origin;
1917 tree fragment_chain;
1924 /* See tree.def for documentation of the use of these fields.
1925 Look at the documentation of the various ..._TYPE tree codes.
1929 Each macro must check to ensure the tree node is of the proper kind of
2067 /* Used to keep track of visited nodes in tree traversals. This is set to
2121 tree values;
2122 tree size;
2123 tree size_unit;
2124 tree attributes;
2148 tree pointer_to;
2149 tree reference_to;
2156 tree name;
2157 tree minval;
2158 tree maxval;
2159 tree next_variant;
2160 tree main_variant;
2161 tree binfo;
2162 tree context;
2230 #define BINFO_N_BASE_BINFOS(NODE) (VEC_length (tree, BINFO_BASE_BINFOS (NODE)))
2234 (VEC_index (tree, BINFO_BASE_BINFOS (NODE), (N)))
2236 (VEC_iterate (tree, BINFO_BASE_BINFOS (NODE), (N), (B)))
2238 (VEC_quick_push (tree, BINFO_BASE_BINFOS (NODE), (T)))
2253 VEC_index (tree, BINFO_BASE_ACCESSES (NODE), (N))
2255 VEC_quick_push (tree, BINFO_BASE_ACCESSES (NODE), (T))
2276 tree offset;
2277 tree vtable;
2278 tree virtuals;
2279 tree vptr_field;
2280 VEC(tree,gc) *base_accesses;
2281 tree inheritance;
2283 tree vtt_subvtt;
2284 tree vtt_vptr;
2286 VEC(tree,none) base_binfos;
2358 tree name;
2359 tree context;
2404 tree parent_var;
2439 /* For a FUNCTION_DECL, holds the tree of BINDINGs.
2451 /* Holds the size of the datum, in bits, as a tree expression.
2572 tree size;
2615 tree size_unit;
2616 tree initial;
2617 tree attributes;
2618 tree abstract_origin;
2625 extern tree decl_value_expr_lookup (tree);
2626 extern void decl_value_expr_insert (tree, tree);
2650 /* Returns nonzero if NODE is a tree node that can contain RTL. */
2727 tree offset;
2728 tree bit_field_type;
2729 tree qualifier;
2730 tree bit_offset;
2731 tree fcontext;
2751 tree java_field_1;
2752 tree java_field_2;
2753 tree java_field_3;
2820 extern tree decl_restrict_base_lookup (tree);
2821 extern void decl_restrict_base_insert (tree, tree);
2907 tree assembler_name;
2908 tree section_name;
2951 extern tree decl_debug_expr_lookup (tree);
2952 extern void decl_debug_expr_insert (tree, tree);
2963 extern unsigned short decl_init_priority_lookup (tree);
2964 extern void decl_init_priority_insert (tree, unsigned short);
3011 tree saved_tree;
3013 tree arguments;
3015 tree result;
3017 tree vindex;
3158 Use the interface in tree-iterator.h to access this node. */
3170 tree stmt;
3190 /* Defined and used in tree-ssa-pre.c. */
3206 VEC (tree, gc) *vuses;
3210 /* Define the overall contents of a tree node.
3330 extern GTY(()) tree global_trees[TI_MAX];
3437 extern GTY(()) tree integer_types[itk_none];
3486 #define NULL_TREE (tree) NULL
3488 extern tree decl_assembler_name (tree);
3493 extern size_t tree_size (tree);
3495 /* Compute the number of bytes occupied by a tree with code CODE. This
3504 extern tree make_node_stat (enum tree_code MEM_STAT_DECL);
3509 extern tree copy_node_stat (tree MEM_STAT_DECL);
3514 extern tree copy_list (tree);
3517 extern tree make_tree_binfo_stat (unsigned MEM_STAT_DECL);
3522 extern tree make_tree_vec_stat (int MEM_STAT_DECL);
3529 extern void release_phi_node (tree);
3536 extern tree make_ssa_name (tree, tree);
3537 extern tree duplicate_ssa_name (tree, tree);
3538 extern void duplicate_ssa_name_ptr_info (tree, struct ptr_info_def *);
3539 extern void release_ssa_name (tree);
3540 extern void release_defs (tree);
3541 extern void replace_ssa_name_symbol (tree, tree);
3550 extern tree get_identifier (const char *);
3563 extern tree get_identifier_with_length (const char *, size_t);
3569 extern tree maybe_get_identifier (const char *);
3573 extern tree build_nt (enum tree_code, ...);
3575 extern tree build0_stat (enum tree_code, tree MEM_STAT_DECL);
3577 extern tree build1_stat (enum tree_code, tree, tree MEM_STAT_DECL);
3579 extern tree build2_stat (enum tree_code, tree, tree, tree MEM_STAT_DECL);
3581 extern tree build3_stat (enum tree_code, tree, tree, tree, tree MEM_STAT_DECL);
3583 extern tree build4_stat (enum tree_code, tree, tree, tree, tree,
3584 tree MEM_STAT_DECL);
3586 extern tree build5_stat (enum tree_code, tree, tree, tree, tree, tree,
3587 tree MEM_STAT_DECL);
3589 extern tree build7_stat (enum tree_code, tree, tree, tree, tree, tree,
3590 tree, tree, tree MEM_STAT_DECL);
3594 extern tree build_int_cst (tree, HOST_WIDE_INT);
3595 extern tree build_int_cst_type (tree, HOST_WIDE_INT);
3596 extern tree build_int_cstu (tree, unsigned HOST_WIDE_INT);
3597 extern tree build_int_cst_wide (tree, unsigned HOST_WIDE_INT, HOST_WIDE_INT);
3598 extern tree build_vector (tree, tree);
3599 extern tree build_vector_from_ctor (tree, VEC(constructor_elt,gc) *);
3600 extern tree build_constructor (tree, VEC(constructor_elt,gc) *);
3601 extern tree build_constructor_single (tree, tree, tree);
3602 extern tree build_constructor_from_list (tree, tree);
3603 extern tree build_real_from_int_cst (tree, tree);
3604 extern tree build_complex (tree, tree, tree);
3605 extern tree build_one_cst (tree);
3606 extern tree build_string (int, const char *);
3607 extern tree build_tree_list_stat (tree, tree MEM_STAT_DECL);
3609 extern tree build_decl_stat (enum tree_code, tree, tree MEM_STAT_DECL);
3610 extern tree build_fn_decl (const char *, tree);
3612 extern tree build_block (tree, tree, tree, tree);
3614 extern void annotate_with_file_line (tree, const char *, int);
3615 extern void annotate_with_locus (tree, location_t);
3617 extern tree build_empty_stmt (void);
3618 extern tree build_omp_clause (enum omp_clause_code);
3622 extern tree make_signed_type (int);
3623 extern tree make_unsigned_type (int);
3624 extern tree signed_type_for (tree);
3625 extern tree unsigned_type_for (tree);
3627 extern void set_sizetype (tree);
3628 extern void fixup_unsigned_type (tree);
3629 extern tree build_pointer_type_for_mode (tree, enum machine_mode, bool);
3630 extern tree build_pointer_type (tree);
3631 extern tree build_reference_type_for_mode (tree, enum machine_mode, bool);
3632 extern tree build_reference_type (tree);
3633 extern tree build_vector_type_for_mode (tree, enum machine_mode);
3634 extern tree build_vector_type (tree innertype, int nunits);
3635 extern tree build_type_no_quals (tree);
3636 extern tree build_index_type (tree);
3637 extern tree build_index_2_type (tree, tree);
3638 extern tree build_array_type (tree, tree);
3639 extern tree build_function_type (tree, tree);
3640 extern tree build_function_type_list (tree, ...);
3641 extern tree build_method_type_directly (tree, tree, tree);
3642 extern tree build_method_type (tree, tree);
3643 extern tree build_offset_type (tree, tree);
3644 extern tree build_complex_type (tree);
3645 extern tree build_resx (int);
3646 extern tree array_type_nelts (tree);
3647 extern bool in_array_bounds_p (tree);
3648 extern bool range_in_array_bounds_p (tree);
3650 extern tree value_member (tree, tree);
3651 extern tree purpose_member (tree, tree);
3653 extern int attribute_list_equal (tree, tree);
3654 extern int attribute_list_contained (tree, tree);
3655 extern int tree_int_cst_equal (tree, tree);
3656 extern int tree_int_cst_lt (tree, tree);
3657 extern int tree_int_cst_compare (tree, tree);
3658 extern int host_integerp (tree, int);
3659 extern HOST_WIDE_INT tree_low_cst (tree, int);
3660 extern int tree_int_cst_msb (tree);
3661 extern int tree_int_cst_sgn (tree);
3662 extern int tree_int_cst_sign_bit (tree);
3663 extern int tree_expr_nonnegative_p (tree);
3664 extern int tree_expr_nonnegative_warnv_p (tree, bool *);
3665 extern bool may_negate_without_overflow_p (tree);
3666 extern tree get_inner_array_type (tree);
3668 /* From expmed.c. Since rtl.h is included after tree.h, we can't
3670 tree.h had been included. */
3672 extern tree make_tree (tree, rtx);
3681 extern tree build_type_attribute_variant (tree, tree);
3682 extern tree build_decl_attribute_variant (tree, tree);
3725 tree (*const handler) (tree *node, tree name, tree args,
3756 extern tree merge_decl_attributes (tree, tree);
3757 extern tree merge_type_attributes (tree, tree);
3759 /* Given a tree node and a string, return nonzero if the tree node is
3762 extern int is_attribute_p (const char *, tree);
3767 extern tree lookup_attribute (const char *, tree);
3772 extern tree remove_attribute (const char *, tree);
3776 extern tree merge_attributes (tree, tree);
3781 extern tree merge_dllimport_decl_attributes (tree, tree);
3784 extern tree handle_dll_attribute (tree *, tree, tree, int, bool *);
3790 extern bool check_qualified_type (tree, tree, int);
3796 extern tree get_qualified_type (tree, int);
3801 extern tree build_qualified_type (tree, int);
3815 extern tree build_distinct_type_copy (tree);
3816 extern tree build_variant_type_copy (tree);
3821 extern void finish_builtin_struct (tree, const char *,
3822 tree, tree);
3828 extern void layout_type (tree);
3840 tree t;
3843 tree offset;
3847 tree bitpos;
3854 tree prev_field;
3857 tree pending_statics;
3866 extern record_layout_info start_record_layout (tree);
3867 extern tree bit_from_pos (tree, tree);
3868 extern tree byte_from_pos (tree, tree);
3869 extern void pos_from_bit (tree *, tree *, unsigned int, tree);
3870 extern void normalize_offset (tree *, tree *, unsigned int);
3871 extern tree rli_size_unit_so_far (record_layout_info);
3872 extern tree rli_size_so_far (record_layout_info);
3874 extern void place_field (record_layout_info, tree);
3875 extern void compute_record_mode (tree);
3883 extern tree type_hash_canon (unsigned int, tree);
3893 extern void layout_decl (tree, unsigned);
3898 extern void relayout_decl (tree);
3903 mode_for_size, but is passed a tree. */
3905 extern enum machine_mode mode_for_size_tree (tree, enum mode_class, int);
3909 extern tree non_lvalue (tree);
3911 extern tree convert (tree, tree);
3912 extern unsigned int expr_align (tree);
3913 extern tree expr_first (tree);
3914 extern tree expr_last (tree);
3915 extern tree expr_only (tree);
3916 extern tree size_in_bytes (tree);
3917 extern HOST_WIDE_INT int_size_in_bytes (tree);
3918 extern HOST_WIDE_INT max_int_size_in_bytes (tree);
3919 extern tree bit_position (tree);
3920 extern HOST_WIDE_INT int_bit_position (tree);
3921 extern tree byte_position (tree);
3922 extern HOST_WIDE_INT int_byte_position (tree);
3935 extern GTY(()) tree sizetype_tab[(int) TYPE_KIND_LAST];
3942 extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind);
3943 extern tree size_binop (enum tree_code, tree, tree);
3944 extern tree size_diffop (tree, tree);
3951 extern tree round_up (tree, int);
3952 extern tree round_down (tree, int);
3953 extern tree get_pending_sizes (void);
3954 extern void put_pending_size (tree);
3955 extern void put_pending_sizes (tree);
3973 extern tree chainon (tree, tree);
3977 extern tree tree_cons_stat (tree, tree, tree MEM_STAT_DECL);
3980 /* Return the last tree node in a chain. */
3982 extern tree tree_last (tree);
3986 extern tree nreverse (tree);
3991 extern int list_length (tree);
3995 extern int fields_length (tree);
4000 extern bool initializer_zerop (tree);
4013 extern bool categorize_ctor_elements (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
4016 extern HOST_WIDE_INT count_type_elements (tree, bool);
4018 /* integer_zerop (tree x) is nonzero if X is an integer constant of value 0. */
4020 extern int integer_zerop (tree);
4022 /* integer_onep (tree x) is nonzero if X is an integer constant of value 1. */
4024 extern int integer_onep (tree);
4026 /* integer_all_onesp (tree x) is nonzero if X is an integer constant
4029 extern int integer_all_onesp (tree);
4031 /* integer_pow2p (tree x) is nonzero is X is an integer constant with
4034 extern int integer_pow2p (tree);
4036 /* integer_nonzerop (tree x) is nonzero if X is an integer constant
4039 extern int integer_nonzerop (tree);
4041 extern bool zero_p (tree);
4042 extern bool cst_and_fits_in_hwi (tree);
4043 extern tree num_ending_zeros (tree);
4045 /* staticp (tree x) is nonzero if X is a reference to data allocated
4048 extern tree staticp (tree);
4054 extern tree save_expr (tree);
4059 extern tree skip_simple_arithmetic (tree);
4061 /* Return which tree structure is used by T. */
4063 enum tree_node_structure_enum tree_node_structure (tree);
4071 extern bool contains_placeholder_p (tree);
4083 extern bool type_contains_placeholder_p (tree);
4085 /* Given a tree EXP, a FIELD_DECL F, and a replacement value R,
4086 return a tree with all occurrences of references to F in a
4090 extern tree substitute_in_expr (tree, tree, tree);
4099 for it within OBJ, a tree that is an object or a chain of references. */
4101 extern tree substitute_placeholder_in_expr (tree, tree);
4116 extern tree variable_size (tree);
4122 extern tree stabilize_reference (tree);
4128 extern tree stabilize_reference_1 (tree);
4135 extern tree get_unwidened (tree, tree);
4142 extern tree get_narrower (tree, int *);
4148 extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
4149 tree *, enum machine_mode *, int *, int *,
4156 extern bool contains_packed_reference (tree exp);
4160 extern int handled_component_p (tree);
4162 /* Return a tree of sizetype representing the size, in bytes, of the element
4165 extern tree array_ref_element_size (tree);
4167 /* Return a tree representing the lower bound of the array mentioned in
4170 extern tree array_ref_low_bound (tree);
4172 /* Return a tree representing the upper bound of the array mentioned in
4175 extern tree array_ref_up_bound (tree);
4177 /* Return a tree representing the offset, in bytes, of the field referenced
4180 extern tree component_ref_field_offset (tree);
4185 extern tree get_containing_scope (tree);
4189 extern tree decl_function_context (tree);
4193 extern tree decl_type_context (tree);
4196 extern int real_zerop (tree);
4199 /* Declare commonly used variables for tree structure. */
4208 extern GTY(()) tree current_function_decl;
4214 /* In tree.c */
4217 extern tree get_file_function_name_long (const char *);
4218 extern tree get_callee_fndecl (tree);
4219 extern void change_decl_assembler_name (tree, tree);
4220 extern int type_num_arguments (tree);
4223 extern tree upper_bound_in_type (tree, tree);
4224 extern tree lower_bound_in_type (tree, tree);
4225 extern int operand_equal_for_phi_arg_p (tree, tree);
4226 extern bool empty_body_p (tree);
4231 extern void expand_expr_stmt (tree);
4232 extern int warn_if_unused_value (tree, location_t);
4233 extern void expand_label (tree);
4234 extern void expand_goto (tree);
4237 extern void expand_stack_restore (tree);
4238 extern void expand_return (tree);
4239 extern int is_body_block (tree);
4241 /* In tree-eh.c */
4256 extern tree fold (tree);
4257 extern tree fold_unary (enum tree_code, tree, tree);
4258 extern tree fold_binary (enum tree_code, tree, tree, tree);
4259 extern tree fold_ternary (enum tree_code, tree, tree, tree, tree);
4260 extern tree fold_build1_stat (enum tree_code, tree, tree MEM_STAT_DECL);
4262 extern tree fold_build2_stat (enum tree_code, tree, tree, tree MEM_STAT_DECL);
4264 extern tree fold_build3_stat (enum tree_code, tree, tree, tree, tree MEM_STAT_DECL);
4266 extern tree fold_build1_initializer (enum tree_code, tree, tree);
4267 extern tree fold_build2_initializer (enum tree_code, tree, tree, tree);
4268 extern tree fold_build3_initializer (enum tree_code, tree, tree, tree, tree);
4269 extern tree fold_convert (tree, tree);
4270 extern tree fold_single_bit_test (enum tree_code, tree, tree, tree);
4271 extern tree fold_ignored_result (tree);
4272 extern tree fold_abs_const (tree, tree);
4273 extern tree fold_indirect_ref_1 (tree, tree);
4275 extern void fold_undefer_overflow_warnings (bool, tree, int);
4279 extern tree force_fit_type (tree, int, bool, bool);
4320 extern int operand_equal_p (tree, tree, unsigned int);
4322 extern tree omit_one_operand (tree, tree, tree);
4323 extern tree omit_two_operands (tree, tree, tree, tree);
4324 extern tree invert_truthvalue (tree);
4325 extern tree fold_truth_not_expr (tree);
4326 extern tree fold_unary_to_constant (enum tree_code, tree, tree);
4327 extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree);
4328 extern tree fold_read_from_constant_string (tree);
4329 extern tree int_const_binop (enum tree_code, tree, tree, int);
4330 extern tree build_fold_addr_expr (tree);
4331 extern tree fold_build_cleanup_point_expr (tree type, tree expr);
4332 extern tree fold_strip_sign_ops (tree);
4333 extern tree build_fold_addr_expr_with_type (tree, tree);
4334 extern tree build_fold_indirect_ref (tree);
4335 extern tree fold_indirect_ref (tree);
4336 extern tree constant_boolean_node (int, tree);
4337 extern tree build_low_bits_mask (tree, unsigned);
4339 extern bool tree_swap_operands_p (tree, tree, bool);
4340 extern void swap_tree_operands (tree, tree *, tree *);
4343 extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *);
4346 extern bool tree_expr_nonzero_p (tree);
4347 extern bool tree_expr_nonzero_warnv_p (tree, bool *);
4350 extern tree fold_builtin (tree, tree, bool);
4351 extern tree fold_builtin_fputs (tree, bool, bool, tree);
4352 extern tree fold_builtin_strcpy (tree, tree, tree);
4353 extern tree fold_builtin_strncpy (tree, tree, tree);
4354 extern tree fold_builtin_memory_chk (tree, tree, tree, bool,
4356 extern tree fold_builtin_stxcpy_chk (tree, tree, tree, bool,
4358 extern tree fold_builtin_strncpy_chk (tree, tree);
4359 extern tree fold_builtin_snprintf_chk (tree, tree, enum built_in_function);
4360 extern bool fold_builtin_next_arg (tree);
4361 extern enum built_in_function builtin_mathfn_code (tree);
4362 extern tree build_function_call_expr (tree, tree);
4363 extern tree mathfn_built_in (tree, enum built_in_function fn);
4364 extern tree strip_float_extensions (tree);
4365 extern tree c_strlen (tree, int);
4366 extern tree std_gimplify_va_arg_expr (tree, tree, tree *, tree *);
4367 extern tree build_va_arg_indirect_ref (tree);
4368 tree build_string_literal (int, const char *);
4371 extern tree strip_float_extensions (tree);
4374 extern void record_component_aliases (tree);
4375 extern HOST_WIDE_INT get_alias_set (tree);
4378 extern int objects_must_conflict_p (tree, tree);
4380 /* In tree.c */
4381 extern int really_constant_p (tree);
4382 extern int int_fits_type_p (tree, tree);
4383 extern bool variably_modified_type_p (tree, tree);
4384 extern int tree_log2 (tree);
4385 extern int tree_floor_log2 (tree);
4386 extern int simple_cst_equal (tree, tree);
4387 extern hashval_t iterative_hash_expr (tree, hashval_t);
4388 extern int compare_tree_int (tree, unsigned HOST_WIDE_INT);
4389 extern int type_list_equal (tree, tree);
4390 extern int chain_member (tree, tree);
4391 extern tree type_hash_lookup (unsigned int, tree);
4392 extern void type_hash_add (unsigned int, tree);
4393 extern int simple_cst_list_equal (tree, tree);
4396 extern void expand_function_start (tree);
4399 extern void recompute_tree_invariant_for_addr_expr (tree);
4400 extern bool is_global_var (tree t);
4401 extern bool needs_to_live_in_memory (tree);
4402 extern tree reconstruct_complex_type (tree, tree);
4404 extern int real_onep (tree);
4405 extern int real_twop (tree);
4406 extern int real_minus_onep (tree);
4411 extern tree build_nonstandard_integer_type (unsigned HOST_WIDE_INT, int);
4412 extern tree build_range_type (tree, tree, tree);
4413 extern HOST_WIDE_INT int_cst_value (tree);
4414 extern tree tree_fold_gcd (tree, tree);
4415 extern tree build_addr (tree, tree);
4417 extern bool fields_compatible_p (tree, tree);
4418 extern tree find_compatible_field (tree, tree);
4425 extern void allocate_struct_function (tree);
4426 extern void init_function_start (tree);
4427 extern bool use_register_for_decl (tree);
4428 extern void setjmp_vars_warning (tree);
4435 extern int aggregate_value_p (tree, tree);
4438 extern void push_function_context_to (tree);
4439 extern void pop_function_context_from (tree);
4440 extern tree gimplify_parameters (void);
4447 /* In print-tree.c */
4448 extern void debug_tree (tree);
4451 extern void print_node (FILE *, const char *, tree, int);
4452 extern void print_node_brief (FILE *, const char *, tree, int);
4456 /* In tree-inline.c: */
4457 extern bool debug_find_tree (tree, tree);
4458 /* This is in tree-inline.c since the routine uses
4460 extern tree unsave_expr_now (tree);
4461 extern tree build_duplicate_type (tree);
4496 extern int flags_from_decl_or_type (tree);
4497 extern int call_expr_flags (tree);
4499 extern int setjmp_call_p (tree);
4500 extern bool alloca_call_p (tree);
4501 extern bool must_pass_in_stack_var_size (enum machine_mode, tree);
4502 extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, tree);
4511 from tree.h. Depending on these flags, some attributes may be
4514 extern tree decl_attributes (tree *, tree, int);
4517 extern void set_decl_abstract_flags (tree, int);
4518 extern void set_decl_origin_self (tree);
4521 extern void set_min_and_max_values_for_integral_type (tree, int, bool);
4522 extern void fixup_signed_type (tree);
4524 extern unsigned int update_alignment_for_field (record_layout_info, tree,
4527 extern void make_decl_rtl (tree);
4528 extern void make_decl_one_only (tree);
4530 extern void resolve_unique_section (tree, int, int);
4531 extern void mark_referenced (tree);
4532 extern void mark_decl_referenced (tree);
4533 extern void notice_global_symbol (tree);
4534 extern void set_user_assembler_name (tree, const char *);
4540 extern void expand_computed_goto (tree);
4545 extern void expand_asm_expr (tree);
4546 extern tree resolve_asm_operand_names (tree, tree, tree);
4547 extern void expand_case (tree);
4548 extern void expand_decl (tree);
4549 extern void expand_anon_union_decl (tree, tree, tree);
4552 extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
4556 extern tree create_artificial_label (void);
4557 extern void gimplify_function_tree (tree);
4558 extern const char *get_name (tree);
4559 extern tree unshare_expr (tree);
4560 extern void sort_case_labels (tree);
4564 extern tree get_file_function_name (int);
4602 /* In tree-inline.c */
4608 /* The type of a callback function for walking over tree structure. */
4610 typedef tree (*walk_tree_fn) (tree *, int *, void *);
4611 extern tree walk_tree (tree*, walk_tree_fn, void*, struct pointer_set_t*);
4612 extern tree walk_tree_without_duplicates (tree*, walk_tree_fn, void*);
4616 extern void set_decl_rtl (tree, rtx);
4617 extern void set_decl_incoming_rtl (tree, rtx);
4620 /* Enum and arrays used for tree allocation stats.
4621 Keep in sync with tree.c:tree_node_kind_names. */
4654 /* In tree-gimple.c. */
4655 extern tree get_base_address (tree t);
4657 /* In tree-vectorizer.c. */
4663 tree from;
4664 tree to;
4671 /* In tree-ssa-address.c. */
4672 extern tree tree_mem_ref_addr (tree, tree);
4673 extern void copy_mem_ref_info (tree, tree);
4675 /* In tree-vrp.c */
4676 extern bool ssa_name_nonzero_p (tree);
4677 extern bool ssa_name_nonnegative_p (tree);
4679 /* In tree-object-size.c. */
4682 extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int);
4685 extern unsigned HOST_WIDE_INT highest_pow2_factor (tree);