diff options
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 69 |
1 files changed, 34 insertions, 35 deletions
diff --git a/gcc/tree.h b/gcc/tree.h index d6550b51c50..cb4b369cd63 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -362,8 +362,8 @@ struct GTY(()) tree_base { unsigned protected_flag : 1; unsigned deprecated_flag : 1; unsigned saturating_flag : 1; - unsigned default_def_flag : 1; + unsigned default_def_flag : 1; unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1; unsigned lang_flag_2 : 1; @@ -371,6 +371,7 @@ struct GTY(()) tree_base { unsigned lang_flag_4 : 1; unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; + unsigned visited : 1; unsigned spare : 23; @@ -475,9 +476,6 @@ struct GTY(()) tree_common { CALL_EXPR_RETURN_SLOT_OPT in CALL_EXPR - DECL_BY_REFERENCE in - PARM_DECL, RESULT_DECL, VAR_DECL (only !TREE_STATIC) - OMP_SECTION_LAST in OMP_SECTION @@ -1294,10 +1292,12 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, #define CALL_EXPR_RETURN_SLOT_OPT(NODE) \ (CALL_EXPR_CHECK (NODE)->base.private_flag) -/* In a RESULT_DECL, PARM_DECL or VAR_DECL without TREE_STATIC, means that it is +/* In a RESULT_DECL, PARM_DECL and VAR_DECL, means that it is passed by invisible reference (and the TREE_TYPE is a pointer to the true type). */ -#define DECL_BY_REFERENCE(NODE) (DECL_COMMON_CHECK (NODE)->base.private_flag) +#define DECL_BY_REFERENCE(NODE) \ + (TREE_CHECK3 (NODE, VAR_DECL, PARM_DECL, \ + RESULT_DECL)->decl_common.decl_by_reference_flag) /* In a CALL_EXPR, means that the call is the jump from a thunk to the thunked-to function. */ @@ -1854,10 +1854,6 @@ struct GTY(()) tree_exp { #define SSA_NAME_PTR_INFO(N) \ SSA_NAME_CHECK (N)->ssa_name.ptr_info -/* Get the value of this SSA_NAME, if available. */ -#define SSA_NAME_VALUE(N) \ - SSA_NAME_CHECK (N)->ssa_name.value_handle - #ifndef _TREE_FLOW_H struct ptr_info_def; #endif @@ -1896,13 +1892,6 @@ struct GTY(()) tree_ssa_name { /* Pointer attributes used for alias analysis. */ struct ptr_info_def *ptr_info; - /* Value for SSA name used by various passes. - - Right now only invariants are allowed to persist beyond a pass in - this field; in the future we will allow VALUE_HANDLEs to persist - as well. */ - tree value_handle; - /* Immediate uses list for this SSA_NAME. */ struct ssa_use_operand_d imm_uses; }; @@ -2208,8 +2197,8 @@ extern enum machine_mode vector_type_mode (const_tree); #define SET_TYPE_VECTOR_SUBPARTS(VECTOR_TYPE, X) \ (VECTOR_TYPE_CHECK (VECTOR_TYPE)->type.precision = exact_log2 (X)) -/* Nonzero in an IDENTIFIER_NODE if the name is a local alias, whose - uses are to be substituted for uses of the TREE_CHAINed identifier. */ +/* Nonzero in a VECTOR_TYPE if the frontends should not emit warnings + about missing conversions to other vector types of the same size. */ #define TYPE_VECTOR_OPAQUE(NODE) \ (VECTOR_TYPE_CHECK (NODE)->base.deprecated_flag) @@ -2662,8 +2651,10 @@ struct GTY(()) tree_decl_common { unsigned gimple_reg_flag : 1; /* In a DECL with pointer type, set if no TBAA should be done. */ unsigned no_tbaa_flag : 1; + /* In VAR_DECL, PARM_DECL and RESULT_DECL, this is DECL_BY_REFERENCE. */ + unsigned decl_by_reference_flag : 1; /* Padding so that 'off_align' can be on a 32-bit boundary. */ - unsigned decl_common_unused : 2; + unsigned decl_common_unused : 1; /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs. */ unsigned int off_align : 8; @@ -4622,7 +4613,6 @@ extern unsigned crc32_string (unsigned, const char *); extern void clean_symbol_name (char *); extern tree get_file_function_name (const char *); extern tree get_callee_fndecl (const_tree); -extern void change_decl_assembler_name (tree, tree); extern int type_num_arguments (const_tree); extern bool associative_tree_code (enum tree_code); extern bool commutative_tree_code (enum tree_code); @@ -4637,6 +4627,10 @@ extern const char *get_name (tree); extern bool stdarg_p (tree); extern bool prototype_p (tree); extern bool auto_var_in_fn_p (const_tree, const_tree); +extern tree build_low_bits_mask (tree, unsigned); + +/* In cgraph.c */ +extern void change_decl_assembler_name (tree, tree); /* In gimplify.c */ extern tree unshare_expr (tree); @@ -4697,9 +4691,6 @@ extern void fold_defer_overflow_warnings (void); extern void fold_undefer_overflow_warnings (bool, const_gimple, int); extern void fold_undefer_and_ignore_overflow_warnings (void); extern bool fold_deferring_overflow_warnings_p (void); -extern tree maybe_fold_offset_to_reference (tree, tree, tree); -extern tree maybe_fold_offset_to_address (tree, tree, tree); -extern tree maybe_fold_stmt_addition (tree, tree, tree); extern tree force_fit_type_double (tree, unsigned HOST_WIDE_INT, HOST_WIDE_INT, int, bool); @@ -4762,7 +4753,6 @@ extern tree build_fold_addr_expr_with_type (tree, tree); extern tree build_fold_indirect_ref (tree); extern tree fold_indirect_ref (tree); extern tree constant_boolean_node (int, tree); -extern tree build_low_bits_mask (tree, unsigned); extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree); extern bool tree_swap_operands_p (const_tree, const_tree, bool); @@ -4789,6 +4779,7 @@ extern bool tree_expr_nonzero_warnv_p (tree, bool *); extern bool fold_real_zero_addition_p (const_tree, const_tree, int); extern tree combine_comparisons (enum tree_code, enum tree_code, enum tree_code, tree, tree, tree); +extern void debug_fold_checksum (const_tree); /* Return nonzero if CODE is a tree code that represents a truth value. */ static inline bool @@ -4816,10 +4807,8 @@ extern bool fold_builtin_next_arg (tree, bool); extern enum built_in_function builtin_mathfn_code (const_tree); extern tree build_function_call_expr (tree, tree); extern tree fold_builtin_call_array (tree, tree, int, tree *); -extern void debug_fold_checksum (const_tree); extern tree build_call_expr (tree, int, ...); extern tree mathfn_built_in (tree, enum built_in_function fn); -extern tree strip_float_extensions (tree); extern tree c_strlen (tree, int); extern tree std_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *); extern tree build_va_arg_indirect_ref (tree); @@ -4827,7 +4816,7 @@ extern tree build_string_literal (int, const char *); extern bool validate_arglist (const_tree, ...); extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode); extern int get_pointer_alignment (tree, unsigned int); -extern bool is_builtin_name(const char*); +extern bool is_builtin_name (const char*); extern int get_object_alignment (tree, unsigned int, unsigned int); extern tree fold_call_stmt (gimple, bool); extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function); @@ -4858,10 +4847,6 @@ extern tree type_hash_lookup (unsigned int, tree); extern void type_hash_add (unsigned int, tree); extern int simple_cst_list_equal (const_tree, const_tree); extern void dump_tree_statistics (void); -extern void expand_function_end (void); -extern void expand_function_start (tree); -extern void stack_protect_prologue (void); -extern void stack_protect_epilogue (void); extern void recompute_tree_invariant_for_addr_expr (tree); extern bool needs_to_live_in_memory (const_tree); extern tree reconstruct_complex_type (tree, tree); @@ -4876,7 +4861,6 @@ extern void build_common_builtin_nodes (void); extern tree build_nonstandard_integer_type (unsigned HOST_WIDE_INT, int); extern tree build_range_type (tree, tree, tree); extern HOST_WIDE_INT int_cst_value (const_tree); -extern tree build_addr (tree, tree); extern bool fields_compatible_p (const_tree, const_tree); extern tree find_compatible_field (tree, tree); @@ -4887,8 +4871,17 @@ extern tree *tree_block (tree); extern location_t *block_nonartificial_location (tree); extern location_t tree_nonartificial_location (tree); +extern tree block_ultimate_origin (const_tree); + +/* In tree-nested.c */ +extern tree build_addr (tree, tree); + /* In function.c */ extern void expand_main_function (void); +extern void expand_function_end (void); +extern void expand_function_start (tree); +extern void stack_protect_prologue (void); +extern void stack_protect_epilogue (void); extern void init_dummy_function_start (void); extern void expand_dummy_function_end (void); extern unsigned int init_function_for_compilation (void); @@ -4967,7 +4960,6 @@ extern bool gimple_alloca_call_p (const_gimple); extern bool alloca_call_p (const_tree); extern bool must_pass_in_stack_var_size (enum machine_mode, const_tree); extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree); -extern tree block_ultimate_origin (const_tree); /* In attribs.c. */ @@ -5023,6 +5015,7 @@ extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *); #endif +/* In dwarf2out.c */ /* Interface of the DWARF2 unwind info support. */ /* Generate a new label for the CFI info to refer to. */ @@ -5082,6 +5075,7 @@ extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*, #define walk_tree_without_duplicates(a,b,c) \ walk_tree_without_duplicates_1 (a, b, c, NULL) +/* In emit-rtl.c */ /* Assign the RTX to declaration. */ extern void set_decl_rtl (tree, rtx); @@ -5120,7 +5114,7 @@ extern int tree_node_sizes[]; restricted to creating gimple expressions. */ extern bool in_gimple_form; -/* In tree-gimple.c. */ +/* In gimple.c. */ extern tree get_base_address (tree t); /* In tree-vectorizer.c. */ @@ -5172,6 +5166,11 @@ struct GTY(()) tree_priority_map { #define tree_priority_map_hash tree_map_base_hash #define tree_priority_map_marked_p tree_map_base_marked_p +/* In tree-ssa-ccp.c */ +extern tree maybe_fold_offset_to_reference (tree, tree, tree); +extern tree maybe_fold_offset_to_address (tree, tree, tree); +extern tree maybe_fold_stmt_addition (tree, tree, tree); + /* In tree-ssa-address.c. */ extern tree tree_mem_ref_addr (tree, tree); extern void copy_mem_ref_info (tree, tree); |