From d8a2d370dc8e418c97cfacbef66a86ab444e94d2 Mon Sep 17 00:00:00 2001 From: Diego Novillo Date: Tue, 19 Nov 2013 07:31:09 -0500 Subject: [PATCH] Factor unrelated declarations out of tree.h. This patch applies the rule that functions defined in FOO.c must be declared in FOO.h. One of the worst offenders in the code base is tree.h, unsurprisingly. The patch creates several new headers: attribs.h calls.h fold-const.h gcc-symtab.h print-rtl.h print-tree.h stmt.h stor-layout.h stringpool.h tree-nested.h tree-object-size.h varasm.h. Functions in each corresponding .c file got moved to those headers and others that already existed. I wanted to make this patch as mechanical as possible, so I made no attempt to fix problems like having build_addr defined in tree-inline.c. I left that for later. There were some declarations that I could not move out of tree.h because of header poisoning or the use of target macros. We forbid the inclusion of things like expr.h from FE files. While that's a reasonable idea, the FE file *still* manage to at expr.c functionality because the declarations they want to use were defined in tree.h. The affected files are builtins.h, emit-rtl.h and expr.h. If that functionality is allowed to be accessed from the FEs, then I will later move those functions out of expr.c into tree.c. I have moved these declarations to the bottom of tree.h so they are easy to identify later. There is a namespace collision with libcpp. The file gcc/symtab.c cannot use gcc/symtab.h because the #include command picks up libcpp/include/symtab.h first. So I named this file gcc-symtab.h for now. Finally, I added a new header to PLUGIN_HEADERS to account for the tree.h refactoring. I did not add all headers factored out of tree.h because it is unclear (and impossible to tell) what plugins need. This adds the one header used by the plugins in the testsuite. This will be changing quite dramatically as we progress with the header refactoring. This patch should offer some minimal incremental build advantages by reducing the size of tree.h. Changes that would otherwise affected tree.h, will now go to other headers which are less frequently included. * tree.h: Include fold-const.h. (aggregate_value_p): Moved to function.h. (alloca_call_p): Moved to calls.h. (allocate_struct_function): Moved to function.h. (apply_tm_attr): Moved to attribs.h. (array_at_struct_end_p): Moved to expr.h. (array_ref_element_size): Moved to tree-dfa.h. (array_ref_low_bound): Moved to tree-dfa.h. (array_ref_up_bound): Moved to tree.h. (assemble_alias): Moved to cgraph.h. (bit_from_pos): Moved to stor-layout.h. (build_addr): Moved to tree-nested.h. (build_duplicate_type): Moved to tree-inline.h. (build_fold_addr_expr): Moved to fold-const.h. (build_fold_addr_expr_with_type): Moved to fold-const.h. (build_fold_addr_expr_with_type_loc): Moved to fold-const.h. (build_fold_indirect_ref): Moved to fold-const.h. (build_fold_indirect_ref_loc): Moved to fold-const.h. (build_personality_function): Moved to tree.h. (build_range_check): Moved to fold-const.h. (build_simple_mem_ref): Moved to fold-const.h. (build_simple_mem_ref_loc): Moved to fold-const.h. (build_tm_abort_call): Moved to trans-mem.h. (byte_from_pos): Moved to stor-layout.h. (call_expr_flags): Moved to calls.h. (can_move_by_pieces): Moved to expr.h. (categorize_ctor_elements): Moved to expr.h. (change_decl_assembler_name): Moved to gcc-symtab.h. (combine_comparisons): Moved to fold-const.h. (complete_ctor_at_level_p): Moved to tree.h. (component_ref_field_offset): Moved to tree-dfa.h. (compute_builtin_object_size): Moved to tree-object-size.h. (compute_record_mode): Moved to stor-layout.h. (constant_boolean_node): Moved to fold-const.h. (constructor_static_from_elts_p): Moved to varasm.h. (cxx11_attribute_p): Moved to attribs.h. (debug_body): Moved to print-tree.h. (debug_find_tree): Moved to tree-inline.h. (debug_fold_checksum): Moved to fold-const.h. (debug_head): Moved to print-tree.h. (debug_head): Moved to print-tree.h. (debug_raw): Moved to print-tree.h. (debug_tree): Moved to print-tree.h. (debug_vec_tree): Moved to print-tree.h. (debug_verbose): Moved to print-tree.h. (debug_verbose): Moved to print-tree.h. (decl_attributes): Moved to attribs.h. (decl_binds_to_current_def_p): Moved to varasm.h. (decl_default_tls_model): Moved to varasm.h. (decl_replaceable_p): Moved to varasm.h. (div_if_zero_remainder): Moved to fold-const.h. (double_int mem_ref_offset): Moved to fold-const.h. (dump_addr): Moved to print-tree.h. (element_precision): Moved to machmode.h. (expand_dummy_function_end): Moved to function.h. (expand_function_end): Moved to function.h. (expand_function_start): Moved to function.h. (expand_label): Moved to stmt.h. (expr_first): Moved to tree-iterator.h. (expr_last): Moved to tree-iterator.h. (finalize_size_functions): Moved to stor-layout.h. (finish_builtin_struct): Moved to stor-layout.h. (finish_record_layout): Moved to stor-layout.h. (fixup_signed_type): Moved to stor-layout.h. (fixup_unsigned_type): Moved to stor-layout.h. (flags_from_decl_or_type): Moved to calls.h. (fold): Moved to fold-const.h. (fold_abs_const): Moved to fold-const.h. (fold_binary): Moved to fold-const.h. (fold_binary_loc): Moved to fold-const.h. (fold_binary_to_constant): Moved to fold-const.h. (fold_build1): Moved to fold-const.h. (fold_build1_initializer_loc): Moved to fold-const.h. (fold_build1_loc): Moved to fold-const.h. (fold_build1_stat_loc): Moved to fold-const.h. (fold_build2): Moved to fold-const.h. (fold_build2_initializer_loc): Moved to fold-const.h. (fold_build2_loc): Moved to fold-const.h. (fold_build2_stat_loc): Moved to fold-const.h. (fold_build3): Moved to fold-const.h. (fold_build3_loc): Moved to fold-const.h. (fold_build3_stat_loc): Moved to fold-const.h. (fold_build_call_array): Moved to fold-const.h. (fold_build_call_array_initializer): Moved to fold-const.h. (fold_build_call_array_initializer_loc): Moved to fold-const.h. (fold_build_call_array_loc): Moved to fold-const.h. (fold_build_cleanup_point_expr): Moved to fold-const.h. (fold_convert): Moved to fold-const.h. (fold_convert_loc): Moved to fold-const.h. (fold_convertible_p): Moved to fold-const.h. (fold_defer_overflow_warnings): Moved to fold-const.h. (fold_deferring_overflow_warnings_p): Moved to fold-const.h. (fold_fma): Moved to fold-const.h. (fold_ignored_result): Moved to fold-const.h. (fold_indirect_ref): Moved to fold-const.h. (fold_indirect_ref_1): Moved to fold-const.h. (fold_indirect_ref_loc): Moved to fold-const.h. (fold_read_from_constant_string): Moved to fold-const.h. (fold_real_zero_addition_p): Moved to fold-const.h. (fold_single_bit_test): Moved to fold-const.h. (fold_strip_sign_ops): Moved to fold-const.h. (fold_ternary): Moved to fold-const.h. (fold_ternary_loc): Moved to fold-const.h. (fold_unary): Moved to tree-data-ref.h. (fold_unary_ignore_overflow): Moved to fold-const.h. (fold_unary_ignore_overflow_loc): Moved to fold-const.h. (fold_unary_loc): Moved to fold-const.h. (fold_unary_to_constant): Moved to fold-const.h. (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h. (fold_undefer_overflow_warnings): Moved to fold-const.h. (folding_initializer): Moved to fold-const.h. (free_temp_slots): Moved to function.h. (generate_setjmp_warnings): Moved to function.h. (get_attribute_name): Moved to attribs.h. (get_identifier): Moved to stringpool.h. (get_identifier_with_length): Moved to stringpool.h. (get_inner_reference): Moved to tree.h. (gimple_alloca_call_p): Moved to calls.h. (gimplify_parameters): Moved to function.h. (highest_pow2_factor): Moved to expr.h. (indent_to): Moved to print-tree.h. (init_attributes): Moved to attribs.h. (init_dummy_function_start): Moved to function.h. (init_function_start): Moved to function.h. (init_inline_once): Moved to tree-inline.h. (init_object_sizes): Moved to tree-object-size.h. (init_temp_slots): Moved to function.h. (init_tree_optimization_optabs): Moved to optabs.h. (initialize_sizetypes): Moved to stor-layout.h. (initializer_constant_valid_for_bitfield_p): Moved to varasm.h. (initializer_constant_valid_p): Moved to varasm.h. (int_const_binop): Moved to fold-const.h. (internal_reference_types): Moved to stor-layout.h. (invert_tree_comparison): Moved to fold-const.h. (invert_truthvalue): Moved to fold-const.h. (invert_truthvalue_loc): Moved to fold-const.h. (is_tm_ending_fndecl): Moved to trans-mem.h. (is_tm_may_cancel_outer): Moved to trans-mem.h. (is_tm_pure): Moved to trans-mem.h. (is_tm_safe): Moved to trans-mem.h. (layout_decl): Moved to stor-layout.h. (layout_type): Moved to stor-layout.h. (lookup_attribute_spec): Moved to attribs.h. (make_accum_type): Moved to stor-layout.h. (make_decl_one_only): Moved to varasm.h. (make_decl_rtl): Moved to tree.h. (make_decl_rtl_for_debug): Moved to varasm.h. (make_fract_type): Moved to stor-layout.h. (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h. (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h. (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h. (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h. (make_or_reuse_signed_accum_type): Moved to stor-layout.h. (make_or_reuse_signed_fract_type): Moved to stor-layout.h. (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h. (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h. (make_range): Moved to fold-const.h. (make_range_step): Moved to fold-const.h. (make_sat_signed_accum_type): Moved to stor-layout.h. (make_sat_signed_fract_type): Moved to stor-layout.h. (make_sat_unsigned_accum_type): Moved to stor-layout.h. (make_sat_unsigned_fract_type): Moved to stor-layout.h. (make_signed_accum_type): Moved to stor-layout.h. (make_signed_fract_type): Moved to stor-layout.h. (make_signed_type): Moved to stor-layout.h. (make_unsigned_accum_type): Moved to stor-layout.h. (make_unsigned_fract_type): Moved to stor-layout.h. (make_unsigned_type): Moved to stor-layout.h. (mark_decl_referenced): Moved to varasm.h. (mark_referenced): Moved to varasm.h. (may_negate_without_overflow_p): Moved to fold-const.h. (maybe_get_identifier): Moved to stringpool.h. (merge_ranges): Moved to fold-const.h. (merge_weak): Moved to varasm.h. (mode_for_size_tree): Moved to stor-layout.h. (multiple_of_p): Moved to fold-const.h. (must_pass_in_stack_var_size): Moved to calls.h. (must_pass_in_stack_var_size_or_pad): Moved to calls.h. (native_encode_expr): Moved to fold-const.h. (native_interpret_expr): Moved to fold-const.h. (non_lvalue): Moved to fold-const.h. (non_lvalue_loc): Moved to fold-const.h. (normalize_offset): Moved to stor-layout.h. (normalize_rli): Moved to stor-layout.h. (notice_global_symbol): Moved to varasm.h. (omit_one_operand): Moved to fold-const.h. (omit_one_operand_loc): Moved to fold-const.h. (omit_two_operands): Moved to fold-const.h. (omit_two_operands_loc): Moved to fold-const.h. (operand_equal_p): Moved to tree-data-ref.h. (parse_input_constraint): Moved to stmt.h. (parse_output_constraint): Moved to stmt.h. (place_field): Moved to stor-layout.h. (pop_function_context): Moved to function.h. (pop_temp_slots): Moved to function.h. (pos_from_bit): Moved to stor-layout.h. (preserve_temp_slots): Moved to function.h. (print_node): Moved to print-tree.h. (print_node_brief): Moved to print-tree.h. (print_rtl): Moved to rtl.h. (process_pending_assemble_externals): Moved to varasm.h. (ptr_difference_const): Moved to fold-const.h. (push_function_context): Moved to function.h. (push_struct_function): Moved to function.h. (push_temp_slots): Moved to function.h. (record_tm_replacement): Moved to trans-mem.h. (relayout_decl): Moved to stor-layout.h. (resolve_asm_operand_names): Moved to stmt.h. (resolve_unique_section): Moved to varasm.h. (rli_size_so_far): Moved to stor-layout.h. (rli_size_unit_so_far): Moved to stor-layout.h. (round_down): Moved to fold-const.h. (round_down_loc): Moved to fold-const.h. (round_up): Moved to fold-const.h. (round_up_loc): Moved to fold-const.h. (set_decl_incoming_rtl): Moved to emit-rtl.h. (set_decl_rtl): Moved to tree.h. (set_min_and_max_values_for_integral_type): Moved to stor-layout.h. (set_user_assembler_name): Moved to varasm.h. (setjmp_call_p): Moved to calls.h. (size_binop): Moved to fold-const.h. (size_binop_loc): Moved to fold-const.h. (size_diffop): Moved to fold-const.h. (size_diffop_loc): Moved to fold-const.h. (size_int_kind): Moved to fold-const.h. (stack_protect_epilogue): Moved to function.h. (start_record_layout): Moved to stor-layout.h. (supports_one_only): Moved to varasm.h. (swap_tree_comparison): Moved to fold-const.h. (tm_malloc_replacement): Moved to trans-mem.h. (tree build_fold_addr_expr_loc): Moved to fold-const.h. (tree build_invariant_address): Moved to fold-const.h. (tree_binary_nonnegative_warnv_p): Moved to fold-const.h. (tree_binary_nonzero_warnv_p): Moved to fold-const.h. (tree_call_nonnegative_warnv_p): Moved to fold-const.h. (tree_expr_nonnegative_p): Moved to fold-const.h. (tree_expr_nonnegative_warnv_p): Moved to fold-const.h. (tree_output_constant_def): Moved to varasm.h. (tree_overlaps_hard_reg_set): Moved to stmt.h. (tree_single_nonnegative_warnv_p): Moved to fold-const.h. (tree_single_nonzero_warnv_p): Moved to fold-const.h. (tree_swap_operands_p): Moved to fold-const.h. (tree_unary_nonnegative_warnv_p): Moved to fold-const.h. (tree_unary_nonzero_warnv_p): Moved to fold-const.h. (update_alignment_for_field): Moved to stor-layout.h. (use_register_for_decl): Moved to function.h. (variable_size): Moved to rtl.h. (vector_type_mode): Moved to stor-layout.h. * cgraph.h: Corresponding changes. * emit-rtl.h: Corresponding changes. * expr.h: Corresponding changes. * function.h: Corresponding changes. * optabs.h: Corresponding changes. * trans-mem.h: Corresponding changes. Protect against multiple inclusion. * tree-inline.h: Corresponding changes. * tree-iterator.h: Corresponding changes. * tree-dfa.h: Include expr.h. * tree-ssanames.h: Include stringpool.h. * attribs.h: New file. * calls.h: New file. * fold-const.h: New file. * gcc-symtab.h: New file. * print-rtl.h: New file. * print-tree.h: New file. * stmt.h: New file. * stor-layout.h: New file. * strinpool.h: New file. * tree-nested.h: New file * tree-object-size.h: New file. * varasm.h: New file. * Makefile.in (PLUGIN_HEADERS): Add stringpool.h. * alias.c: Include varasm.h. Include expr.h. * asan.c: Include calls.h. Include stor-layout.h. Include varasm.h. * attribs.c: Include stringpool.h. Include attribs.h. Include stor-layout.h. * builtins.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. Include tree-object-size.h. * calls.c: Include stor-layout.h. Include varasm.h. Include stringpool.h. Include attribs.h. * cfgexpand.c: Include stringpool.h. Include varasm.h. Include stor-layout.h. Include stmt.h. Include print-tree.h. * cgraph.c: Include varasm.h. Include calls.h. Include print-tree.h. * cgraphclones.c: Include stringpool.h. Include function.h. Include emit-rtl.h. Move inclusion of rtl.h earlier in the file. * cgraphunit.c: Include varasm.h. Include stor-layout.h. Include stringpool.h. * cilk-common.c: Include stringpool.h. Include stor-layout.h. * combine.c: Include stor-layout.h. * config/aarch64/aarch64-builtins.c: Include stor-layout.h. Include stringpool.h. Include calls.h. * config/aarch64/aarch64.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * config/alpha/alpha.c: Include stor-layout.h. Include calls.h. Include varasm.h. * config/arc/arc.c: Include varasm.h. Include stor-layout.h. Include stringpool.h. Include calls.h. * config/arm/arm.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * config/avr/avr-c.c: Include stor-layout.h. * config/avr/avr-log.c: Include print-tree.h. * config/avr/avr.c: Include print-tree.h. Include calls.h. Include stor-layout.h. Include stringpool.h. * config/bfin/bfin.c: Include varasm.h. Include calls.h. * config/c6x/c6x.c: Include stor-layout.h. Include varasm.h. Include calls.h. Include stringpool.h. * config/cr16/cr16.c: Include stor-layout.h. Include calls.h. * config/cris/cris.c: Include varasm.h. Include stor-layout.h. Include calls.h. Include stmt.h. * config/darwin.c: Include stringpool.h. Include varasm.h. Include stor-layout.h. * config/epiphany/epiphany.c: Include stor-layout.h. Include varasm.h. Include calls.h. Include stringpool.h. * config/fr30/fr30.c: Include stor-layout.h. Include varasm.h. * config/frv/frv.c: Include varasm.h. Include stor-layout.h. Include stringpool.h. * config/h8300/h8300.c: Include stor-layout.h. Include varasm.h. Include calls.h. Include stringpool.h. * config/i386/i386.c: Include stringpool.h. Include attribs.h. Include calls.h. Include stor-layout.h. Include varasm.h. * config/i386/winnt-cxx.c: Include stringpool.h. Include attribs.h. * config/i386/winnt.c: Include stringpool.h. Include varasm.h. * config/ia64/ia64-c.c: Include stringpool.h. * config/ia64/ia64.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * config/iq2000/iq2000.c: Include stor-layout.h. Include calls.h. Include varasm.h. * config/lm32/lm32.c: Include calls.h. * config/m32c/m32c.c: Include stor-layout.h. Include varasm.h. Include calls.h. * config/m32r/m32r.c: Include stor-layout.h. Include varasm.h. Include stringpool.h. Include calls.h. * config/m68k/m68k.c: Include calls.h. Include stor-layout.h. Include varasm.h. * config/mcore/mcore.c: Include stor-layout.h. Include varasm.h. Include stringpool.h. Include calls.h. * config/mep/mep.c: Include varasm.h. Include calls.h. Include stringpool.h. Include stor-layout.h. * config/microblaze/microblaze.c: Include varasm.h. Include stor-layout.h. Include calls.h. * config/mips/mips.c: Include varasm.h. Include stringpool.h. Include stor-layout.h. Include calls.h. * config/mmix/mmix.c: Include varasm.h. Include stor-layout.h. Include calls.h. * config/mn10300/mn10300.c: Include stor-layout.h. Include varasm.h. Include calls.h. * config/moxie/moxie.c: Include stor-layout.h. Include varasm.h. Include calls.h. * config/msp430/msp430.c: Include stor-layout.h. Include calls.h. * config/nds32/nds32.c: Include stor-layout.h. Include varasm.h. Include calls.h. * config/pa/pa.c: Include stor-layout.h. Include stringpool.h. Include varasm.h. Include calls.h. * config/pdp11/pdp11.c: Include stor-layout.h. Include varasm.h. Include calls.h. * config/picochip/picochip.c: Include calls.h. Include stor-layout.h. Include stringpool.h. Include varasm.h. * config/rl78/rl78.c: Include varasm.h. Include stor-layout.h. Include calls.h. * config/rs6000/rs6000-c.c: Include stor-layout.h. Include stringpool.h. * config/rs6000/rs6000.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include print-tree.h. Include varasm.h. * config/rx/rx.c: Include varasm.h. Include stor-layout.h. Include calls.h. * config/s390/s390.c: Include print-tree.h. Include stringpool.h. Include stor-layout.h. Include varasm.h. Include calls.h. * config/score/score.c: Include stringpool.h. Include calls.h. Include varasm.h. Include stor-layout.h. * config/sh/sh-c.c: Include stringpool.h. Include attribs.h.h. * config/sh/sh.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * config/sol2-c.c: Include stringpool.h. Include attribs.h. * config/sol2-cxx.c: Include stringpool.h. * config/sol2.c: Include stringpool.h. Include varasm.h. * config/sparc/sparc.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * config/spu/spu-c.c: Include stringpool.h. * config/spu/spu.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * config/stormy16/stormy16.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. Include calls.h. * config/tilegx/tilegx.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. Include calls.h. * config/tilepro/tilepro.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. Include calls.h. * config/v850/v850-c.c: Include stringpool.h. Include attribs.h. * config/v850/v850.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. Include calls.h. * config/vax/vax.c: Include calls.h. Include varasm.h. * config/vms/vms.c: Include stringpool.h. * config/vxworks.c: Include stringpool.h. * config/xtensa/xtensa.c: Include stringpool.h. Include stor-layout.h. Include calls.h. Include varasm.h. * convert.c: Include stor-layout.h. * coverage.c: Include stringpool.h. Include stor-layout.h. * dbxout.c: Include varasm.h. Include stor-layout.h. * dojump.c: Include stor-layout.h. * dse.c: Include stor-layout.h. * dwarf2asm.c: Include stringpool.h. Include varasm.h. * dwarf2cfi.c: Include stor-layout.h. * dwarf2out.c: Include rtl.h. Include stringpool.h. Include stor-layout.h. Include varasm.h. Include function.h. Include emit-rtl.h. Move inclusion of rtl.h earlier in the file. * emit-rtl.c: Include varasm.h. * except.c: Include stringpool.h. Include stor-layout.h. * explow.c: Include stor-layout.h. * expmed.c: Include stor-layout.h. * expr.c: Include stringpool.h. Include stor-layout.h. Include attribs.h. Include varasm.h. * final.c: Include varasm.h. * fold-const.c: Include stor-layout.h. Include calls.h. Include tree-iterator.h. * function.c: Include stor-layout.h. Include varasm.h. Include stringpool.h. * genattrtab.c (write_header): Emit includes for varasm.h, stor-layout.h and calls.h. * genautomata.c (main): Likewise. * genemit.c: Likewise. * genopinit.c: Likewise. * genoutput.c (output_prologue): Likewise. * genpeep.c: Likewise. * genpreds.c (write_insn_preds_c): Likewise. * gengtype.c (open_base_files): Add stringpool.h. * gimple-expr.c: Include stringpool.h. Include stor-layout.h. * gimple-fold.c: Include stringpool.h. Include expr.h. Include stmt.h. Include stor-layout.h. * gimple-low.c: Include tree-nested.h. Include calls.h. * gimple-pretty-print.c: Include stringpool.h. * gimple-ssa-strength-reduction.c: Include stor-layout.h. Include expr.h. * gimple-walk.c: Include stmt.h. * gimple.c: Include calls.h. Include stmt.h. Include stor-layout.h. * gimplify.c: Include stringpool.h. Include calls.h. Include varasm.h. Include stor-layout.h. Include stmt.h. Include print-tree.h. Include expr.h. * gimplify-me.c: Include stmt.h Include stor-layout.h * internal-fn.c: Include stor-layout.h. * ipa-devirt.c: Include print-tree.h. Include calls.h. * ipa-inline-analysis.c: Include stor-layout.h. Include stringpool.h. Include print-tree.h. * ipa-inline.c: Include trans-mem.h. Include calls.h. * ipa-prop.c: Include expr.h. Include stor-layout.h. Include print-tree.h. * ipa-pure-const.c: Include print-tree.h. Include calls.h. * ipa-reference.c: Include calls.h. * ipa-split.c: Include stringpool.h. Include expr.h. Include calls.h. * ipa.c: Include calls.h. Include stringpool.h. * langhooks.c: Include stringpool.h. Include attribs.h. * lto-cgraph.c: Include stringpool.h. * lto-streamer-in.c: Include stringpool.h. * lto-streamer-out.c: Include stor-layout.h. Include stringpool.h. * omp-low.c: Include stringpool.h. Include stor-layout.h. Include expr.h. * optabs.c: Include stor-layout.h. Include stringpool.h. Include varasm.h. * passes.c: Include varasm.h. * predict.c: Include calls.h. * print-rtl.c: Include print-tree.h. * print-tree.c: Include varasm.h. Include print-rtl.h. Include stor-layout.h. * realmpfr.c: Include stor-layout.h. * reg-stack.c: Include varasm.h. * sdbout.c: Include varasm.h. Include stor-layout.h. * simplify-rtx.c: Include varasm.h. * stmt.c: Include varasm.h. Include stor-layout.h. * stor-layout.c: Include stor-layout.h. Include stringpool.h. Include varasm.h. Include print-tree.h. * symtab.c: Include rtl.h. Include print-tree.h. Include varasm.h. Include function.h. Include emit-rtl.h. * targhooks.c: Include stor-layout.h. Include varasm.h. * toplev.c: Include varasm.h. Include tree-inline.h. * trans-mem.c: Include calls.h. Include function.h. Include rtl.h. Include emit-rtl.h. * tree-affine.c: Include expr.h. * tree-browser.c: Include print-tree.h. * tree-call-cdce.c: Include stor-layout.h. * tree-cfg.c: Include trans-mem.h. Include stor-layout.h. Include print-tree.h. * tree-complex.c: Include stor-layout.h. * tree-data-ref.c: Include expr.h. * tree-dfa.c: Include stor-layout.h. * tree-eh.c: Include expr.h. Include calls.h. * tree-emutls.c: Include stor-layout.h. Include varasm.h. * tree-if-conv.c: Include stor-layout.h. * tree-inline.c: Include stor-layout.h. Include calls.h. * tree-loop-distribution.c: Include stor-layout.h. * tree-nested.c: Include stringpool.h. Include stor-layout.h. * tree-object-size.c: Include tree-object-size.h. * tree-outof-ssa.c: Include stor-layout.h. * tree-parloops.c: Include stor-layout.h. Include tree-nested.h. * tree-pretty-print.c: Include stor-layout.h. Include expr.h. * tree-profile.c: Include varasm.h. Include tree-nested.h. * tree-scalar-evolution.c: Include expr.h. * tree-sra.c: Include stor-layout.h. * tree-ssa-address.c: Include stor-layout.h. * tree-ssa-ccp.c: Include stor-layout.h. * tree-ssa-dce.c: Include calls.h. * tree-ssa-dom.c: Include stor-layout.h. * tree-ssa-forwprop.c: Include stor-layout.h. * tree-ssa-ifcombine.c: Include stor-layout.h. * tree-ssa-loop-ivopts.c: Include stor-layout.h. * tree-ssa-loop-niter.c: Include calls.h. Include expr.h. * tree-ssa-loop-prefetch.c: Include stor-layout.h. * tree-ssa-math-opts.c: Include stor-layout.h. * tree-ssa-operands.c: Include stmt.h. Include print-tree.h. * tree-ssa-phiopt.c: Include stor-layout.h. * tree-ssa-reassoc.c: Include stor-layout.h. * tree-ssa-sccvn.c: Include stor-layout.h. * tree-ssa-sink.c: Include stor-layout.h. * tree-ssa-strlen.c: Include stor-layout.h. * tree-ssa-structalias.c: Include stor-layout.h. Include stmt.h. * tree-ssa-tail-merge.c: Include stor-layout.h. Include trans-mem.h. * tree-ssa-uncprop.c: Include stor-layout.h. * tree-ssa.c: Include stor-layout.h. * tree-ssanames.c: Include stor-layout.h. * tree-streamer-in.c: Include stringpool.h. * tree-streamer-out.c: Include stor-layout.h. * tree-switch-conversion.c: Include varasm.h. Include stor-layout.h. * tree-tailcall.c: Include stor-layout.h. * tree-vect-data-refs.c: Include stor-layout.h. * tree-vect-generic.c: Include stor-layout.h. * tree-vect-loop.c: Include stor-layout.h. * tree-vect-patterns.c: Include stor-layout.h. * tree-vect-slp.c: Include stor-layout.h. * tree-vect-stmts.c: Include stor-layout.h. * tree-vectorizer.c: Include stor-layout.h. * tree-vrp.c: Include stor-layout.h. Include calls.h. * tree.c: Include stor-layout.h. Include calls.h. Include attribs.h. Include varasm.h. * tsan.c: Include expr.h. * ubsan.c: Include stor-layout.h. Include stringpool.h. * value-prof.c: Include tree-nested.h. Include calls.h. * var-tracking.c: Include varasm.h. Include stor-layout.h. * varasm.c: Include stor-layout.h. Include stringpool.h. Include gcc-symtab.h. Include varasm.h. * varpool.c: Include varasm.h. * vmsdbgout.c: Include varasm.h. * xcoffout.c: Include varasm.h. ada/ChangeLog * gcc-interface/decl.c: Include stringpool.h Include stor-layout.h * gcc-interface/misc.c: Include stor-layout.h Include print-tree.h * gcc-interface/trans.c: Include stringpool.h Include stor-layout.h Include stmt.h Include varasm.h * gcc-interface/utils.c: Include stringpool.h Include stor-layout.h Include attribs.h Include varasm.h * gcc-interface/utils2.c: Include stringpool.h Include stor-layout.h Include attribs.h Include varasm.h c-family/ChangeLog * c-common.c: Include fold-const.h. Include stor-layout.h. Include calls.h. Include stringpool.h. Include attribs.h. Include varasm.h. Include trans-mem.h. * c-cppbuiltin.c: Include stor-layout.h. Include stringpool.h. * c-format.c: Include stringpool.h. * c-lex.c: Include stringpool.h. Include stor-layout.h. * c-pragma.c: Include stringpool.h. Include attribs.h. Include varasm.h. Include gcc-symtab.h. * c-pretty-print.c: Include stor-layout.h. Include attribs.h. * cilk.c: Include stringpool.h. Include calls.h. c/ChangeLog * c-decl.c: Include print-tree.h. Include stor-layout.h. Include varasm.h. Include attribs.h. Include stringpool.h. * c-lang.c: Include fold-const.h. * c-parser.c: Include stringpool.h. Include attribs.h. Include stor-layout.h. Include varasm.h. Include trans-mem.h. * c-typeck.c: Include stor-layout.h. Include trans-mem.h. Include varasm.h. Include stmt.h. cp/ChangeLog * call.c: Include stor-layout.h. Include trans-mem.h. Include stringpool.h. * class.c: Include stringpool.h. Include stor-layout.h. Include attribs.h. * cp-gimplify.c: Include stor-layout.h. * cvt.c: Include stor-layout.h. * decl.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. Include attribs.h. Include calls.h. * decl2.c: Include stringpool.h. Include varasm.h. Include attribs.h. Include stor-layout.h. Include calls.h. * error.c: Include stringpool.h. * except.c: Include stringpool.h. Include trans-mem.h. Include attribs.h. * init.c: Include stringpool.h. Include varasm.h. * lambda.c: Include stringpool.h. * lex.c: Include stringpool.h. * mangle.c: Include stor-layout.h. Include stringpool.h. * method.c: Include stringpool.h. Include varasm.h. * name-lookup.c: Include stringpool.h. Include print-tree.h. Include attribs.h. * optimize.c: Include stringpool.h. * parser.c: Include print-tree.h. Include stringpool.h. Include attribs.h. Include trans-mem.h. * pt.c: Include stringpool.h. Include varasm.h. Include attribs.h. Include stor-layout.h. * ptree.c: Include print-tree.h. * repo.c: Include stringpool.h. * rtti.c: Include stringpool.h. Include stor-layout.h. * semantics.c: Include stmt.h. Include varasm.h. Include stor-layout.h. Include stringpool.h. * tree.c: Include stor-layout.h. Include print-tree.h. Include tree-iterator.h. * typeck.c: Include stor-layout.h. Include varasm.h. * typeck2.c: Include stor-layout.h. Include varasm.h. * vtable-class-hierarchy.c: Include stringpool.h. Include stor-layout.h. fortran/ChangeLog * decl.c: Include stringpool.h. * iresolve.c: Include stringpool.h. * match.c: Include stringpool.h. * module.c: Include stringpool.h. * target-memory.c: Include stor-layout.h. * trans-common.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. * trans-const.c: Include stor-layout.h. * trans-decl.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. Include attribs.h. * trans-expr.c: Include stringpool.h. * trans-intrinsic.c: Include stringpool.h. Include tree-nested.h. Include stor-layout.h. * trans-io.c: Include stringpool.h. Include stor-layout.h. * trans-openmp.c: Include stringpool.h. * trans-stmt.c: Include stringpool.h. * trans-types.c: Include stor-layout.h. Include stringpool.h. * trans.c: Include stringpool.h. go/ChangeLog * go-backend.c: Include stor-layout.h. * go-gcc.cc: Include stringpool.h. Include stor-layout.h. Include varasm.h. * go-lang.c: Include stor-layout.h. java/ChangeLog * builtins.c: Include stor-layout.h. Include stringpool.h. * class.c: Include stringpool.h. Include stor-layout.h. Include varasm.h. * constants.c: Include stringpool.h. Include stor-layout.h. * decl.c: Include stor-layout.h. Include stringpool.h. Include varasm.h. * except.c: Include stringpool.h. Include stor-layout.h. * expr.c: Include stringpool.h. Include stor-layout.h. * jcf-parse.c: Include stringpool.h. * mangle.c: Include stringpool.h. * resource.c: Include stringpool.h. Include stor-layout.h. * typeck.c: Include stor-layout.h. Include stringpool.h. * verify-glue.c: Include stringpool.h. lto/ChangeLog * lto-lang.c: Include stringpool.h. Include stor-layout.h. * lto-partition.c: Include gcc-symtab.h. * lto.c: Include stor-layout.h. objc/ChangeLog * objc-act.c: Include stringpool.h. Include stor-layout.h. Include attribs.h. * objc-encoding.c: Include stringpool.h. Include stor-layout.h. * objc-gnu-runtime-abi-01.c: Include stringpool.h. * objc-next-runtime-abi-01.c: Include stringpool.h. * objc-next-runtime-abi-02.c: Include stringpool.h. * objc-runtime-shared-support.c: Include stringpool.h. testsuite/ChangeLog * gcc.dg/plugin/selfassign.c: Include stringpool.h. * gcc.dg/plugin/start_unit_plugin.c: Likewise. From-SVN: r205023 --- gcc/ChangeLog | 717 ++++++++++++++++++ gcc/Makefile.in | 2 +- gcc/ada/ChangeLog | 19 + gcc/ada/gcc-interface/decl.c | 2 + gcc/ada/gcc-interface/misc.c | 2 + gcc/ada/gcc-interface/trans.c | 4 + gcc/ada/gcc-interface/utils.c | 4 + gcc/ada/gcc-interface/utils2.c | 3 + gcc/alias.c | 2 + gcc/asan.c | 4 + gcc/attribs.c | 3 + gcc/attribs.h | 40 + gcc/builtins.c | 5 + gcc/c-family/ChangeLog | 23 + gcc/c-family/c-common.c | 7 + gcc/c-family/c-cppbuiltin.c | 2 + gcc/c-family/c-format.c | 1 + gcc/c-family/c-lex.c | 2 + gcc/c-family/c-pragma.c | 4 + gcc/c-family/c-pretty-print.c | 2 + gcc/c-family/cilk.c | 2 + gcc/c/ChangeLog | 18 + gcc/c/c-decl.c | 5 + gcc/c/c-lang.c | 1 + gcc/c/c-parser.c | 5 + gcc/c/c-typeck.c | 4 + gcc/calls.c | 4 + gcc/calls.h | 31 + gcc/cfgexpand.c | 5 + gcc/cgraph.c | 3 + gcc/cgraph.h | 2 + gcc/cgraphclones.c | 5 +- gcc/cgraphunit.c | 3 + gcc/cilk-common.c | 2 + gcc/combine.c | 1 + gcc/config/aarch64/aarch64-builtins.c | 3 + gcc/config/aarch64/aarch64.c | 4 + gcc/config/alpha/alpha.c | 4 + gcc/config/arc/arc.c | 4 + gcc/config/arm/arm.c | 4 + gcc/config/avr/avr-c.c | 1 + gcc/config/avr/avr-log.c | 1 + gcc/config/avr/avr.c | 4 + gcc/config/bfin/bfin.c | 2 + gcc/config/c6x/c6x.c | 4 + gcc/config/cr16/cr16.c | 2 + gcc/config/cris/cris.c | 4 + gcc/config/darwin.c | 3 + gcc/config/epiphany/epiphany.c | 4 + gcc/config/fr30/fr30.c | 2 + gcc/config/frv/frv.c | 3 + gcc/config/h8300/h8300.c | 4 + gcc/config/i386/i386.c | 5 + gcc/config/i386/winnt-cxx.c | 2 + gcc/config/i386/winnt.c | 2 + gcc/config/ia64/ia64-c.c | 1 + gcc/config/ia64/ia64.c | 4 + gcc/config/iq2000/iq2000.c | 3 + gcc/config/lm32/lm32.c | 1 + gcc/config/m32c/m32c.c | 3 + gcc/config/m32r/m32r.c | 4 + gcc/config/m68k/m68k.c | 3 + gcc/config/mcore/mcore.c | 4 + gcc/config/mep/mep.c | 4 + gcc/config/microblaze/microblaze.c | 3 + gcc/config/mips/mips.c | 4 + gcc/config/mmix/mmix.c | 3 + gcc/config/mn10300/mn10300.c | 3 + gcc/config/moxie/moxie.c | 3 + gcc/config/msp430/msp430.c | 2 + gcc/config/nds32/nds32.c | 3 + gcc/config/pa/pa.c | 4 + gcc/config/pdp11/pdp11.c | 3 + gcc/config/picochip/picochip.c | 4 + gcc/config/rl78/rl78.c | 3 + gcc/config/rs6000/rs6000-c.c | 2 + gcc/config/rs6000/rs6000.c | 5 + gcc/config/rx/rx.c | 3 + gcc/config/s390/s390.c | 5 + gcc/config/score/score.c | 4 + gcc/config/sh/sh-c.c | 2 + gcc/config/sh/sh.c | 4 + gcc/config/sol2-c.c | 2 + gcc/config/sol2-cxx.c | 1 + gcc/config/sol2.c | 2 + gcc/config/sparc/sparc.c | 4 + gcc/config/spu/spu-c.c | 1 + gcc/config/spu/spu.c | 4 + gcc/config/stormy16/stormy16.c | 4 + gcc/config/tilegx/tilegx.c | 4 + gcc/config/tilepro/tilepro.c | 4 + gcc/config/v850/v850-c.c | 2 + gcc/config/v850/v850.c | 4 + gcc/config/vax/vax.c | 2 + gcc/config/vms/vms.c | 1 + gcc/config/vxworks.c | 1 + gcc/config/xtensa/xtensa.c | 4 + gcc/convert.c | 1 + gcc/coverage.c | 2 + gcc/cp/ChangeLog | 62 ++ gcc/cp/call.c | 3 + gcc/cp/class.c | 4 + gcc/cp/cp-gimplify.c | 1 + gcc/cp/cvt.c | 1 + gcc/cp/decl.c | 5 + gcc/cp/decl2.c | 6 + gcc/cp/error.c | 1 + gcc/cp/except.c | 3 + gcc/cp/init.c | 2 + gcc/cp/lambda.c | 1 + gcc/cp/lex.c | 1 + gcc/cp/mangle.c | 2 + gcc/cp/method.c | 2 + gcc/cp/name-lookup.c | 3 + gcc/cp/optimize.c | 1 + gcc/cp/parser.c | 4 + gcc/cp/pt.c | 4 + gcc/cp/ptree.c | 1 + gcc/cp/repo.c | 1 + gcc/cp/rtti.c | 2 + gcc/cp/semantics.c | 4 + gcc/cp/tree.c | 3 + gcc/cp/typeck.c | 3 + gcc/cp/typeck2.c | 2 + gcc/cp/vtable-class-hierarchy.c | 2 + gcc/dbxout.c | 2 + gcc/dojump.c | 1 + gcc/dse.c | 1 + gcc/dwarf2asm.c | 2 + gcc/dwarf2cfi.c | 1 + gcc/dwarf2out.c | 8 +- gcc/emit-rtl.c | 3 + gcc/emit-rtl.h | 3 + gcc/except.c | 2 + gcc/explow.c | 1 + gcc/expmed.c | 1 + gcc/expr.c | 4 + gcc/expr.h | 19 + gcc/final.c | 1 + gcc/fold-const.c | 3 + gcc/fold-const.h | 172 +++++ gcc/fortran/ChangeLog | 27 + gcc/fortran/decl.c | 1 + gcc/fortran/iresolve.c | 1 + gcc/fortran/match.c | 1 + gcc/fortran/module.c | 1 + gcc/fortran/target-memory.c | 1 + gcc/fortran/trans-common.c | 3 + gcc/fortran/trans-const.c | 1 + gcc/fortran/trans-decl.c | 4 + gcc/fortran/trans-expr.c | 1 + gcc/fortran/trans-intrinsic.c | 3 + gcc/fortran/trans-io.c | 2 + gcc/fortran/trans-openmp.c | 1 + gcc/fortran/trans-stmt.c | 1 + gcc/fortran/trans-types.c | 2 + gcc/fortran/trans.c | 2 + gcc/function.c | 3 + gcc/function.h | 21 + gcc/gcc-symtab.h | 28 + gcc/genattrtab.c | 3 + gcc/genautomata.c | 3 + gcc/genemit.c | 3 + gcc/gengtype.c | 2 +- gcc/genopinit.c | 3 + gcc/genoutput.c | 3 + gcc/genpeep.c | 3 + gcc/genpreds.c | 3 + gcc/gimple-builder.c | 1 + gcc/gimple-expr.c | 2 + gcc/gimple-fold.c | 4 + gcc/gimple-low.c | 2 + gcc/gimple-pretty-print.c | 1 + gcc/gimple-ssa-isolate-paths.c | 1 + gcc/gimple-ssa-strength-reduction.c | 3 + gcc/gimple-streamer-in.c | 1 + gcc/gimple-walk.c | 1 + gcc/gimple.c | 3 + gcc/gimplify-me.c | 3 + gcc/gimplify.c | 7 + gcc/go/ChangeLog | 8 + gcc/go/go-backend.c | 1 + gcc/go/go-gcc.cc | 3 + gcc/go/go-lang.c | 1 + gcc/go/gofrontend/expressions.cc | 2 + gcc/go/gofrontend/gogo-tree.cc | 3 + gcc/graphite-sese-to-poly.c | 1 + gcc/internal-fn.c | 1 + gcc/ipa-devirt.c | 3 + gcc/ipa-inline-analysis.c | 3 + gcc/ipa-inline.c | 2 + gcc/ipa-prop.c | 3 + gcc/ipa-pure-const.c | 2 + gcc/ipa-reference.c | 1 + gcc/ipa-split.c | 4 + gcc/ipa.c | 2 + gcc/java/ChangeLog | 24 + gcc/java/builtins.c | 2 + gcc/java/class.c | 3 + gcc/java/constants.c | 2 + gcc/java/decl.c | 3 + gcc/java/except.c | 2 + gcc/java/expr.c | 2 + gcc/java/jcf-parse.c | 1 + gcc/java/mangle.c | 1 + gcc/java/resource.c | 2 + gcc/java/typeck.c | 2 + gcc/java/verify-glue.c | 1 + gcc/langhooks.c | 2 + gcc/lto-cgraph.c | 1 + gcc/lto-streamer-in.c | 1 + gcc/lto-streamer-out.c | 2 + gcc/lto/ChangeLog | 7 + gcc/lto/lto-lang.c | 2 + gcc/lto/lto-partition.c | 1 + gcc/lto/lto.c | 1 + gcc/objc/ChangeLog | 13 + gcc/objc/objc-act.c | 3 + gcc/objc/objc-encoding.c | 2 + gcc/objc/objc-gnu-runtime-abi-01.c | 1 + gcc/objc/objc-next-runtime-abi-01.c | 1 + gcc/objc/objc-next-runtime-abi-02.c | 1 + gcc/objc/objc-runtime-shared-support.c | 1 + gcc/omp-low.c | 3 + gcc/optabs.c | 3 + gcc/optabs.h | 1 + gcc/passes.c | 2 + gcc/predict.c | 1 + gcc/print-rtl.c | 1 + gcc/print-rtl.h | 27 + gcc/print-tree.c | 3 + gcc/print-tree.h | 46 ++ gcc/realmpfr.c | 1 + gcc/reg-stack.c | 1 + gcc/sdbout.c | 2 + gcc/sese.c | 1 + gcc/simplify-rtx.c | 1 + gcc/stmt.c | 2 + gcc/stmt.h | 34 + gcc/stor-layout.c | 4 + gcc/stor-layout.h | 115 +++ gcc/stringpool.h | 43 ++ gcc/symtab.c | 6 +- gcc/targhooks.c | 3 + gcc/testsuite/ChangeLog | 5 + gcc/testsuite/gcc.dg/plugin/selfassign.c | 1 + .../gcc.dg/plugin/start_unit_plugin.c | 1 + gcc/toplev.c | 2 + gcc/trans-mem.c | 5 + gcc/trans-mem.h | 11 + gcc/tree-affine.c | 1 + gcc/tree-browser.c | 1 + gcc/tree-call-cdce.c | 2 + gcc/tree-cfg.c | 5 + gcc/tree-cfgcleanup.c | 2 + gcc/tree-complex.c | 3 + gcc/tree-data-ref.c | 1 + gcc/tree-dfa.c | 3 + gcc/tree-eh.c | 3 + gcc/tree-emutls.c | 3 + gcc/tree-if-conv.c | 2 + gcc/tree-inline.c | 4 + gcc/tree-inline.h | 9 +- gcc/tree-into-ssa.c | 2 + gcc/tree-iterator.h | 2 + gcc/tree-loop-distribution.c | 2 + gcc/tree-nested.c | 2 + gcc/tree-nrv.c | 1 + gcc/tree-object-size.c | 2 + gcc/tree-object-size.h | 26 + gcc/tree-outof-ssa.c | 2 + gcc/tree-parloops.c | 3 + gcc/tree-phinodes.c | 1 + gcc/tree-predcom.c | 2 + gcc/tree-pretty-print.c | 2 + gcc/tree-profile.c | 3 + gcc/tree-scalar-evolution.c | 2 + gcc/tree-sra.c | 3 + gcc/tree-ssa-address.c | 3 + gcc/tree-ssa-alias.c | 2 + gcc/tree-ssa-ccp.c | 2 + gcc/tree-ssa-coalesce.c | 1 + gcc/tree-ssa-copy.c | 1 + gcc/tree-ssa-copyrename.c | 2 + gcc/tree-ssa-dce.c | 3 + gcc/tree-ssa-dom.c | 2 + gcc/tree-ssa-dse.c | 2 + gcc/tree-ssa-forwprop.c | 3 + gcc/tree-ssa-ifcombine.c | 1 + gcc/tree-ssa-live.c | 2 + gcc/tree-ssa-loop-im.c | 1 + gcc/tree-ssa-loop-ivcanon.c | 1 + gcc/tree-ssa-loop-ivopts.c | 3 + gcc/tree-ssa-loop-manip.c | 1 + gcc/tree-ssa-loop-niter.c | 3 + gcc/tree-ssa-loop-prefetch.c | 1 + gcc/tree-ssa-math-opts.c | 3 + gcc/tree-ssa-operands.c | 3 + gcc/tree-ssa-phiopt.c | 3 + gcc/tree-ssa-phiprop.c | 1 + gcc/tree-ssa-pre.c | 2 + gcc/tree-ssa-propagate.c | 1 + gcc/tree-ssa-reassoc.c | 3 + gcc/tree-ssa-sccvn.c | 3 + gcc/tree-ssa-sink.c | 1 + gcc/tree-ssa-strlen.c | 3 + gcc/tree-ssa-structalias.c | 4 + gcc/tree-ssa-tail-merge.c | 2 + gcc/tree-ssa-ter.c | 1 + gcc/tree-ssa-threadedge.c | 1 + gcc/tree-ssa-uncprop.c | 1 + gcc/tree-ssa.c | 2 + gcc/tree-ssanames.c | 2 + gcc/tree-stdarg.c | 1 + gcc/tree-streamer-in.c | 1 + gcc/tree-streamer-out.c | 1 + gcc/tree-switch-conversion.c | 3 + gcc/tree-tailcall.c | 3 + gcc/tree-vect-data-refs.c | 2 + gcc/tree-vect-generic.c | 2 + gcc/tree-vect-loop-manip.c | 1 + gcc/tree-vect-loop.c | 2 + gcc/tree-vect-patterns.c | 2 + gcc/tree-vect-slp.c | 2 + gcc/tree-vect-stmts.c | 2 + gcc/tree-vectorizer.c | 1 + gcc/tree-vrp.c | 3 + gcc/tree.c | 6 + gcc/tree.h | 634 ++-------------- gcc/tsan.c | 2 + gcc/ubsan.c | 2 + gcc/value-prof.c | 3 + gcc/var-tracking.c | 3 + gcc/varasm.c | 4 + gcc/varasm.h | 69 ++ gcc/varpool.c | 1 + gcc/vmsdbgout.c | 1 + gcc/vtable-verify.c | 1 + gcc/xcoffout.c | 1 + 339 files changed, 2433 insertions(+), 568 deletions(-) create mode 100644 gcc/attribs.h create mode 100644 gcc/calls.h create mode 100644 gcc/fold-const.h create mode 100644 gcc/gcc-symtab.h create mode 100644 gcc/print-rtl.h create mode 100644 gcc/print-tree.h create mode 100644 gcc/stmt.h create mode 100644 gcc/stor-layout.h create mode 100644 gcc/stringpool.h create mode 100644 gcc/tree-object-size.h create mode 100644 gcc/varasm.h diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d1b78d1d5124..9e82c2fb1694 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -911,6 +911,723 @@ * config/tilepro/tilepro.c: Likewise. * config/xtensa/xtensa.c: Likewise. +2013-11-14 Diego Novillo + + * Makefile.in (PLUGIN_HEADERS): Add stringpool.h. + +2013-11-14 Diego Novillo + + * tree.h: Include fold-const.h. + (aggregate_value_p): Moved to function.h. + (alloca_call_p): Moved to calls.h. + (allocate_struct_function): Moved to function.h. + (apply_tm_attr): Moved to attribs.h. + (array_at_struct_end_p): Moved to expr.h. + (array_ref_element_size): Moved to tree-dfa.h. + (array_ref_low_bound): Moved to tree-dfa.h. + (array_ref_up_bound): Moved to tree.h. + (assemble_alias): Moved to cgraph.h. + (bit_from_pos): Moved to stor-layout.h. + (build_addr): Moved to tree-nested.h. + (build_duplicate_type): Moved to tree-inline.h. + (build_fold_addr_expr): Moved to fold-const.h. + (build_fold_addr_expr_with_type): Moved to fold-const.h. + (build_fold_addr_expr_with_type_loc): Moved to fold-const.h. + (build_fold_indirect_ref): Moved to fold-const.h. + (build_fold_indirect_ref_loc): Moved to fold-const.h. + (build_personality_function): Moved to tree.h. + (build_range_check): Moved to fold-const.h. + (build_simple_mem_ref): Moved to fold-const.h. + (build_simple_mem_ref_loc): Moved to fold-const.h. + (build_tm_abort_call): Moved to trans-mem.h. + (byte_from_pos): Moved to stor-layout.h. + (call_expr_flags): Moved to calls.h. + (can_move_by_pieces): Moved to expr.h. + (categorize_ctor_elements): Moved to expr.h. + (change_decl_assembler_name): Moved to gcc-symtab.h. + (combine_comparisons): Moved to fold-const.h. + (complete_ctor_at_level_p): Moved to tree.h. + (component_ref_field_offset): Moved to tree-dfa.h. + (compute_builtin_object_size): Moved to tree-object-size.h. + (compute_record_mode): Moved to stor-layout.h. + (constant_boolean_node): Moved to fold-const.h. + (constructor_static_from_elts_p): Moved to varasm.h. + (cxx11_attribute_p): Moved to attribs.h. + (debug_body): Moved to print-tree.h. + (debug_find_tree): Moved to tree-inline.h. + (debug_fold_checksum): Moved to fold-const.h. + (debug_head): Moved to print-tree.h. + (debug_head): Moved to print-tree.h. + (debug_raw): Moved to print-tree.h. + (debug_tree): Moved to print-tree.h. + (debug_vec_tree): Moved to print-tree.h. + (debug_verbose): Moved to print-tree.h. + (debug_verbose): Moved to print-tree.h. + (decl_attributes): Moved to attribs.h. + (decl_binds_to_current_def_p): Moved to varasm.h. + (decl_default_tls_model): Moved to varasm.h. + (decl_replaceable_p): Moved to varasm.h. + (div_if_zero_remainder): Moved to fold-const.h. + (double_int mem_ref_offset): Moved to fold-const.h. + (dump_addr): Moved to print-tree.h. + (element_precision): Moved to machmode.h. + (expand_dummy_function_end): Moved to function.h. + (expand_function_end): Moved to function.h. + (expand_function_start): Moved to function.h. + (expand_label): Moved to stmt.h. + (expr_first): Moved to tree-iterator.h. + (expr_last): Moved to tree-iterator.h. + (finalize_size_functions): Moved to stor-layout.h. + (finish_builtin_struct): Moved to stor-layout.h. + (finish_record_layout): Moved to stor-layout.h. + (fixup_signed_type): Moved to stor-layout.h. + (fixup_unsigned_type): Moved to stor-layout.h. + (flags_from_decl_or_type): Moved to calls.h. + (fold): Moved to fold-const.h. + (fold_abs_const): Moved to fold-const.h. + (fold_binary): Moved to fold-const.h. + (fold_binary_loc): Moved to fold-const.h. + (fold_binary_to_constant): Moved to fold-const.h. + (fold_build1): Moved to fold-const.h. + (fold_build1_initializer_loc): Moved to fold-const.h. + (fold_build1_loc): Moved to fold-const.h. + (fold_build1_stat_loc): Moved to fold-const.h. + (fold_build2): Moved to fold-const.h. + (fold_build2_initializer_loc): Moved to fold-const.h. + (fold_build2_loc): Moved to fold-const.h. + (fold_build2_stat_loc): Moved to fold-const.h. + (fold_build3): Moved to fold-const.h. + (fold_build3_loc): Moved to fold-const.h. + (fold_build3_stat_loc): Moved to fold-const.h. + (fold_build_call_array): Moved to fold-const.h. + (fold_build_call_array_initializer): Moved to fold-const.h. + (fold_build_call_array_initializer_loc): Moved to fold-const.h. + (fold_build_call_array_loc): Moved to fold-const.h. + (fold_build_cleanup_point_expr): Moved to fold-const.h. + (fold_convert): Moved to fold-const.h. + (fold_convert_loc): Moved to fold-const.h. + (fold_convertible_p): Moved to fold-const.h. + (fold_defer_overflow_warnings): Moved to fold-const.h. + (fold_deferring_overflow_warnings_p): Moved to fold-const.h. + (fold_fma): Moved to fold-const.h. + (fold_ignored_result): Moved to fold-const.h. + (fold_indirect_ref): Moved to fold-const.h. + (fold_indirect_ref_1): Moved to fold-const.h. + (fold_indirect_ref_loc): Moved to fold-const.h. + (fold_read_from_constant_string): Moved to fold-const.h. + (fold_real_zero_addition_p): Moved to fold-const.h. + (fold_single_bit_test): Moved to fold-const.h. + (fold_strip_sign_ops): Moved to fold-const.h. + (fold_ternary): Moved to fold-const.h. + (fold_ternary_loc): Moved to fold-const.h. + (fold_unary): Moved to tree-data-ref.h. + (fold_unary_ignore_overflow): Moved to fold-const.h. + (fold_unary_ignore_overflow_loc): Moved to fold-const.h. + (fold_unary_loc): Moved to fold-const.h. + (fold_unary_to_constant): Moved to fold-const.h. + (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h. + (fold_undefer_overflow_warnings): Moved to fold-const.h. + (folding_initializer): Moved to fold-const.h. + (free_temp_slots): Moved to function.h. + (generate_setjmp_warnings): Moved to function.h. + (get_attribute_name): Moved to attribs.h. + (get_identifier): Moved to stringpool.h. + (get_identifier_with_length): Moved to stringpool.h. + (get_inner_reference): Moved to tree.h. + (gimple_alloca_call_p): Moved to calls.h. + (gimplify_parameters): Moved to function.h. + (highest_pow2_factor): Moved to expr.h. + (indent_to): Moved to print-tree.h. + (init_attributes): Moved to attribs.h. + (init_dummy_function_start): Moved to function.h. + (init_function_start): Moved to function.h. + (init_inline_once): Moved to tree-inline.h. + (init_object_sizes): Moved to tree-object-size.h. + (init_temp_slots): Moved to function.h. + (init_tree_optimization_optabs): Moved to optabs.h. + (initialize_sizetypes): Moved to stor-layout.h. + (initializer_constant_valid_for_bitfield_p): Moved to varasm.h. + (initializer_constant_valid_p): Moved to varasm.h. + (int_const_binop): Moved to fold-const.h. + (internal_reference_types): Moved to stor-layout.h. + (invert_tree_comparison): Moved to fold-const.h. + (invert_truthvalue): Moved to fold-const.h. + (invert_truthvalue_loc): Moved to fold-const.h. + (is_tm_ending_fndecl): Moved to trans-mem.h. + (is_tm_may_cancel_outer): Moved to trans-mem.h. + (is_tm_pure): Moved to trans-mem.h. + (is_tm_safe): Moved to trans-mem.h. + (layout_decl): Moved to stor-layout.h. + (layout_type): Moved to stor-layout.h. + (lookup_attribute_spec): Moved to attribs.h. + (make_accum_type): Moved to stor-layout.h. + (make_decl_one_only): Moved to varasm.h. + (make_decl_rtl): Moved to tree.h. + (make_decl_rtl_for_debug): Moved to varasm.h. + (make_fract_type): Moved to stor-layout.h. + (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h. + (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h. + (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h. + (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h. + (make_or_reuse_signed_accum_type): Moved to stor-layout.h. + (make_or_reuse_signed_fract_type): Moved to stor-layout.h. + (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h. + (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h. + (make_range): Moved to fold-const.h. + (make_range_step): Moved to fold-const.h. + (make_sat_signed_accum_type): Moved to stor-layout.h. + (make_sat_signed_fract_type): Moved to stor-layout.h. + (make_sat_unsigned_accum_type): Moved to stor-layout.h. + (make_sat_unsigned_fract_type): Moved to stor-layout.h. + (make_signed_accum_type): Moved to stor-layout.h. + (make_signed_fract_type): Moved to stor-layout.h. + (make_signed_type): Moved to stor-layout.h. + (make_unsigned_accum_type): Moved to stor-layout.h. + (make_unsigned_fract_type): Moved to stor-layout.h. + (make_unsigned_type): Moved to stor-layout.h. + (mark_decl_referenced): Moved to varasm.h. + (mark_referenced): Moved to varasm.h. + (may_negate_without_overflow_p): Moved to fold-const.h. + (maybe_get_identifier): Moved to stringpool.h. + (merge_ranges): Moved to fold-const.h. + (merge_weak): Moved to varasm.h. + (mode_for_size_tree): Moved to stor-layout.h. + (multiple_of_p): Moved to fold-const.h. + (must_pass_in_stack_var_size): Moved to calls.h. + (must_pass_in_stack_var_size_or_pad): Moved to calls.h. + (native_encode_expr): Moved to fold-const.h. + (native_interpret_expr): Moved to fold-const.h. + (non_lvalue): Moved to fold-const.h. + (non_lvalue_loc): Moved to fold-const.h. + (normalize_offset): Moved to stor-layout.h. + (normalize_rli): Moved to stor-layout.h. + (notice_global_symbol): Moved to varasm.h. + (omit_one_operand): Moved to fold-const.h. + (omit_one_operand_loc): Moved to fold-const.h. + (omit_two_operands): Moved to fold-const.h. + (omit_two_operands_loc): Moved to fold-const.h. + (operand_equal_p): Moved to tree-data-ref.h. + (parse_input_constraint): Moved to stmt.h. + (parse_output_constraint): Moved to stmt.h. + (place_field): Moved to stor-layout.h. + (pop_function_context): Moved to function.h. + (pop_temp_slots): Moved to function.h. + (pos_from_bit): Moved to stor-layout.h. + (preserve_temp_slots): Moved to function.h. + (print_node): Moved to print-tree.h. + (print_node_brief): Moved to print-tree.h. + (print_rtl): Moved to rtl.h. + (process_pending_assemble_externals): Moved to varasm.h. + (ptr_difference_const): Moved to fold-const.h. + (push_function_context): Moved to function.h. + (push_struct_function): Moved to function.h. + (push_temp_slots): Moved to function.h. + (record_tm_replacement): Moved to trans-mem.h. + (relayout_decl): Moved to stor-layout.h. + (resolve_asm_operand_names): Moved to stmt.h. + (resolve_unique_section): Moved to varasm.h. + (rli_size_so_far): Moved to stor-layout.h. + (rli_size_unit_so_far): Moved to stor-layout.h. + (round_down): Moved to fold-const.h. + (round_down_loc): Moved to fold-const.h. + (round_up): Moved to fold-const.h. + (round_up_loc): Moved to fold-const.h. + (set_decl_incoming_rtl): Moved to emit-rtl.h. + (set_decl_rtl): Moved to tree.h. + (set_min_and_max_values_for_integral_type): Moved to stor-layout.h. + (set_user_assembler_name): Moved to varasm.h. + (setjmp_call_p): Moved to calls.h. + (size_binop): Moved to fold-const.h. + (size_binop_loc): Moved to fold-const.h. + (size_diffop): Moved to fold-const.h. + (size_diffop_loc): Moved to fold-const.h. + (size_int_kind): Moved to fold-const.h. + (stack_protect_epilogue): Moved to function.h. + (start_record_layout): Moved to stor-layout.h. + (supports_one_only): Moved to varasm.h. + (swap_tree_comparison): Moved to fold-const.h. + (tm_malloc_replacement): Moved to trans-mem.h. + (tree build_fold_addr_expr_loc): Moved to fold-const.h. + (tree build_invariant_address): Moved to fold-const.h. + (tree_binary_nonnegative_warnv_p): Moved to fold-const.h. + (tree_binary_nonzero_warnv_p): Moved to fold-const.h. + (tree_call_nonnegative_warnv_p): Moved to fold-const.h. + (tree_expr_nonnegative_p): Moved to fold-const.h. + (tree_expr_nonnegative_warnv_p): Moved to fold-const.h. + (tree_output_constant_def): Moved to varasm.h. + (tree_overlaps_hard_reg_set): Moved to stmt.h. + (tree_single_nonnegative_warnv_p): Moved to fold-const.h. + (tree_single_nonzero_warnv_p): Moved to fold-const.h. + (tree_swap_operands_p): Moved to fold-const.h. + (tree_unary_nonnegative_warnv_p): Moved to fold-const.h. + (tree_unary_nonzero_warnv_p): Moved to fold-const.h. + (update_alignment_for_field): Moved to stor-layout.h. + (use_register_for_decl): Moved to function.h. + (variable_size): Moved to rtl.h. + (vector_type_mode): Moved to stor-layout.h. + * cgraph.h: Corresponding changes. + * emit-rtl.h: Corresponding changes. + * expr.h: Corresponding changes. + * function.h: Corresponding changes. + * optabs.h: Corresponding changes. + * trans-mem.h: Corresponding changes. + Protect against multiple inclusion. + * tree-inline.h: Corresponding changes. + * tree-iterator.h: Corresponding changes. + * tree-dfa.h: Include expr.h. + * tree-ssanames.h: Include stringpool.h. + * attribs.h: New file. + * calls.h: New file. + * fold-const.h: New file. + * gcc-symtab.h: New file. + * print-rtl.h: New file. + * print-tree.h: New file. + * stmt.h: New file. + * stor-layout.h: New file. + * strinpool.h: New file. + * tree-nested.h: New file + * tree-object-size.h: New file. + * varasm.h: New file. + +2013-11-14 Diego Novillo + + * alias.c: Include varasm.h. + Include expr.h. + * asan.c: Include calls.h. + Include stor-layout.h. + Include varasm.h. + * attribs.c: Include stringpool.h. + Include attribs.h. + Include stor-layout.h. + * builtins.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + Include tree-object-size.h. + * calls.c: Include stor-layout.h. + Include varasm.h. + Include stringpool.h. + Include attribs.h. + * cfgexpand.c: Include stringpool.h. + Include varasm.h. + Include stor-layout.h. + Include stmt.h. + Include print-tree.h. + * cgraph.c: Include varasm.h. + Include calls.h. + Include print-tree.h. + * cgraphclones.c: Include stringpool.h. + Include function.h. + Include emit-rtl.h. + Move inclusion of rtl.h earlier in the file. + * cgraphunit.c: Include varasm.h. + Include stor-layout.h. + Include stringpool.h. + * cilk-common.c: Include stringpool.h. + Include stor-layout.h. + * combine.c: Include stor-layout.h. + * config/aarch64/aarch64-builtins.c: Include stor-layout.h. + Include stringpool.h. + Include calls.h. + * config/aarch64/aarch64.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/alpha/alpha.c: Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/arc/arc.c: Include varasm.h. + Include stor-layout.h. + Include stringpool.h. + Include calls.h. + * config/arm/arm.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/avr/avr-c.c: Include stor-layout.h. + * config/avr/avr-log.c: Include print-tree.h. + * config/avr/avr.c: Include print-tree.h. + Include calls.h. + Include stor-layout.h. + Include stringpool.h. + * config/bfin/bfin.c: Include varasm.h. + Include calls.h. + * config/c6x/c6x.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + Include stringpool.h. + * config/cr16/cr16.c: Include stor-layout.h. + Include calls.h. + * config/cris/cris.c: Include varasm.h. + Include stor-layout.h. + Include calls.h. + Include stmt.h. + * config/darwin.c: Include stringpool.h. + Include varasm.h. + Include stor-layout.h. + * config/epiphany/epiphany.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + Include stringpool.h. + * config/fr30/fr30.c: Include stor-layout.h. + Include varasm.h. + * config/frv/frv.c: Include varasm.h. + Include stor-layout.h. + Include stringpool.h. + * config/h8300/h8300.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + Include stringpool.h. + * config/i386/i386.c: Include stringpool.h. + Include attribs.h. + Include calls.h. + Include stor-layout.h. + Include varasm.h. + * config/i386/winnt-cxx.c: Include stringpool.h. + Include attribs.h. + * config/i386/winnt.c: Include stringpool.h. + Include varasm.h. + * config/ia64/ia64-c.c: Include stringpool.h. + * config/ia64/ia64.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/iq2000/iq2000.c: Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/lm32/lm32.c: Include calls.h. + * config/m32c/m32c.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/m32r/m32r.c: Include stor-layout.h. + Include varasm.h. + Include stringpool.h. + Include calls.h. + * config/m68k/m68k.c: Include calls.h. + Include stor-layout.h. + Include varasm.h. + * config/mcore/mcore.c: Include stor-layout.h. + Include varasm.h. + Include stringpool.h. + Include calls.h. + * config/mep/mep.c: Include varasm.h. + Include calls.h. + Include stringpool.h. + Include stor-layout.h. + * config/microblaze/microblaze.c: Include varasm.h. + Include stor-layout.h. + Include calls.h. + * config/mips/mips.c: Include varasm.h. + Include stringpool.h. + Include stor-layout.h. + Include calls.h. + * config/mmix/mmix.c: Include varasm.h. + Include stor-layout.h. + Include calls.h. + * config/mn10300/mn10300.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/moxie/moxie.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/msp430/msp430.c: Include stor-layout.h. + Include calls.h. + * config/nds32/nds32.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/pa/pa.c: Include stor-layout.h. + Include stringpool.h. + Include varasm.h. + Include calls.h. + * config/pdp11/pdp11.c: Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/picochip/picochip.c: Include calls.h. + Include stor-layout.h. + Include stringpool.h. + Include varasm.h. + * config/rl78/rl78.c: Include varasm.h. + Include stor-layout.h. + Include calls.h. + * config/rs6000/rs6000-c.c: Include stor-layout.h. + Include stringpool.h. + * config/rs6000/rs6000.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include print-tree.h. + Include varasm.h. + * config/rx/rx.c: Include varasm.h. + Include stor-layout.h. + Include calls.h. + * config/s390/s390.c: Include print-tree.h. + Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/score/score.c: Include stringpool.h. + Include calls.h. + Include varasm.h. + Include stor-layout.h. + * config/sh/sh-c.c: Include stringpool.h. + Include attribs.h.h. + * config/sh/sh.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/sol2-c.c: Include stringpool.h. + Include attribs.h. + * config/sol2-cxx.c: Include stringpool.h. + * config/sol2.c: Include stringpool.h. + Include varasm.h. + * config/sparc/sparc.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/spu/spu-c.c: Include stringpool.h. + * config/spu/spu.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * config/stormy16/stormy16.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/tilegx/tilegx.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/tilepro/tilepro.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/v850/v850-c.c: Include stringpool.h. + Include attribs.h. + * config/v850/v850.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include calls.h. + * config/vax/vax.c: Include calls.h. + Include varasm.h. + * config/vms/vms.c: Include stringpool.h. + * config/vxworks.c: Include stringpool.h. + * config/xtensa/xtensa.c: Include stringpool.h. + Include stor-layout.h. + Include calls.h. + Include varasm.h. + * convert.c: Include stor-layout.h. + * coverage.c: Include stringpool.h. + Include stor-layout.h. + * dbxout.c: Include varasm.h. + Include stor-layout.h. + * dojump.c: Include stor-layout.h. + * dse.c: Include stor-layout.h. + * dwarf2asm.c: Include stringpool.h. + Include varasm.h. + * dwarf2cfi.c: Include stor-layout.h. + * dwarf2out.c: Include rtl.h. + Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include function.h. + Include emit-rtl.h. + Move inclusion of rtl.h earlier in the file. + * emit-rtl.c: Include varasm.h. + * except.c: Include stringpool.h. + Include stor-layout.h. + * explow.c: Include stor-layout.h. + * expmed.c: Include stor-layout.h. + * expr.c: Include stringpool.h. + Include stor-layout.h. + Include attribs.h. + Include varasm.h. + * final.c: Include varasm.h. + * fold-const.c: Include stor-layout.h. + Include calls.h. + Include tree-iterator.h. + * function.c: Include stor-layout.h. + Include varasm.h. + Include stringpool.h. + * genattrtab.c (write_header): Emit includes for varasm.h, + stor-layout.h and calls.h. + * genautomata.c (main): Likewise. + * genemit.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c (output_prologue): Likewise. + * genpeep.c: Likewise. + * genpreds.c (write_insn_preds_c): Likewise. + * gengtype.c (open_base_files): Add stringpool.h. + * gimple-expr.c: Include stringpool.h. + Include stor-layout.h. + * gimple-fold.c: Include stringpool.h. + Include expr.h. + Include stmt.h. + Include stor-layout.h. + * gimple-low.c: Include tree-nested.h. + Include calls.h. + * gimple-pretty-print.c: Include stringpool.h. + * gimple-ssa-strength-reduction.c: Include stor-layout.h. + Include expr.h. + * gimple-walk.c: Include stmt.h. + * gimple.c: Include calls.h. + Include stmt.h. + Include stor-layout.h. + * gimplify.c: Include stringpool.h. + Include calls.h. + Include varasm.h. + Include stor-layout.h. + Include stmt.h. + Include print-tree.h. + Include expr.h. + * gimplify-me.c: Include stmt.h + Include stor-layout.h + * internal-fn.c: Include stor-layout.h. + * ipa-devirt.c: Include print-tree.h. + Include calls.h. + * ipa-inline-analysis.c: Include stor-layout.h. + Include stringpool.h. + Include print-tree.h. + * ipa-inline.c: Include trans-mem.h. + Include calls.h. + * ipa-prop.c: Include expr.h. + Include stor-layout.h. + Include print-tree.h. + * ipa-pure-const.c: Include print-tree.h. + Include calls.h. + * ipa-reference.c: Include calls.h. + * ipa-split.c: Include stringpool.h. + Include expr.h. + Include calls.h. + * ipa.c: Include calls.h. + Include stringpool.h. + * langhooks.c: Include stringpool.h. + Include attribs.h. + * lto-cgraph.c: Include stringpool.h. + * lto-streamer-in.c: Include stringpool.h. + * lto-streamer-out.c: Include stor-layout.h. + Include stringpool.h. + * omp-low.c: Include stringpool.h. + Include stor-layout.h. + Include expr.h. + * optabs.c: Include stor-layout.h. + Include stringpool.h. + Include varasm.h. + * passes.c: Include varasm.h. + * predict.c: Include calls.h. + * print-rtl.c: Include print-tree.h. + * print-tree.c: Include varasm.h. + Include print-rtl.h. + Include stor-layout.h. + * realmpfr.c: Include stor-layout.h. + * reg-stack.c: Include varasm.h. + * sdbout.c: Include varasm.h. + Include stor-layout.h. + * simplify-rtx.c: Include varasm.h. + * stmt.c: Include varasm.h. + Include stor-layout.h. + * stor-layout.c: Include stor-layout.h. + Include stringpool.h. + Include varasm.h. + Include print-tree.h. + * symtab.c: Include rtl.h. + Include print-tree.h. + Include varasm.h. + Include function.h. + Include emit-rtl.h. + * targhooks.c: Include stor-layout.h. + Include varasm.h. + * toplev.c: Include varasm.h. + Include tree-inline.h. + * trans-mem.c: Include calls.h. + Include function.h. + Include rtl.h. + Include emit-rtl.h. + * tree-affine.c: Include expr.h. + * tree-browser.c: Include print-tree.h. + * tree-call-cdce.c: Include stor-layout.h. + * tree-cfg.c: Include trans-mem.h. + Include stor-layout.h. + Include print-tree.h. + * tree-complex.c: Include stor-layout.h. + * tree-data-ref.c: Include expr.h. + * tree-dfa.c: Include stor-layout.h. + * tree-eh.c: Include expr.h. + Include calls.h. + * tree-emutls.c: Include stor-layout.h. + Include varasm.h. + * tree-if-conv.c: Include stor-layout.h. + * tree-inline.c: Include stor-layout.h. + Include calls.h. + * tree-loop-distribution.c: Include stor-layout.h. + * tree-nested.c: Include stringpool.h. + Include stor-layout.h. + * tree-object-size.c: Include tree-object-size.h. + * tree-outof-ssa.c: Include stor-layout.h. + * tree-parloops.c: Include stor-layout.h. + Include tree-nested.h. + * tree-pretty-print.c: Include stor-layout.h. + Include expr.h. + * tree-profile.c: Include varasm.h. + Include tree-nested.h. + * tree-scalar-evolution.c: Include expr.h. + * tree-sra.c: Include stor-layout.h. + * tree-ssa-address.c: Include stor-layout.h. + * tree-ssa-ccp.c: Include stor-layout.h. + * tree-ssa-dce.c: Include calls.h. + * tree-ssa-dom.c: Include stor-layout.h. + * tree-ssa-forwprop.c: Include stor-layout.h. + * tree-ssa-ifcombine.c: Include stor-layout.h. + * tree-ssa-loop-ivopts.c: Include stor-layout.h. + * tree-ssa-loop-niter.c: Include calls.h. + Include expr.h. + * tree-ssa-loop-prefetch.c: Include stor-layout.h. + * tree-ssa-math-opts.c: Include stor-layout.h. + * tree-ssa-operands.c: Include stmt.h. + Include print-tree.h. + * tree-ssa-phiopt.c: Include stor-layout.h. + * tree-ssa-reassoc.c: Include stor-layout.h. + * tree-ssa-sccvn.c: Include stor-layout.h. + * tree-ssa-sink.c: Include stor-layout.h. + * tree-ssa-strlen.c: Include stor-layout.h. + * tree-ssa-structalias.c: Include stor-layout.h. + Include stmt.h. + * tree-ssa-tail-merge.c: Include stor-layout.h. + Include trans-mem.h. + * tree-ssa-uncprop.c: Include stor-layout.h. + * tree-ssa.c: Include stor-layout.h. + * tree-ssanames.c: Include stor-layout.h. + * tree-streamer-in.c: Include stringpool.h. + * tree-streamer-out.c: Include stor-layout.h. + * tree-switch-conversion.c: Include varasm.h. + Include stor-layout.h. + * tree-tailcall.c: Include stor-layout.h. + * tree-vect-data-refs.c: Include stor-layout.h. + * tree-vect-generic.c: Include stor-layout.h. + * tree-vect-loop.c: Include stor-layout.h. + * tree-vect-patterns.c: Include stor-layout.h. + * tree-vect-slp.c: Include stor-layout.h. + * tree-vect-stmts.c: Include stor-layout.h. + * tree-vectorizer.c: Include stor-layout.h. + * tree-vrp.c: Include stor-layout.h. + Include calls.h. + * tree.c: Include stor-layout.h. + Include calls.h. + Include attribs.h. + Include varasm.h. + * tsan.c: Include expr.h. + * ubsan.c: Include stor-layout.h. + Include stringpool.h. + * value-prof.c: Include tree-nested.h. + Include calls.h. + * var-tracking.c: Include varasm.h. + Include stor-layout.h. + * varasm.c: Include stor-layout.h. + Include stringpool.h. + Include gcc-symtab.h. + Include varasm.h. + * varpool.c: Include varasm.h. + * vmsdbgout.c: Include varasm.h. + * xcoffout.c: Include varasm.h. + 2013-11-14 Joern Rennecke * config/arc/arc.md (doloop_begin_i): Remove extra alignment; diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 77fba80cffc5..8cc8341048e7 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -3115,7 +3115,7 @@ PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ cppdefault.h flags.h $(MD5_H) params.def params.h prefix.h tree-inline.h \ $(GIMPLE_PRETTY_PRINT_H) realmpfr.h \ $(IPA_PROP_H) $(TARGET_H) $(RTL_H) $(TM_P_H) $(CFGLOOP_H) $(EMIT_RTL_H) \ - version.h + version.h stringpool.h # generate the 'build fragment' b-header-vars s-header-vars: Makefile diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index a9fd65b16cd7..4d55405f6948 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -64,6 +64,25 @@ * gcc-interface/trans.c: Include gimple.h and pointer-set.h. +2013-11-14 Diego Novillo + + * gcc-interface/decl.c: Include stringpool.h + Include stor-layout.h + * gcc-interface/misc.c: Include stor-layout.h + Include print-tree.h + * gcc-interface/trans.c: Include stringpool.h + Include stor-layout.h + Include stmt.h + Include varasm.h + * gcc-interface/utils.c: Include stringpool.h + Include stor-layout.h + Include attribs.h + Include varasm.h + * gcc-interface/utils2.c: Include stringpool.h + Include stor-layout.h + Include attribs.h + Include varasm.h + 2013-11-12 Andrew MacLeod * gcc-interface/trans.c: Include gimplify.h. diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index f5d7f2fc0c26..0d72be255a59 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -28,6 +28,8 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "flags.h" #include "toplev.h" #include "ggc.h" diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index a82f6fd8f82c..fc74be28fb84 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -30,6 +30,8 @@ #include "options.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "print-tree.h" #include "diagnostic.h" #include "target.h" #include "ggc.h" diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index f699fd85d183..53e66780f84a 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -28,6 +28,10 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "stmt.h" +#include "varasm.h" #include "flags.h" #include "ggc.h" #include "output.h" diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index b92531b3fd65..4995ca4e92c6 100644 --- a/gcc/ada/gcc-interface/utils.c +++ b/gcc/ada/gcc-interface/utils.c @@ -28,6 +28,10 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "attribs.h" +#include "varasm.h" #include "flags.h" #include "toplev.h" #include "diagnostic-core.h" diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c index c45f1c3fc636..184a223ff132 100644 --- a/gcc/ada/gcc-interface/utils2.c +++ b/gcc/ada/gcc-interface/utils2.c @@ -28,6 +28,9 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "varasm.h" #include "flags.h" #include "toplev.h" #include "ggc.h" diff --git a/gcc/alias.c b/gcc/alias.c index f0bb32bf3284..68650f021104 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "varasm.h" +#include "expr.h" #include "tm_p.h" #include "function.h" #include "alias.h" diff --git a/gcc/asan.c b/gcc/asan.c index d940b2c0f438..d44aa636c559 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -26,8 +26,12 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "gimplify.h" #include "gimple-iterator.h" +#include "calls.h" +#include "varasm.h" +#include "stor-layout.h" #include "tree-iterator.h" #include "cgraph.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "asan.h" diff --git a/gcc/attribs.c b/gcc/attribs.c index 296bcd6eb740..19b697d416ff 100644 --- a/gcc/attribs.c +++ b/gcc/attribs.c @@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" +#include "stor-layout.h" #include "flags.h" #include "diagnostic-core.h" #include "ggc.h" diff --git a/gcc/attribs.h b/gcc/attribs.h new file mode 100644 index 000000000000..042e112ea8e8 --- /dev/null +++ b/gcc/attribs.h @@ -0,0 +1,40 @@ +/* Declarations and definitions dealing with attribute handling. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_ATTRIBS_H +#define GCC_ATTRIBS_H + +extern const struct attribute_spec *lookup_attribute_spec (const_tree); +extern void init_attributes (void); + +/* Process the attributes listed in ATTRIBUTES and install them in *NODE, + which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL, + it should be modified in place; if a TYPE, a copy should be created + unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further + information, in the form of a bitwise OR of flags in enum attribute_flags + from tree.h. Depending on these flags, some attributes may be + returned to be applied at a later stage (for example, to apply + a decl attribute to the declaration rather than to its type). */ +extern tree decl_attributes (tree *, tree, int); + +extern bool cxx11_attribute_p (const_tree); +extern tree get_attribute_name (const_tree); +extern void apply_tm_attr (tree, tree); + +#endif // GCC_ATTRIBS_H diff --git a/gcc/builtins.c b/gcc/builtins.c index 7dc980f9bf53..e96245709c08 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see #include "machmode.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" +#include "tree-object-size.h" #include "realmpfr.h" #include "gimple.h" #include "flags.h" diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 89c975db1c55..599c024c9b04 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -63,6 +63,29 @@ * c-gimplify.c: Likewise. * cilk.c: Likewise. +2013-11-14 Diego Novillo + + * c-common.c: Include fold-const.h. + Include stor-layout.h. + Include calls.h. + Include stringpool.h. + Include attribs.h. + Include varasm.h. + Include trans-mem.h. + * c-cppbuiltin.c: Include stor-layout.h. + Include stringpool.h. + * c-format.c: Include stringpool.h. + * c-lex.c: Include stringpool.h. + Include stor-layout.h. + * c-pragma.c: Include stringpool.h. + Include attribs.h. + Include varasm.h. + Include gcc-symtab.h. + * c-pretty-print.c: Include stor-layout.h. + Include attribs.h. + * cilk.c: Include stringpool.h. + Include calls.h. + 2013-11-13 Joseph Myers * c-common.h (enum rid): Add RID_AUTO_TYPE. diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 83d6253cbfd4..b4bd63ba213b 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -23,6 +23,13 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "intl.h" #include "tree.h" +#include "fold-const.h" +#include "stor-layout.h" +#include "calls.h" +#include "stringpool.h" +#include "attribs.h" +#include "varasm.h" +#include "trans-mem.h" #include "flags.h" #include "c-pragma.h" #include "ggc.h" diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c index c5e895c58506..eb96b8338b05 100644 --- a/gcc/c-family/c-cppbuiltin.c +++ b/gcc/c-family/c-cppbuiltin.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "version.h" #include "flags.h" #include "c-common.h" diff --git a/gcc/c-family/c-format.c b/gcc/c-family/c-format.c index b3e1e3993532..8f6c0db46ae1 100644 --- a/gcc/c-family/c-format.c +++ b/gcc/c-family/c-format.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "flags.h" #include "c-common.h" #include "c-objc.h" diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c index 6484352f4c61..85fa42671a11 100644 --- a/gcc/c-family/c-lex.c +++ b/gcc/c-family/c-lex.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "input.h" #include "c-common.h" #include "flags.h" diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c index 029ab1e33ace..70fb39ae9cfb 100644 --- a/gcc/c-family/c-pragma.c +++ b/gcc/c-family/c-pragma.c @@ -22,6 +22,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" +#include "varasm.h" +#include "gcc-symtab.h" #include "function.h" /* For cfun. FIXME: Does the parser know when it is inside a function, so that we don't have to look at cfun? */ diff --git a/gcc/c-family/c-pretty-print.c b/gcc/c-family/c-pretty-print.c index 7898f13172c9..af8a3fcdbe93 100644 --- a/gcc/c-family/c-pretty-print.c +++ b/gcc/c-family/c-pretty-print.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "attribs.h" #include "intl.h" #include "c-pretty-print.h" #include "tree-pretty-print.h" diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c index 165348f124cf..894a35270c54 100644 --- a/gcc/c-family/cilk.c +++ b/gcc/c-family/cilk.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "calls.h" #include "langhooks.h" #include "gimple.h" #include "gimplify.h" diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index e8a5365592d2..92dbcee48094 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -39,6 +39,24 @@ * c-typeck.c: Include only gimplify.h and gimple.h as needed. +2013-11-14 Diego Novillo + + * c-decl.c: Include print-tree.h. + Include stor-layout.h. + Include varasm.h. + Include attribs.h. + Include stringpool.h. + * c-lang.c: Include fold-const.h. + * c-parser.c: Include stringpool.h. + Include attribs.h. + Include stor-layout.h. + Include varasm.h. + Include trans-mem.h. + * c-typeck.c: Include stor-layout.h. + Include trans-mem.h. + Include varasm.h. + Include stmt.h. + 2013-11-13 Joseph Myers * c-tree.h (c_typespec_keyword): Add cts_auto_type. diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index 10933e80d1a1..4125bd941036 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -31,6 +31,11 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "intl.h" #include "tree.h" +#include "print-tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "attribs.h" +#include "stringpool.h" #include "tree-inline.h" #include "flags.h" #include "function.h" diff --git a/gcc/c/c-lang.c b/gcc/c/c-lang.c index 614c46d15ebd..8b0dca601e9a 100644 --- a/gcc/c/c-lang.c +++ b/gcc/c/c-lang.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "fold-const.h" #include "c-tree.h" #include "c-family/c-common.h" #include "langhooks.h" diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 74eb13a3f7e0..ea3aa9a10438 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -40,6 +40,11 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" /* For rtl.h: needs enum reg_class. */ #include "tree.h" +#include "stringpool.h" +#include "attribs.h" +#include "stor-layout.h" +#include "varasm.h" +#include "trans-mem.h" #include "langhooks.h" #include "input.h" #include "cpplib.h" diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c index 42b6a6e31229..8e74b7b39188 100644 --- a/gcc/c/c-typeck.c +++ b/gcc/c/c-typeck.c @@ -28,6 +28,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "trans-mem.h" +#include "varasm.h" +#include "stmt.h" #include "langhooks.h" #include "c-tree.h" #include "c-lang.h" diff --git a/gcc/calls.c b/gcc/calls.c index 4dcdb27c1c15..726ba23c3fc1 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "stringpool.h" +#include "attribs.h" #include "gimple.h" #include "flags.h" #include "expr.h" diff --git a/gcc/calls.h b/gcc/calls.h new file mode 100644 index 000000000000..8e7273829050 --- /dev/null +++ b/gcc/calls.h @@ -0,0 +1,31 @@ +/* Declarations anda data types for RTL call insn generation. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_CALLS_H +#define GCC_CALLS_H + +extern int flags_from_decl_or_type (const_tree); +extern int call_expr_flags (const_tree); +extern int setjmp_call_p (const_tree); +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); + +#endif // GCC_CALLS_H diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 85732c8f0d75..4ff1a8954281 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see #include "rtl.h" #include "hard-reg-set.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" +#include "stor-layout.h" +#include "stmt.h" +#include "print-tree.h" #include "tm_p.h" #include "basic-block.h" #include "function.h" diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 996f1b660900..624d492cb75f 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -28,6 +28,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "calls.h" +#include "print-tree.h" #include "tree-inline.h" #include "langhooks.h" #include "hashtab.h" diff --git a/gcc/cgraph.h b/gcc/cgraph.h index f81b7b533ff8..651f34e6fc22 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -852,6 +852,8 @@ void symtab_initialize_asm_name_hash (void); void symtab_prevail_in_asm_name_hash (symtab_node *node); void varpool_remove_initializer (struct varpool_node *); +/* In cgraph.c */ +extern void change_decl_assembler_name (tree, tree); /* Return callgraph node for given symbol and check it is a function. */ static inline struct cgraph_node * diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c index 28e40639e32d..795a321ae570 100644 --- a/gcc/cgraphclones.c +++ b/gcc/cgraphclones.c @@ -68,9 +68,12 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tm.h" +#include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "function.h" +#include "emit-rtl.h" #include "gimple.h" -#include "rtl.h" #include "bitmap.h" #include "tree-cfg.h" #include "tree-inline.h" diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index ce52115b99cd..2fcd313b8532 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -162,6 +162,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "stringpool.h" #include "output.h" #include "rtl.h" #include "gimple.h" diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c index 98b85988764e..bdea617a2e87 100644 --- a/gcc/cilk-common.c +++ b/gcc/cilk-common.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "langhooks.h" #include "expr.h" #include "optabs.h" diff --git a/gcc/combine.c b/gcc/combine.c index 13f5e29e3d61..fb5c8814edb8 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -81,6 +81,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "flags.h" #include "regs.h" diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c index 2f1a8d03cb16..2dc7838003b2 100644 --- a/gcc/config/aarch64/aarch64-builtins.c +++ b/gcc/config/aarch64/aarch64-builtins.c @@ -24,6 +24,9 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "calls.h" #include "expr.h" #include "tm_p.h" #include "recog.h" diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index edd378ce69d8..f9da7c424340 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -26,6 +26,10 @@ #include "rtl.h" #include "insn-attr.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "regs.h" #include "df.h" #include "hard-reg-set.h" diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index e710b0c37172..a5171ea0def9 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -25,6 +25,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" @@ -51,6 +54,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "gimplify.h" #include "gimple-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-stdarg.h" #include "tm-constrs.h" diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index f813c90763df..77932ce567c6 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index a5bd01006b6c..2d5f8671b143 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -27,6 +27,10 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "obstack.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/avr/avr-c.c b/gcc/config/avr/avr-c.c index 4e64405a3516..2cfb264ad204 100644 --- a/gcc/config/avr/avr-c.c +++ b/gcc/config/avr/avr-c.c @@ -26,6 +26,7 @@ #include "tm_p.h" #include "cpplib.h" #include "tree.h" +#include "stor-layout.h" #include "target.h" #include "c-family/c-common.h" #include "langhooks.h" diff --git a/gcc/config/avr/avr-log.c b/gcc/config/avr/avr-log.c index 87fa14d70064..3d2f54d9707a 100644 --- a/gcc/config/avr/avr-log.c +++ b/gcc/config/avr/avr-log.c @@ -24,6 +24,7 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "print-tree.h" #include "output.h" #include "input.h" #include "function.h" diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index e7e1c2f138bd..8d98c811d9b7 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -32,6 +32,10 @@ #include "flags.h" #include "reload.h" #include "tree.h" +#include "print-tree.h" +#include "calls.h" +#include "stor-layout.h" +#include "stringpool.h" #include "output.h" #include "expr.h" #include "c-family/c-common.h" diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c index bd677f88bab7..0d473cbafbcc 100644 --- a/gcc/config/bfin/bfin.c +++ b/gcc/config/bfin/bfin.c @@ -32,6 +32,8 @@ #include "output.h" #include "insn-attr.h" #include "tree.h" +#include "varasm.h" +#include "calls.h" #include "flags.h" #include "except.h" #include "function.h" diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index a37e02ff8341..af310bac8dc5 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -25,6 +25,10 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" +#include "stringpool.h" #include "insn-flags.h" #include "output.h" #include "insn-attr.h" diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c index 1ac29cc800aa..b3972766d5bf 100644 --- a/gcc/config/cr16/cr16.c +++ b/gcc/config/cr16/cr16.c @@ -24,6 +24,8 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" #include "tm_p.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 7432251b9505..2d2a108031d7 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -30,6 +30,10 @@ along with GCC; see the file COPYING3. If not see #include "insn-attr.h" #include "flags.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "calls.h" +#include "stmt.h" #include "expr.h" #include "except.h" #include "function.h" diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 63efe49475d3..761576df5657 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -32,6 +32,9 @@ along with GCC; see the file COPYING3. If not see #include "insn-attr.h" #include "flags.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" +#include "stor-layout.h" #include "expr.h" #include "reload.h" #include "function.h" diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c index 3a09efa0a1c2..88459e2d4adf 100644 --- a/gcc/config/epiphany/epiphany.c +++ b/gcc/config/epiphany/epiphany.c @@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" +#include "stringpool.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c index 4a45feafd047..caa50d9e691a 100644 --- a/gcc/config/fr30/fr30.c +++ b/gcc/config/fr30/fr30.c @@ -33,6 +33,8 @@ #include "flags.h" #include "recog.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" #include "output.h" #include "expr.h" #include "obstack.h" diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index bcd55111434a..6e74fe48eaac 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "stringpool.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 69f37fd02d6b..f0ebca30f2c7 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" +#include "stringpool.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index d95ca3519061..7ae9f57aeee3 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -23,6 +23,11 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" +#include "calls.h" +#include "stor-layout.h" +#include "varasm.h" #include "tm_p.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/i386/winnt-cxx.c b/gcc/config/i386/winnt-cxx.c index 92de46abd59a..d466299abedb 100644 --- a/gcc/config/i386/winnt-cxx.c +++ b/gcc/config/i386/winnt-cxx.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" #include "cp/cp-tree.h" /* This is why we're a separate module. */ #include "flags.h" #include "tm_p.h" diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c index 94155d89a7fd..2c1677eec883 100644 --- a/gcc/config/i386/winnt.c +++ b/gcc/config/i386/winnt.c @@ -27,6 +27,8 @@ along with GCC; see the file COPYING3. If not see #include "hard-reg-set.h" #include "output.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" #include "flags.h" #include "tm_p.h" #include "diagnostic-core.h" diff --git a/gcc/config/ia64/ia64-c.c b/gcc/config/ia64/ia64-c.c index 4d4dbc843698..6489668b7d99 100644 --- a/gcc/config/ia64/ia64-c.c +++ b/gcc/config/ia64/ia64-c.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "cpplib.h" #include "c-family/c-common.h" #include "c-family/c-pragma.h" diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 4fde7aab43e5..307681c995d1 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c index e65d0ccdc030..e6d1171ca858 100644 --- a/gcc/config/iq2000/iq2000.c +++ b/gcc/config/iq2000/iq2000.c @@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c index 6483a03e57dc..6bddc488727a 100644 --- a/gcc/config/lm32/lm32.c +++ b/gcc/config/lm32/lm32.c @@ -35,6 +35,7 @@ #include "recog.h" #include "output.h" #include "tree.h" +#include "calls.h" #include "expr.h" #include "flags.h" #include "reload.h" diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index deac40c228f8..ec30b8d7f9ba 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -36,6 +36,9 @@ #include "diagnostic-core.h" #include "obstack.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "expr.h" #include "optabs.h" #include "except.h" diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index c94da538fcfb..6cee5d728b35 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -22,6 +22,10 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "stringpool.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 7035504bfe3c..db1554deb365 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "calls.h" +#include "stor-layout.h" +#include "varasm.h" #include "rtl.h" #include "function.h" #include "regs.h" diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c index 6550b6905f0a..6bd60702fa24 100644 --- a/gcc/config/mcore/mcore.c +++ b/gcc/config/mcore/mcore.c @@ -23,6 +23,10 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "stringpool.h" +#include "calls.h" #include "tm_p.h" #include "mcore.h" #include "regs.h" diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c index 489bef9c2d3d..6ce6c530077a 100644 --- a/gcc/config/mep/mep.c +++ b/gcc/config/mep/mep.c @@ -24,6 +24,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "varasm.h" +#include "calls.h" +#include "stringpool.h" +#include "stor-layout.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c index 3258a95ef3a1..93dede4d189d 100644 --- a/gcc/config/microblaze/microblaze.c +++ b/gcc/config/microblaze/microblaze.c @@ -33,6 +33,9 @@ #include "insn-attr.h" #include "recog.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "calls.h" #include "function.h" #include "expr.h" #include "flags.h" diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 80bbb00c2c84..00c6e0c90ae0 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see #include "recog.h" #include "output.h" #include "tree.h" +#include "varasm.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" #include "function.h" #include "expr.h" #include "optabs.h" diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c index 34b4fea7503e..eb43af71d08e 100644 --- a/gcc/config/mmix/mmix.c +++ b/gcc/config/mmix/mmix.c @@ -31,6 +31,9 @@ along with GCC; see the file COPYING3. If not see #include "basic-block.h" #include "flags.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "calls.h" #include "function.h" #include "expr.h" #include "diagnostic-core.h" diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c index df563d03eac7..342c336f118b 100644 --- a/gcc/config/mn10300/mn10300.c +++ b/gcc/config/mn10300/mn10300.c @@ -24,6 +24,9 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c index d4f7d6d9d680..abba0aebd2d1 100644 --- a/gcc/config/moxie/moxie.c +++ b/gcc/config/moxie/moxie.c @@ -36,6 +36,9 @@ #include "diagnostic-core.h" #include "obstack.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "expr.h" #include "optabs.h" #include "except.h" diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c index 1ebb583c1ed0..daff4ae1623e 100644 --- a/gcc/config/msp430/msp430.c +++ b/gcc/config/msp430/msp430.c @@ -23,6 +23,8 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c index f039e2789c5f..4454bf2d0d40 100644 --- a/gcc/config/nds32/nds32.c +++ b/gcc/config/nds32/nds32.c @@ -25,6 +25,9 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 260830f00d7f..2aa63c6bd0c8 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -30,6 +30,10 @@ along with GCC; see the file COPYING3. If not see #include "insn-attr.h" #include "flags.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "varasm.h" +#include "calls.h" #include "output.h" #include "dbxout.h" #include "except.h" diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c index 0a310c50d79f..42237b5d798c 100644 --- a/gcc/config/pdp11/pdp11.c +++ b/gcc/config/pdp11/pdp11.c @@ -33,6 +33,9 @@ along with GCC; see the file COPYING3. If not see #include "flags.h" #include "recog.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "expr.h" #include "diagnostic-core.h" #include "tm_p.h" diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c index 641bccb81f61..4756cb78b724 100644 --- a/gcc/config/picochip/picochip.c +++ b/gcc/config/picochip/picochip.c @@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not, see #include "recog.h" #include "obstack.h" #include "tree.h" +#include "calls.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "varasm.h" #include "expr.h" #include "optabs.h" #include "except.h" diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c index f071e31daf28..72aefc205a1e 100644 --- a/gcc/config/rl78/rl78.c +++ b/gcc/config/rl78/rl78.c @@ -23,6 +23,9 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index 283cc917ae8b..667e5a6de180 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -26,6 +26,8 @@ #include "tm.h" #include "cpplib.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "c-family/c-common.h" #include "c-family/c-pragma.h" #include "diagnostic-core.h" diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index bfa061c8c6e4..fa79a02a936b 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -32,6 +32,11 @@ #include "recog.h" #include "obstack.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "print-tree.h" +#include "varasm.h" #include "expr.h" #include "optabs.h" #include "except.h" diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c index 89860927a82c..662ab9b72ccb 100644 --- a/gcc/config/rx/rx.c +++ b/gcc/config/rx/rx.c @@ -27,6 +27,9 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index 8519cd0452d4..cae4a329f4e6 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -26,6 +26,11 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "print-tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "tm_p.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/score/score.c b/gcc/config/score/score.c index c25aaa2da93f..3fdf2ea90501 100644 --- a/gcc/config/score/score.c +++ b/gcc/config/score/score.c @@ -32,6 +32,10 @@ #include "diagnostic-core.h" #include "output.h" #include "tree.h" +#include "stringpool.h" +#include "calls.h" +#include "varasm.h" +#include "stor-layout.h" #include "function.h" #include "expr.h" #include "optabs.h" diff --git a/gcc/config/sh/sh-c.c b/gcc/config/sh/sh-c.c index 4f3a41a46e74..22e291d2b76d 100644 --- a/gcc/config/sh/sh-c.c +++ b/gcc/config/sh/sh-c.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h.h" #include "tm_p.h" #include "cpplib.h" #include "c-family/c-common.h" diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 088ef3963135..d5f7f15c1cc4 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -26,6 +26,10 @@ along with GCC; see the file COPYING3. If not see #include "insn-config.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "flags.h" #include "expr.h" #include "optabs.h" diff --git a/gcc/config/sol2-c.c b/gcc/config/sol2-c.c index ee44621591e7..8254af0fd739 100644 --- a/gcc/config/sol2-c.c +++ b/gcc/config/sol2-c.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" #include "tm.h" #include "tm_p.h" diff --git a/gcc/config/sol2-cxx.c b/gcc/config/sol2-cxx.c index e1b450d759b8..d3d79554b96b 100644 --- a/gcc/config/sol2-cxx.c +++ b/gcc/config/sol2-cxx.c @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "cp/cp-tree.h" #include "tm.h" #include "tm_p.h" diff --git a/gcc/config/sol2.c b/gcc/config/sol2.c index 7c7c429db3d6..4200e620e165 100644 --- a/gcc/config/sol2.c +++ b/gcc/config/sol2.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" #include "output.h" #include "tm.h" #include "rtl.h" diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 1d6aa942ef68..cabf8f0d244d 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/spu/spu-c.c b/gcc/config/spu/spu-c.c index 215962fa7c9d..7632ec1462cd 100644 --- a/gcc/config/spu/spu-c.c +++ b/gcc/config/spu/spu-c.c @@ -20,6 +20,7 @@ #include "tm.h" #include "cpplib.h" #include "tree.h" +#include "stringpool.h" #include "c-family/c-common.h" #include "c-family/c-pragma.h" #include "tm_p.h" diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c index 55b934b6a5b6..315f1b3617fd 100644 --- a/gcc/config/spu/spu.c +++ b/gcc/config/spu/spu.c @@ -28,6 +28,10 @@ #include "recog.h" #include "obstack.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "expr.h" #include "optabs.h" #include "except.h" diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index 3a08534be517..d5a1fc6ad860 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -35,6 +35,10 @@ #include "diagnostic-core.h" #include "obstack.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "expr.h" #include "optabs.h" #include "except.h" diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c index bf13d11b8201..809beefa3055 100644 --- a/gcc/config/tilegx/tilegx.c +++ b/gcc/config/tilegx/tilegx.c @@ -41,6 +41,10 @@ #include "timevar.h" #include "tree.h" #include "gimple.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "gimplify.h" #include "cfgloop.h" #include "tilegx-builtins.h" diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c index d497f64125f5..9fe1b104f571 100644 --- a/gcc/config/tilepro/tilepro.c +++ b/gcc/config/tilepro/tilepro.c @@ -42,6 +42,10 @@ #include "timevar.h" #include "tree.h" #include "gimple.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "gimplify.h" #include "cfgloop.h" #include "tilepro-builtins.h" diff --git a/gcc/config/v850/v850-c.c b/gcc/config/v850/v850-c.c index 63ef368afc44..25158d50e09e 100644 --- a/gcc/config/v850/v850-c.c +++ b/gcc/config/v850/v850-c.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "cpplib.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" #include "c-family/c-pragma.h" #include "diagnostic-core.h" #include "ggc.h" diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index 006cff4bcdfb..32fe73b1fa62 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -23,6 +23,10 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "calls.h" #include "rtl.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c index 6b643d1af5de..7aac7cb0554a 100644 --- a/gcc/config/vax/vax.c +++ b/gcc/config/vax/vax.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "rtl.h" #include "df.h" #include "tree.h" +#include "calls.h" +#include "varasm.h" #include "regs.h" #include "hard-reg-set.h" #include "insn-config.h" diff --git a/gcc/config/vms/vms.c b/gcc/config/vms/vms.c index ba1e2a697984..3047cfde9fed 100644 --- a/gcc/config/vms/vms.c +++ b/gcc/config/vms/vms.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "vms-protos.h" #include "ggc.h" #include "target.h" diff --git a/gcc/config/vxworks.c b/gcc/config/vxworks.c index 2900d9785eaf..2940ea119339 100644 --- a/gcc/config/vxworks.c +++ b/gcc/config/vxworks.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "output.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" /* Like default_named_section_asm_out_constructor, except that even constructors with DEFAULT_INIT_PRIORITY must go in a numbered diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index 6385c5df5551..9e6bb23818f8 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see #include "recog.h" #include "output.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "calls.h" +#include "varasm.h" #include "expr.h" #include "flags.h" #include "reload.h" diff --git a/gcc/convert.c b/gcc/convert.c index a2f2a334dbf8..4cf500197ae6 100644 --- a/gcc/convert.c +++ b/gcc/convert.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "convert.h" #include "diagnostic-core.h" diff --git a/gcc/coverage.c b/gcc/coverage.c index 3f4e334f078d..f2ac5fcaa46c 100644 --- a/gcc/coverage.c +++ b/gcc/coverage.c @@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "flags.h" #include "output.h" #include "regs.h" diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2906ed7a63ac..1c0d9b7c1211 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -83,6 +83,68 @@ * tree.c: Likewise. * vtable-class-hierarchy.c: Likewise. +2013-11-14 Diego Novillo + + * call.c: Include stor-layout.h. + Include trans-mem.h. + Include stringpool.h. + * class.c: Include stringpool.h. + Include stor-layout.h. + Include attribs.h. + * cp-gimplify.c: Include stor-layout.h. + * cvt.c: Include stor-layout.h. + * decl.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include attribs.h. + Include calls.h. + * decl2.c: Include stringpool.h. + Include varasm.h. + Include attribs.h. + Include stor-layout.h. + Include calls.h. + * error.c: Include stringpool.h. + * except.c: Include stringpool.h. + Include trans-mem.h. + Include attribs.h. + * init.c: Include stringpool.h. + Include varasm.h. + * lambda.c: Include stringpool.h. + * lex.c: Include stringpool.h. + * mangle.c: Include stor-layout.h. + Include stringpool.h. + * method.c: Include stringpool.h. + Include varasm.h. + * name-lookup.c: Include stringpool.h. + Include print-tree.h. + Include attribs.h. + * optimize.c: Include stringpool.h. + * parser.c: Include print-tree.h. + Include stringpool.h. + Include attribs.h. + Include trans-mem.h. + * pt.c: Include stringpool.h. + Include varasm.h. + Include attribs.h. + Include stor-layout.h. + * ptree.c: Include print-tree.h. + * repo.c: Include stringpool.h. + * rtti.c: Include stringpool.h. + Include stor-layout.h. + * semantics.c: Include stmt.h. + Include varasm.h. + Include stor-layout.h. + Include stringpool.h. + * tree.c: Include stor-layout.h. + Include print-tree.h. + Include tree-iterator.h. + * typeck.c: Include stor-layout.h. + Include varasm.h. + * typeck2.c: Include stor-layout.h. + Include varasm.h. + * vtable-class-hierarchy.c: Include stringpool.h. + Include stor-layout.h. + 2013-11-12 Andrew MacLeod * class.c: Include gimplify.h. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index fd7b1cc78d45..c529c16bc749 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -27,6 +27,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "trans-mem.h" +#include "stringpool.h" #include "cp-tree.h" #include "flags.h" #include "toplev.h" diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 39ff6a54fb0f..00fec27a3d55 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -26,6 +26,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "attribs.h" +#include "gimple.h" #include "cp-tree.h" #include "flags.h" #include "toplev.h" diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c index c464719ad423..e2629464dd9a 100644 --- a/gcc/cp/cp-gimplify.c +++ b/gcc/cp/cp-gimplify.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "cp-tree.h" #include "c-family/c-common.h" #include "tree-iterator.h" diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 7dac108db95b..5264c5df2a81 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "cp-tree.h" #include "intl.h" diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index e2aad9d54b35..500c81f79fc4 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -31,6 +31,11 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "attribs.h" +#include "calls.h" #include "flags.h" #include "cp-tree.h" #include "tree-iterator.h" diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 18456848492c..93c75cbf4d66 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -31,6 +31,12 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" +#include "attribs.h" +#include "stor-layout.h" +#include "calls.h" +#include "gimple.h" #include "flags.h" #include "cp-tree.h" #include "decl.h" diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 0ad9f0722db1..5481523868df 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "cp-tree.h" #include "flags.h" #include "diagnostic.h" diff --git a/gcc/cp/except.c b/gcc/cp/except.c index ac2128d13b07..d7d009bdd692 100644 --- a/gcc/cp/except.c +++ b/gcc/cp/except.c @@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "trans-mem.h" +#include "attribs.h" #include "cp-tree.h" #include "flags.h" #include "tree-inline.h" diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 7eac6f52d095..fd43a4fc87c9 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" #include "cp-tree.h" #include "flags.h" #include "target.h" diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c index f39ce1a5ea69..24aa2c55cc0f 100644 --- a/gcc/cp/lambda.c +++ b/gcc/cp/lambda.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "cgraph.h" #include "tree-iterator.h" #include "cp-tree.h" diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index d6ed809d61d0..5d8a313f38b4 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "input.h" #include "tree.h" +#include "stringpool.h" #include "cp-tree.h" #include "cpplib.h" #include "flags.h" diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c index 202fafceb03b..8a24d6c8cfd9 100644 --- a/gcc/cp/mangle.c +++ b/gcc/cp/mangle.c @@ -49,6 +49,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "tm_p.h" #include "cp-tree.h" #include "obstack.h" diff --git a/gcc/cp/method.c b/gcc/cp/method.c index d15d0a4d6f6d..740536573cb6 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -26,6 +26,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" #include "cp-tree.h" #include "flags.h" #include "toplev.h" diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index ced596e310a4..d0c024a120ff 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -24,6 +24,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "flags.h" #include "tree.h" +#include "stringpool.h" +#include "print-tree.h" +#include "attribs.h" #include "cp-tree.h" #include "name-lookup.h" #include "timevar.h" diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index c4ee8484bb95..b8df1347c339 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "cp-tree.h" #include "input.h" #include "params.h" diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index d37924851ed9..977adf6b7916 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "timevar.h" #include "cpplib.h" #include "tree.h" +#include "print-tree.h" +#include "stringpool.h" +#include "attribs.h" +#include "trans-mem.h" #include "cp-tree.h" #include "intl.h" #include "c-family/c-pragma.h" diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 3bc8ccb0ee32..bbf8f550f3ed 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -29,6 +29,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" +#include "attribs.h" +#include "stor-layout.h" #include "intl.h" #include "pointer-set.h" #include "flags.h" diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c index f4ca003be983..3c37a2aed3ea 100644 --- a/gcc/cp/ptree.c +++ b/gcc/cp/ptree.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "print-tree.h" #include "cp-tree.h" void diff --git a/gcc/cp/repo.c b/gcc/cp/repo.c index 7b6f7b8ce1bd..47b919865824 100644 --- a/gcc/cp/repo.c +++ b/gcc/cp/repo.c @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "cp-tree.h" #include "input.h" #include "obstack.h" diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index 5827540c9b27..0bac87909a08 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "cp-tree.h" #include "flags.h" #include "convert.h" diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index dce2b3749fcc..11f781288e90 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -28,6 +28,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stmt.h" +#include "varasm.h" +#include "stor-layout.h" +#include "stringpool.h" #include "cp-tree.h" #include "c-family/c-common.h" #include "c-family/c-objc.h" diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index d7af1d3a5510..a990a79bbb36 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "print-tree.h" +#include "tree-iterator.h" #include "cp-tree.h" #include "flags.h" #include "tree-inline.h" diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index bff7f17780f9..c9ddbe9ba242 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -29,6 +29,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "gimple.h" #include "cp-tree.h" #include "flags.h" #include "diagnostic.h" diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 5c4fdfa0162e..0f3b01d9bc23 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" #include "intl.h" #include "cp-tree.h" #include "flags.h" diff --git a/gcc/cp/vtable-class-hierarchy.c b/gcc/cp/vtable-class-hierarchy.c index 5e78ec9d3a75..32f9541e43da 100644 --- a/gcc/cp/vtable-class-hierarchy.c +++ b/gcc/cp/vtable-class-hierarchy.c @@ -120,6 +120,8 @@ along with GCC; see the file COPYING3. If not see #include "vtable-verify.h" #include "gimple.h" #include "gimplify.h" +#include "stringpool.h" +#include "stor-layout.h" static int num_calls_to_regset = 0; static int num_calls_to_regpair = 0; diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 2e03c124ee86..88596a8d49c2 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -72,6 +72,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" #include "rtl.h" #include "flags.h" #include "regs.h" diff --git a/gcc/dojump.c b/gcc/dojump.c index ee12d761eee0..2aef34d307a5 100644 --- a/gcc/dojump.c +++ b/gcc/dojump.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "function.h" #include "insn-config.h" diff --git a/gcc/dse.c b/gcc/dse.c index b602caa291ff..9662da845ba6 100644 --- a/gcc/dse.c +++ b/gcc/dse.c @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index 69907f9fbf28..fc1b08252056 100644 --- a/gcc/dwarf2asm.c +++ b/gcc/dwarf2asm.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "flags.h" #include "tree.h" +#include "stringpool.h" +#include "varasm.h" #include "rtl.h" #include "output.h" #include "target.h" diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c index e0f85edc61bb..19276e23a207 100644 --- a/gcc/dwarf2cfi.c +++ b/gcc/dwarf2cfi.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "flags.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" #include "function.h" #include "basic-block.h" #include "dwarf2.h" diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 0095507ee1a6..8186b528872f 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -59,10 +59,16 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tm.h" +#include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "function.h" +#include "emit-rtl.h" +#include "gimple.h" #include "version.h" #include "flags.h" -#include "rtl.h" #include "hard-reg-set.h" #include "regs.h" #include "insn-config.h" diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index af228d94bd4b..24e3c92151b8 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -38,9 +38,12 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "rtl.h" #include "tree.h" +#include "varasm.h" +#include "gimple.h" #include "tm_p.h" #include "flags.h" #include "function.h" +#include "stringpool.h" #include "expr.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h index 726809097e78..301c67b35454 100644 --- a/gcc/emit-rtl.h +++ b/gcc/emit-rtl.h @@ -113,4 +113,7 @@ get_max_uid (void) { return crtl->emit.x_cur_insn_uid; } + +extern void set_decl_incoming_rtl (tree, rtx, bool); + #endif /* GCC_EMIT_RTL_H */ diff --git a/gcc/except.c b/gcc/except.c index 6043ef293e63..f8296b223bc2 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -115,6 +115,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "flags.h" #include "function.h" #include "expr.h" diff --git a/gcc/explow.c b/gcc/explow.c index 3a78a6513607..bc4f805323c3 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "flags.h" #include "except.h" diff --git a/gcc/expmed.c b/gcc/expmed.c index 1617bc05aa10..c5123cbbe81c 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "flags.h" #include "insn-config.h" diff --git a/gcc/expr.c b/gcc/expr.c index ece5d0fc4431..53e85e503ee5 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -24,6 +24,10 @@ along with GCC; see the file COPYING3. If not see #include "machmode.h" #include "rtl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "attribs.h" +#include "varasm.h" #include "flags.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/expr.h b/gcc/expr.h index 422c75d3f592..a2cd6690bfe7 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -748,4 +748,23 @@ extern void expand_case (gimple); /* Like expand_case but special-case for SJLJ exception dispatching. */ extern void expand_sjlj_dispatch_table (rtx, vec ); +/* Determine whether the LEN bytes can be moved by using several move + instructions. Return nonzero if a call to move_by_pieces should + succeed. */ +extern int can_move_by_pieces (unsigned HOST_WIDE_INT, unsigned int); + +extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree); +bool array_at_struct_end_p (tree); + +/* Return a tree of sizetype representing the size, in bytes, of the element + of EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */ +extern tree array_ref_element_size (tree); + +extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *, + HOST_WIDE_INT *, bool *); + +/* Return a tree representing the offset, in bytes, of the field referenced + by EXP. This does not include any offset in DECL_FIELD_BIT_OFFSET. */ +extern tree component_ref_field_offset (tree); + #endif /* GCC_EXPR_H */ diff --git a/gcc/final.c b/gcc/final.c index 1a6320f5195f..2d206f1311a7 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" +#include "varasm.h" #include "rtl.h" #include "tm_p.h" #include "regs.h" diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 5a010234af53..fc18de56565b 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -46,6 +46,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "flags.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" +#include "tree-iterator.h" #include "realmpfr.h" #include "rtl.h" #include "expr.h" diff --git a/gcc/fold-const.h b/gcc/fold-const.h new file mode 100644 index 000000000000..1d4583669519 --- /dev/null +++ b/gcc/fold-const.h @@ -0,0 +1,172 @@ +/* Fold a constant sub-tree into a single node for C-compiler + Copyright (C) 1987-2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_FOLD_CONST_H +#define GCC_FOLD_CONST_H + +/* Non-zero if we are folding constants inside an initializer; zero + otherwise. */ +extern int folding_initializer; + +/* Convert between trees and native memory representation. */ +extern int native_encode_expr (const_tree, unsigned char *, int); +extern tree native_interpret_expr (tree, const unsigned char *, int); + +/* Fold constants as much as possible in an expression. + Returns the simplified expression. + Acts only on the top level of the expression; + if the argument itself cannot be simplified, its + subexpressions are not changed. */ + +extern tree fold (tree); +#define fold_unary(CODE,T1,T2)\ + fold_unary_loc (UNKNOWN_LOCATION, CODE, T1, T2) +extern tree fold_unary_loc (location_t, enum tree_code, tree, tree); +#define fold_unary_ignore_overflow(CODE,T1,T2)\ + fold_unary_ignore_overflow_loc (UNKNOWN_LOCATION, CODE, T1, T2) +extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree); +#define fold_binary(CODE,T1,T2,T3)\ + fold_binary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3) +extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree); +#define fold_ternary(CODE,T1,T2,T3,T4)\ + fold_ternary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3, T4) +extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree); +#define fold_build1(c,t1,t2)\ + fold_build1_stat_loc (UNKNOWN_LOCATION, c, t1, t2 MEM_STAT_INFO) +#define fold_build1_loc(l,c,t1,t2)\ + fold_build1_stat_loc (l, c, t1, t2 MEM_STAT_INFO) +extern tree fold_build1_stat_loc (location_t, enum tree_code, tree, + tree MEM_STAT_DECL); +#define fold_build2(c,t1,t2,t3)\ + fold_build2_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3 MEM_STAT_INFO) +#define fold_build2_loc(l,c,t1,t2,t3)\ + fold_build2_stat_loc (l, c, t1, t2, t3 MEM_STAT_INFO) +extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree, + tree MEM_STAT_DECL); +#define fold_build3(c,t1,t2,t3,t4)\ + fold_build3_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3, t4 MEM_STAT_INFO) +#define fold_build3_loc(l,c,t1,t2,t3,t4)\ + fold_build3_stat_loc (l, c, t1, t2, t3, t4 MEM_STAT_INFO) +extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree, + tree MEM_STAT_DECL); +extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree); +extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree); +#define fold_build_call_array(T1,T2,N,T4)\ + fold_build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T4) +extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *); +#define fold_build_call_array_initializer(T1,T2,N,T4)\ + fold_build_call_array_initializer_loc (UNKNOWN_LOCATION, T1, T2, N, T4) +extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *); +extern bool fold_convertible_p (const_tree, const_tree); +#define fold_convert(T1,T2)\ + fold_convert_loc (UNKNOWN_LOCATION, T1, T2) +extern tree fold_convert_loc (location_t, tree, tree); +extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree); +extern tree fold_ignored_result (tree); +extern tree fold_abs_const (tree, tree); +extern tree fold_indirect_ref_1 (location_t, tree, tree); +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 fold_fma (location_t, tree, tree, tree, tree); +extern int operand_equal_p (const_tree, const_tree, unsigned int); +extern int multiple_of_p (tree, const_tree, const_tree); +#define omit_one_operand(T1,T2,T3)\ + omit_one_operand_loc (UNKNOWN_LOCATION, T1, T2, T3) +extern tree omit_one_operand_loc (location_t, tree, tree, tree); +#define omit_two_operands(T1,T2,T3,T4)\ + omit_two_operands_loc (UNKNOWN_LOCATION, T1, T2, T3, T4) +extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree); +#define invert_truthvalue(T)\ + invert_truthvalue_loc (UNKNOWN_LOCATION, T) +extern tree invert_truthvalue_loc (location_t, tree); +extern tree fold_unary_to_constant (enum tree_code, tree, tree); +extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree); +extern tree fold_read_from_constant_string (tree); +extern tree int_const_binop (enum tree_code, const_tree, const_tree); +#define build_fold_addr_expr(T)\ + build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T)) +extern tree build_fold_addr_expr_loc (location_t, tree); +#define build_fold_addr_expr_with_type(T,TYPE)\ + build_fold_addr_expr_with_type_loc (UNKNOWN_LOCATION, (T), TYPE) +extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree); +extern tree fold_build_cleanup_point_expr (tree type, tree expr); +extern tree fold_strip_sign_ops (tree); +#define build_fold_indirect_ref(T)\ + build_fold_indirect_ref_loc (UNKNOWN_LOCATION, T) +extern tree build_fold_indirect_ref_loc (location_t, tree); +#define fold_indirect_ref(T)\ + fold_indirect_ref_loc (UNKNOWN_LOCATION, T) +extern tree fold_indirect_ref_loc (location_t, tree); +extern tree build_simple_mem_ref_loc (location_t, tree); +#define build_simple_mem_ref(T)\ + build_simple_mem_ref_loc (UNKNOWN_LOCATION, T) +extern double_int mem_ref_offset (const_tree); +extern tree build_invariant_address (tree, tree, HOST_WIDE_INT); +extern tree constant_boolean_node (bool, tree); +extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree); + +extern bool tree_swap_operands_p (const_tree, const_tree, bool); +extern enum tree_code swap_tree_comparison (enum tree_code); + +extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *); +extern enum tree_code invert_tree_comparison (enum tree_code, bool); + +extern bool tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, bool *); +extern bool tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1, + bool *); +extern bool tree_single_nonzero_warnv_p (tree, bool *); +extern bool tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, bool *); +extern bool tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree, + bool *); +extern bool tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p); +extern bool tree_call_nonnegative_warnv_p (tree, tree, tree, tree, bool *); + +extern bool fold_real_zero_addition_p (const_tree, const_tree, int); +extern tree combine_comparisons (location_t, enum tree_code, enum tree_code, + enum tree_code, tree, tree, tree); +extern void debug_fold_checksum (const_tree); +extern bool may_negate_without_overflow_p (const_tree); +#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N) +extern tree round_up_loc (location_t, tree, int); +#define round_down(T,N) round_down_loc (UNKNOWN_LOCATION, T, N) +extern tree round_down_loc (location_t, tree, int); +extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind); +#define size_binop(CODE,T1,T2)\ + size_binop_loc (UNKNOWN_LOCATION, CODE, T1, T2) +extern tree size_binop_loc (location_t, enum tree_code, tree, tree); +#define size_diffop(T1,T2)\ + size_diffop_loc (UNKNOWN_LOCATION, T1, T2) +extern tree size_diffop_loc (location_t, tree, tree); + +/* Return an expr equal to X but certainly not valid as an lvalue. */ +#define non_lvalue(T) non_lvalue_loc (UNKNOWN_LOCATION, T) +extern tree non_lvalue_loc (location_t, tree); + +extern bool tree_expr_nonnegative_p (tree); +extern bool tree_expr_nonnegative_warnv_p (tree, bool *); +extern tree make_range (tree, int *, tree *, tree *, bool *); +extern tree make_range_step (location_t, enum tree_code, tree, tree, tree, + tree *, tree *, int *, bool *); +extern tree build_range_check (location_t, tree, tree, int, tree, tree); +extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int, + tree, tree); + +#endif // GCC_FOLD_CONST_H diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 16e8915c0c58..26e58bef0f0b 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -7,6 +7,33 @@ * trans-expr.c: Include only gimplify.h and gimple.h as needed. * trans-openmp.c: Likewise. +2013-11-14 Diego Novillo + + * decl.c: Include stringpool.h. + * iresolve.c: Include stringpool.h. + * match.c: Include stringpool.h. + * module.c: Include stringpool.h. + * target-memory.c: Include stor-layout.h. + * trans-common.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + * trans-const.c: Include stor-layout.h. + * trans-decl.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + Include attribs.h. + * trans-expr.c: Include stringpool.h. + * trans-intrinsic.c: Include stringpool.h. + Include tree-nested.h. + Include stor-layout.h. + * trans-io.c: Include stringpool.h. + Include stor-layout.h. + * trans-openmp.c: Include stringpool.h. + * trans-stmt.c: Include stringpool.h. + * trans-types.c: Include stor-layout.h. + Include stringpool.h. + * trans.c: Include stringpool.h. + 2013-11-12 Andrew MacLeod * f95-lang.c: Don't include gimple.h. diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 9c9fd4ffbf04..0a0f8e0f3b56 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "flags.h" #include "constructor.h" #include "tree.h" +#include "stringpool.h" /* Macros to access allocate memory for gfc_data_variable, gfc_data_value and gfc_data. */ diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index af452b328887..f31340f5d552 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "gfortran.h" #include "intrinsic.h" #include "constructor.h" diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 71e3862189a9..539780aaa245 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "match.h" #include "parse.h" #include "tree.h" +#include "stringpool.h" int gfc_matching_ptr_assignment = 0; int gfc_matching_procptr_assignment = 0; diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index c390a95952e6..0cd480185770 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -74,6 +74,7 @@ along with GCC; see the file COPYING3. If not see #include "constructor.h" #include "cpp.h" #include "tree.h" +#include "stringpool.h" #include "scanner.h" #include diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c index e905b3a67dcb..d0ee41a089c7 100644 --- a/gcc/fortran/target-memory.c +++ b/gcc/fortran/target-memory.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "flags.h" #include "machmode.h" #include "tree.h" +#include "stor-layout.h" #include "gfortran.h" #include "arith.h" #include "constructor.h" diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c index e2234b1ae0ca..2266c1bfa566 100644 --- a/gcc/fortran/trans-common.c +++ b/gcc/fortran/trans-common.c @@ -98,6 +98,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" #include "gfortran.h" #include "trans.h" #include "trans-types.h" diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c index a217c4714115..f5a2b18ecba1 100644 --- a/gcc/fortran/trans-const.c +++ b/gcc/fortran/trans-const.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" #include "realmpfr.h" #include "diagnostic-core.h" /* For fatal_error. */ #include "double-int.h" diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index 1df3bb44e7a2..f974c6e81075 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" +#include "attribs.h" #include "tree-dump.h" #include "gimple-expr.h" /* For create_tmp_var_raw. */ #include "ggc.h" diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index b932fa4d715c..41b2f94679ab 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "diagnostic-core.h" /* For fatal_error. */ #include "langhooks.h" #include "flags.h" diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c index 042911f8ea1d..4acdc8dc7564 100644 --- a/gcc/fortran/trans-intrinsic.c +++ b/gcc/fortran/trans-intrinsic.c @@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" /* For UNITS_PER_WORD. */ #include "tree.h" +#include "stringpool.h" +#include "tree-nested.h" +#include "stor-layout.h" #include "ggc.h" #include "diagnostic-core.h" /* For internal_error. */ #include "toplev.h" /* For rest_of_decl_compilation. */ diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index 5fa1cdc091ea..9b46a4eef3ee 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "ggc.h" #include "diagnostic-core.h" /* For internal_error. */ #include "gfortran.h" diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index 13c87058ddd6..d23af17d81e0 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #include "gimple.h" #include "gimplify.h" /* For create_tmp_var_raw. */ +#include "stringpool.h" #include "diagnostic-core.h" /* For internal_error. */ #include "gfortran.h" #include "trans.h" diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c index 62e690d407c7..4f211975581e 100644 --- a/gcc/fortran/trans-stmt.c +++ b/gcc/fortran/trans-stmt.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "gfortran.h" #include "flags.h" #include "trans.h" diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c index fa84d5dab815..21d9f285d17c 100644 --- a/gcc/fortran/trans-types.c +++ b/gcc/fortran/trans-types.c @@ -34,6 +34,8 @@ along with GCC; see the file COPYING3. If not see FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE and LIBGCC2_HAS_TF_MODE. */ #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "langhooks.h" /* For iso-c-bindings.def. */ #include "target.h" #include "ggc.h" diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index ef20a20f0182..204cbff32473 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tree.h" #include "gimple-expr.h" /* For create_tmp_var_raw. */ +#include "gimple.h" +#include "stringpool.h" #include "tree-iterator.h" #include "diagnostic-core.h" /* For internal_error. */ #include "flags.h" diff --git a/gcc/function.c b/gcc/function.c index 724b96949172..87953e335c4a 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -37,6 +37,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl-error.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" +#include "stringpool.h" #include "flags.h" #include "except.h" #include "function.h" diff --git a/gcc/function.h b/gcc/function.h index 9bb6ff04c501..c00bfe2aa372 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -822,4 +822,25 @@ extern unsigned int emit_initial_value_sets (void); extern bool optimize_function_for_size_p (struct function *); extern bool optimize_function_for_speed_p (struct function *); +/* In function.c */ +extern void expand_function_end (void); +extern void expand_function_start (tree); +extern void stack_protect_epilogue (void); +extern void init_dummy_function_start (void); +extern void expand_dummy_function_end (void); +extern void allocate_struct_function (tree, bool); +extern void push_struct_function (tree fndecl); +extern void init_function_start (tree); +extern bool use_register_for_decl (const_tree); +extern void generate_setjmp_warnings (void); +extern void init_temp_slots (void); +extern void free_temp_slots (void); +extern void pop_temp_slots (void); +extern void push_temp_slots (void); +extern void preserve_temp_slots (rtx); +extern int aggregate_value_p (const_tree, const_tree); +extern void push_function_context (void); +extern void pop_function_context (void); +extern gimple_seq gimplify_parameters (void); + #endif /* GCC_FUNCTION_H */ diff --git a/gcc/gcc-symtab.h b/gcc/gcc-symtab.h new file mode 100644 index 000000000000..a5bbad265a37 --- /dev/null +++ b/gcc/gcc-symtab.h @@ -0,0 +1,28 @@ +/* Declarations for symtab.c. + FIXME - This file should be named symtab.h, but that name conflicts + with libcpp's symtab.h. + + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_SYMTAB_H +#define GCC_SYMTAB_H + +extern void change_decl_assembler_name (tree, tree); + +#endif // GCC_SYMTAB_H diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index f79380d6e460..c0125d103b71 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -5101,6 +5101,9 @@ write_header (FILE *outf) fprintf (outf, "#include \"coretypes.h\"\n"); fprintf (outf, "#include \"tm.h\"\n"); fprintf (outf, "#include \"tree.h\"\n"); + fprintf (outf, "#include \"varasm.h\"\n"); + fprintf (outf, "#include \"stor-layout.h\"\n"); + fprintf (outf, "#include \"calls.h\"\n"); fprintf (outf, "#include \"rtl.h\"\n"); fprintf (outf, "#include \"insn-attr.h\"\n"); fprintf (outf, "#include \"tm_p.h\"\n"); diff --git a/gcc/genautomata.c b/gcc/genautomata.c index f6c4b91c42e2..3ab480428aa9 100644 --- a/gcc/genautomata.c +++ b/gcc/genautomata.c @@ -9666,6 +9666,9 @@ main (int argc, char **argv) "#include \"coretypes.h\"\n" "#include \"tm.h\"\n" "#include \"tree.h\"\n" + "#include \"varasm.h\"\n" + "#include \"stor-layout.h\"\n" + "#include \"calls.h\"\n" "#include \"rtl.h\"\n" "#include \"tm_p.h\"\n" "#include \"insn-config.h\"\n" diff --git a/gcc/genemit.c b/gcc/genemit.c index 724a114da446..03831bfc9de7 100644 --- a/gcc/genemit.c +++ b/gcc/genemit.c @@ -791,6 +791,9 @@ from the machine description file `md'. */\n\n"); printf ("#include \"coretypes.h\"\n"); printf ("#include \"tm.h\"\n"); printf ("#include \"tree.h\"\n"); + printf ("#include \"varasm.h\"\n"); + printf ("#include \"stor-layout.h\"\n"); + printf ("#include \"calls.h\"\n"); printf ("#include \"rtl.h\"\n"); printf ("#include \"tm_p.h\"\n"); printf ("#include \"function.h\"\n"); diff --git a/gcc/gengtype.c b/gcc/gengtype.c index ecf1ef00385a..86e9ca220065 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -1770,7 +1770,7 @@ open_base_files (void) "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h", "optabs.h", "libfuncs.h", "debug.h", "ggc.h", "cgraph.h", "gimple.h", "gimple-iterator.h", "gimple-ssa.h", "tree-cfg.h", - "tree-phinodes.h", "ssa-iterators.h", "tree-ssanames.h", + "tree-phinodes.h", "ssa-iterators.h", "stringpool.h", "tree-ssanames.h", "tree-ssa-loop.h", "tree-ssa-loop-ivopts.h", "tree-ssa-loop-manip.h", "tree-ssa-loop-niter.h", "tree-into-ssa.h", "tree-dfa.h", "tree-ssa.h", "reload.h", "cpp-id-data.h", "tree-chrec.h", diff --git a/gcc/genopinit.c b/gcc/genopinit.c index 3efb71e249e4..2e736ce687b0 100644 --- a/gcc/genopinit.c +++ b/gcc/genopinit.c @@ -405,6 +405,9 @@ main (int argc, char **argv) "#include \"coretypes.h\"\n" "#include \"tm.h\"\n" "#include \"tree.h\"\n" + "#include \"varasm.h\"\n" + "#include \"stor-layout.h\"\n" + "#include \"calls.h\"\n" "#include \"rtl.h\"\n" "#include \"tm_p.h\"\n" "#include \"flags.h\"\n" diff --git a/gcc/genoutput.c b/gcc/genoutput.c index 2a7ee2391db4..de8979bc7266 100644 --- a/gcc/genoutput.c +++ b/gcc/genoutput.c @@ -239,6 +239,9 @@ output_prologue (void) printf ("#include \"flags.h\"\n"); printf ("#include \"ggc.h\"\n"); printf ("#include \"tree.h\"\n"); + printf ("#include \"varasm.h\"\n"); + printf ("#include \"stor-layout.h\"\n"); + printf ("#include \"calls.h\"\n"); printf ("#include \"rtl.h\"\n"); printf ("#include \"expr.h\"\n"); printf ("#include \"insn-codes.h\"\n"); diff --git a/gcc/genpeep.c b/gcc/genpeep.c index 877fde3ec906..8d9d25dd772b 100644 --- a/gcc/genpeep.c +++ b/gcc/genpeep.c @@ -360,6 +360,9 @@ from the machine description file `md'. */\n\n"); printf ("#include \"tm.h\"\n"); printf ("#include \"insn-config.h\"\n"); printf ("#include \"tree.h\"\n"); + printf ("#include \"varasm.h\"\n"); + printf ("#include \"stor-layout.h\"\n"); + printf ("#include \"calls.h\"\n"); printf ("#include \"rtl.h\"\n"); printf ("#include \"tm_p.h\"\n"); printf ("#include \"regs.h\"\n"); diff --git a/gcc/genpreds.c b/gcc/genpreds.c index f3d9dac9c550..c27ae88f1a04 100644 --- a/gcc/genpreds.c +++ b/gcc/genpreds.c @@ -1302,6 +1302,9 @@ write_insn_preds_c (void) #include \"tm.h\"\n\ #include \"rtl.h\"\n\ #include \"tree.h\"\n\ +#include \"varasm.h\"\n\ +#include \"stor-layout.h\"\n\ +#include \"calls.h\"\n\ #include \"tm_p.h\"\n\ #include \"function.h\"\n\ #include \"insn-config.h\"\n\ diff --git a/gcc/gimple-builder.c b/gcc/gimple-builder.c index 6b53221b6b3f..17cd2e1b887e 100644 --- a/gcc/gimple-builder.c +++ b/gcc/gimple-builder.c @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "gimple.h" #include "tree-ssanames.h" diff --git a/gcc/gimple-expr.c b/gcc/gimple-expr.c index 9156f952784e..77660a34c6de 100644 --- a/gcc/gimple-expr.c +++ b/gcc/gimple-expr.c @@ -25,7 +25,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" #include "gimple.h" +#include "stringpool.h" #include "gimplify.h" +#include "stor-layout.h" #include "demangle.h" #include "gimple-ssa.h" diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index a5277eb9b0ff..5493c5f3ea0c 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "expr.h" +#include "stmt.h" +#include "stor-layout.h" #include "flags.h" #include "function.h" #include "dumpfile.h" diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c index 3f9ac575e64f..71f8dfec3f80 100644 --- a/gcc/gimple-low.c +++ b/gcc/gimple-low.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "tree-nested.h" +#include "calls.h" #include "gimple.h" #include "gimple-iterator.h" #include "tree-iterator.h" diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c index b20d11ae3d48..cdf1dbd417e7 100644 --- a/gcc/gimple-pretty-print.c +++ b/gcc/gimple-pretty-print.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "diagnostic.h" #include "gimple-pretty-print.h" #include "hashtab.h" diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c index c42f112da8b3..1b7e3ff7d769 100644 --- a/gcc/gimple-ssa-isolate-paths.c +++ b/gcc/gimple-ssa-isolate-paths.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-iterator.h" #include "gimple-walk.h" #include "tree-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "gimple-ssa.h" #include "tree-ssa-operands.h" diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c index 51bf7c7c01fc..4eb897fd40ce 100644 --- a/gcc/gimple-ssa-strength-reduction.c +++ b/gcc/gimple-ssa-strength-reduction.c @@ -40,6 +40,8 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "gimple-iterator.h" #include "gimplify-me.h" +#include "stor-layout.h" +#include "expr.h" #include "basic-block.h" #include "tree-pass.h" #include "cfgloop.h" @@ -48,6 +50,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "domwalk.h" #include "pointer-set.h" diff --git a/gcc/gimple-streamer-in.c b/gcc/gimple-streamer-in.c index 6f8f51a18cee..f8106fc4e781 100644 --- a/gcc/gimple-streamer-in.c +++ b/gcc/gimple-streamer-in.c @@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-iterator.h" #include "gimple-ssa.h" #include "tree-phinodes.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "data-streamer.h" #include "tree-streamer.h" diff --git a/gcc/gimple-walk.c b/gcc/gimple-walk.c index deb4673354a6..22f4584a673e 100644 --- a/gcc/gimple-walk.c +++ b/gcc/gimple-walk.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stmt.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimple-walk.h" diff --git a/gcc/gimple.c b/gcc/gimple.c index 10d7edc1a39d..c0316981ef9e 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -25,6 +25,9 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "target.h" #include "tree.h" +#include "calls.h" +#include "stmt.h" +#include "stor-layout.h" #include "ggc.h" #include "hard-reg-set.h" #include "basic-block.h" diff --git a/gcc/gimplify-me.c b/gcc/gimplify-me.c index c4818fab7560..a7e9387b6480 100644 --- a/gcc/gimplify-me.c +++ b/gcc/gimplify-me.c @@ -25,11 +25,14 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stmt.h" +#include "stor-layout.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimplify.h" #include "gimplify-me.h" #include "gimple-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" diff --git a/gcc/gimplify.c b/gcc/gimplify.c index a65d3d1ced6a..8baa4dcc1786 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -24,9 +24,16 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "expr.h" #include "gimple.h" #include "gimplify.h" #include "gimple-iterator.h" +#include "stringpool.h" +#include "calls.h" +#include "varasm.h" +#include "stor-layout.h" +#include "stmt.h" +#include "print-tree.h" #include "tree-iterator.h" #include "tree-inline.h" #include "tree-pretty-print.h" diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog index 6f6b53e58a06..918862ef8fe5 100644 --- a/gcc/go/ChangeLog +++ b/gcc/go/ChangeLog @@ -12,6 +12,14 @@ * go-lang.c: Include only gimplify.h and gimple.h as needed. +2013-11-14 Diego Novillo + + * go-backend.c: Include stor-layout.h. + * go-gcc.cc: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + * go-lang.c: Include stor-layout.h. + 2013-11-12 Andrew MacLeod * go-lang.c: Include gimplify.h. diff --git a/gcc/go/go-backend.c b/gcc/go/go-backend.c index c3ffa3b1deaf..31d01221fd1c 100644 --- a/gcc/go/go-backend.c +++ b/gcc/go/go-backend.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "simple-object.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "intl.h" #include "output.h" /* for assemble_string */ diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc index 5ff529fc62b1..83f91d5daf54 100644 --- a/gcc/go/go-gcc.cc +++ b/gcc/go/go-gcc.cc @@ -25,6 +25,9 @@ #include #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" #include "tree-iterator.h" #include "gimple.h" #include "toplev.h" diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c index aa1d80b5be2b..93a0446efe62 100644 --- a/gcc/go/go-lang.c +++ b/gcc/go/go-lang.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "tree.h" #include "gimple.h" #include "gimplify.h" +#include "stor-layout.h" #include "ggc.h" #include "toplev.h" #include "debug.h" diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 823c5e1a4c8c..14c10d66a042 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -11,6 +11,8 @@ #include "toplev.h" #include "intl.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "gimple.h" #include "gimplify.h" #include "tree-iterator.h" diff --git a/gcc/go/gofrontend/gogo-tree.cc b/gcc/go/gofrontend/gogo-tree.cc index 12a0889397da..001d24d238d6 100644 --- a/gcc/go/gofrontend/gogo-tree.cc +++ b/gcc/go/gofrontend/gogo-tree.cc @@ -8,6 +8,9 @@ #include "toplev.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" #include "gimple.h" #include "gimplify.h" #include "tree-iterator.h" diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 1b2cd998f2cd..7d705bb33944 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop-niter.h" diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c index a4cf1d5c627a..867747041ae3 100644 --- a/gcc/internal-fn.c +++ b/gcc/internal-fn.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "internal-fn.h" #include "tree.h" +#include "stor-layout.h" #include "expr.h" #include "optabs.h" #include "gimple.h" diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c index 99fbfe7455a0..38cf378d2d4c 100644 --- a/gcc/ipa-devirt.c +++ b/gcc/ipa-devirt.c @@ -110,7 +110,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "print-tree.h" +#include "calls.h" #include "cgraph.h" +#include "expr.h" #include "tree-pass.h" #include "ggc.h" #include "pointer-set.h" diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index a558dbc75ff0..662196f058bd 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -69,6 +69,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "print-tree.h" #include "tree-inline.h" #include "langhooks.h" #include "flags.h" diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index c9a373bc08fe..fbb63da7dc83 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -94,6 +94,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "trans-mem.h" +#include "calls.h" #include "tree-inline.h" #include "langhooks.h" #include "flags.h" diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 65f9da12e986..d122dd555392 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tree.h" #include "gimple.h" +#include "expr.h" +#include "stor-layout.h" +#include "print-tree.h" #include "gimplify.h" #include "gimple-iterator.h" #include "gimplify-me.h" diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c index 52be4bf8869f..a241a699c5c2 100644 --- a/gcc/ipa-pure-const.c +++ b/gcc/ipa-pure-const.c @@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "print-tree.h" +#include "calls.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimple-walk.h" diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c index 9f80086c747f..27208deb5192 100644 --- a/gcc/ipa-reference.c +++ b/gcc/ipa-reference.c @@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "calls.h" #include "gimple.h" #include "tree-inline.h" #include "tree-pass.h" diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c index e55b3f59dbcc..59d174220c3e 100644 --- a/gcc/ipa-split.c +++ b/gcc/ipa-split.c @@ -79,6 +79,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tree.h" #include "gimple.h" +#include "stringpool.h" +#include "expr.h" +#include "calls.h" #include "gimplify.h" #include "gimple-iterator.h" #include "gimplify-me.h" @@ -89,6 +92,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-dfa.h" diff --git a/gcc/ipa.c b/gcc/ipa.c index e541090ee3ad..3950d4eb8568 100644 --- a/gcc/ipa.c +++ b/gcc/ipa.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "calls.h" +#include "stringpool.h" #include "cgraph.h" #include "tree-pass.h" #include "gimple.h" diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 3ffa76da8c29..0e277e4bf402 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -12,6 +12,30 @@ * java-gimplify.c: Include only gimplify.h and gimple.h as needed. +2013-11-14 Diego Novillo + + * builtins.c: Include stor-layout.h. + Include stringpool.h. + * class.c: Include stringpool.h. + Include stor-layout.h. + Include varasm.h. + * constants.c: Include stringpool.h. + Include stor-layout.h. + * decl.c: Include stor-layout.h. + Include stringpool.h. + Include varasm.h. + * except.c: Include stringpool.h. + Include stor-layout.h. + * expr.c: Include stringpool.h. + Include stor-layout.h. + * jcf-parse.c: Include stringpool.h. + * mangle.c: Include stringpool.h. + * resource.c: Include stringpool.h. + Include stor-layout.h. + * typeck.c: Include stor-layout.h. + Include stringpool.h. + * verify-glue.c: Include stringpool.h. + 2013-11-12 Andrew MacLeod * java-gimplify.c: Include gimplify.h. diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c index c05543782ae9..46d1d86820cf 100644 --- a/gcc/java/builtins.c +++ b/gcc/java/builtins.c @@ -31,6 +31,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "ggc.h" #include "flags.h" #include "langhooks.h" diff --git a/gcc/java/class.c b/gcc/java/class.c index 251873e08110..58bc92f94d94 100644 --- a/gcc/java/class.c +++ b/gcc/java/class.c @@ -27,6 +27,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "varasm.h" #include "flags.h" #include "java-tree.h" #include "jcf.h" diff --git a/gcc/java/constants.c b/gcc/java/constants.c index ca411b5f9ff9..64f6e6964035 100644 --- a/gcc/java/constants.c +++ b/gcc/java/constants.c @@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "tm.h" #include "jcf.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "java-tree.h" #include "diagnostic-core.h" #include "toplev.h" diff --git a/gcc/java/decl.c b/gcc/java/decl.c index 0a2cecc3fef6..70e21b071f0d 100644 --- a/gcc/java/decl.c +++ b/gcc/java/decl.c @@ -28,6 +28,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "varasm.h" #include "diagnostic-core.h" #include "toplev.h" #include "flags.h" diff --git a/gcc/java/except.c b/gcc/java/except.c index b6d0c8d6c0fa..9674abac22cb 100644 --- a/gcc/java/except.c +++ b/gcc/java/except.c @@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "java-tree.h" #include "javaop.h" #include "java-opcodes.h" diff --git a/gcc/java/expr.c b/gcc/java/expr.c index 6dc00c6fc5d3..c62d66dba021 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -33,6 +33,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ PARM_BOUNDARY. */ #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "flags.h" #include "java-tree.h" #include "javaop.h" diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index fbd4e00e029a..9799523f142c 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -27,6 +27,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "obstack.h" #include "flags.h" #include "java-except.h" diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c index 10557e94ebde..c4e088303c13 100644 --- a/gcc/java/mangle.c +++ b/gcc/java/mangle.c @@ -29,6 +29,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "coretypes.h" #include "jcf.h" #include "tree.h" +#include "stringpool.h" #include "java-tree.h" #include "obstack.h" #include "diagnostic-core.h" diff --git a/gcc/java/resource.c b/gcc/java/resource.c index 54403d9f187e..17155b8c362b 100644 --- a/gcc/java/resource.c +++ b/gcc/java/resource.c @@ -25,6 +25,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "java-tree.h" #include "jcf.h" #include "diagnostic-core.h" diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c index 9dbb3f0291b1..3a0aa3960a23 100644 --- a/gcc/java/typeck.c +++ b/gcc/java/typeck.c @@ -27,6 +27,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "obstack.h" #include "flags.h" #include "java-tree.h" diff --git a/gcc/java/verify-glue.c b/gcc/java/verify-glue.c index 21acc4259dfc..022f4c4e0582 100644 --- a/gcc/java/verify-glue.c +++ b/gcc/java/verify-glue.c @@ -28,6 +28,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */ #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #include "parse.h" #include "verify.h" diff --git a/gcc/langhooks.c b/gcc/langhooks.c index ec0dd4d75ee3..4b72f2a6238d 100644 --- a/gcc/langhooks.c +++ b/gcc/langhooks.c @@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "toplev.h" #include "tree.h" +#include "stringpool.h" +#include "attribs.h" #include "tree-inline.h" #include "gimple.h" #include "gimplify.h" diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c index 99dbf96b7a56..d82759955d87 100644 --- a/gcc/lto-cgraph.c +++ b/gcc/lto-cgraph.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "gimple.h" #include "expr.h" #include "flags.h" diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c index 98cf28ff9175..7b9f4ca496ec 100644 --- a/gcc/lto-streamer-in.c +++ b/gcc/lto-streamer-in.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "toplev.h" #include "tree.h" +#include "stringpool.h" #include "expr.h" #include "flags.h" #include "params.h" diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 5176e35b70d4..5e264fceee0c 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "expr.h" #include "flags.h" #include "params.h" diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 266d00ff1e62..1b83f22046a7 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -2,6 +2,13 @@ * lto-partition.c lto-symtab.c lto.c Adjust. +2013-11-14 Diego Novillo + + * lto-lang.c: Include stringpool.h. + Include stor-layout.h. + * lto-partition.c: Include gcc-symtab.h. + * lto.c: Include stor-layout.h. + 2013-10-31 David Malcolm Automated part of renaming of symtab_node_base to symtab_node. diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index b56c22b8a87d..cb15ce32fa71 100644 --- a/gcc/lto/lto-lang.c +++ b/gcc/lto/lto-lang.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "flags.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "target.h" #include "langhooks.h" #include "langhooks-def.h" diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c index e0d020d30ec4..42d78307dedc 100644 --- a/gcc/lto/lto-partition.c +++ b/gcc/lto/lto-partition.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "toplev.h" #include "tree.h" +#include "gcc-symtab.h" #include "gimple.h" #include "tm.h" #include "cgraph.h" diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 6ecac0106e1b..0211437d5f9a 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "opts.h" #include "toplev.h" #include "tree.h" +#include "stor-layout.h" #include "diagnostic-core.h" #include "tm.h" #include "cgraph.h" diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index 881ac6ed341d..000ba9e71b17 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -12,6 +12,19 @@ * objc-act.c: Include only gimplify.h and gimple.h as needed. +2013-11-14 Diego Novillo + + * objc-act.c: Include stringpool.h. + Include stor-layout.h. + Include attribs.h. + * objc-encoding.c: Include stringpool.h. + Include stor-layout.h. + * objc-gnu-runtime-abi-01.c: Include stringpool.h. + * objc-next-runtime-abi-01.c: + Include stringpool.h. + * objc-next-runtime-abi-02.c: Include stringpool.h. + * objc-runtime-shared-support.c: Include stringpool.h. + 2013-11-12 Andrew MacLeod * objc-act.c: Include gimplify.h. diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 9a640a3edd36..d7e8afb6acfb 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" +#include "attribs.h" #ifdef OBJCPLUS #include "cp/cp-tree.h" diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c index 532725114a2a..61d722a77b09 100644 --- a/gcc/objc/objc-encoding.c +++ b/gcc/objc/objc-encoding.c @@ -21,6 +21,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #ifdef OBJCPLUS #include "cp/cp-tree.h" diff --git a/gcc/objc/objc-gnu-runtime-abi-01.c b/gcc/objc/objc-gnu-runtime-abi-01.c index f0116831e25b..ef2e033b6ddb 100644 --- a/gcc/objc/objc-gnu-runtime-abi-01.c +++ b/gcc/objc/objc-gnu-runtime-abi-01.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #ifdef OBJCPLUS #include "cp/cp-tree.h" diff --git a/gcc/objc/objc-next-runtime-abi-01.c b/gcc/objc/objc-next-runtime-abi-01.c index 000256d83112..9c7bf4529b1b 100644 --- a/gcc/objc/objc-next-runtime-abi-01.c +++ b/gcc/objc/objc-next-runtime-abi-01.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stringpool.h" #ifdef OBJCPLUS #include "cp/cp-tree.h" diff --git a/gcc/objc/objc-next-runtime-abi-02.c b/gcc/objc/objc-next-runtime-abi-02.c index 885047705d48..c7215a86682b 100644 --- a/gcc/objc/objc-next-runtime-abi-02.c +++ b/gcc/objc/objc-next-runtime-abi-02.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #ifdef OBJCPLUS #include "cp/cp-tree.h" diff --git a/gcc/objc/objc-runtime-shared-support.c b/gcc/objc/objc-runtime-shared-support.c index 45efb780c28d..9278b39e11be 100644 --- a/gcc/objc/objc-runtime-shared-support.c +++ b/gcc/objc/objc-runtime-shared-support.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #ifdef OBJCPLUS #include "cp/cp-tree.h" diff --git a/gcc/omp-low.c b/gcc/omp-low.c index f850f53e4419..783b422a6438 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -26,6 +26,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "rtl.h" #include "gimple.h" #include "gimplify.h" @@ -43,6 +45,7 @@ along with GCC; see the file COPYING3. If not see #include "ssa-iterators.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "flags.h" diff --git a/gcc/optabs.c b/gcc/optabs.c index 661ce58bf4d7..dcef4809d8b3 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -29,6 +29,9 @@ along with GCC; see the file COPYING3. If not see #include "insn-config.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "varasm.h" #include "tm_p.h" #include "flags.h" #include "function.h" diff --git a/gcc/optabs.h b/gcc/optabs.h index 4de4409342de..6a5ec19a539a 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -551,5 +551,6 @@ extern void gen_satfract_conv_libfunc (convert_optab, const char *, extern void gen_satfractuns_conv_libfunc (convert_optab, const char *, enum machine_mode, enum machine_mode); +extern void init_tree_optimization_optabs (tree); #endif /* GCC_OPTABS_H */ diff --git a/gcc/passes.c b/gcc/passes.c index 55ec70f8962b..fee1513b4042 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "hash-table.h" #include "input.h" #include "tree.h" +#include "varasm.h" #include "rtl.h" #include "tm_p.h" #include "flags.h" @@ -63,6 +64,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "gimple-ssa.h" #include "tree-cfg.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-into-ssa.h" diff --git a/gcc/predict.c b/gcc/predict.c index b9303e2883f0..4adc5e44c9e7 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "calls.h" #include "rtl.h" #include "tm_p.h" #include "hard-reg-set.h" diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index 7d712c1562d1..833bee92f711 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see generator programs. */ #ifndef GENERATOR_FILE #include "tree.h" +#include "print-tree.h" #include "flags.h" #include "hard-reg-set.h" #include "basic-block.h" diff --git a/gcc/print-rtl.h b/gcc/print-rtl.h new file mode 100644 index 000000000000..3cb28d656fb4 --- /dev/null +++ b/gcc/print-rtl.h @@ -0,0 +1,27 @@ +/* Print RTL for GCC. + Copyright (C) 1987-2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_PRINT_RTL_H +#define GCC_PRINT_RTL_H + +#ifdef BUFSIZ +extern void print_rtl (FILE *, const_rtx); +#endif + +#endif // GCC_PRINT_RTL_H diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 5916c523f9d4..1f4bf222aa12 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" +#include "print-rtl.h" +#include "stor-layout.h" #include "ggc.h" #include "langhooks.h" #include "tree-iterator.h" diff --git a/gcc/print-tree.h b/gcc/print-tree.h new file mode 100644 index 000000000000..7d1a5c82bdc3 --- /dev/null +++ b/gcc/print-tree.h @@ -0,0 +1,46 @@ +/* Declarations for printing trees in human readable form + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_PRINT_TREE_H +#define GCC_PRINT_TREE_H + +extern void debug_tree (tree); +extern void debug_raw (const tree_node &ref); +extern void debug_raw (const tree_node *ptr); +extern void debug (const tree_node &ref); +extern void debug (const tree_node *ptr); +extern void debug_verbose (const tree_node &ref); +extern void debug_verbose (const tree_node *ptr); +extern void debug_head (const tree_node &ref); +extern void debug_head (const tree_node *ptr); +extern void debug_body (const tree_node &ref); +extern void debug_body (const tree_node *ptr); +extern void debug_vec_tree (vec *); +extern void debug (vec &ref); +extern void debug (vec *ptr); +extern void debug_raw (vec &ref); +extern void debug_raw (vec *ptr); +#ifdef BUFSIZ +extern void dump_addr (FILE*, const char *, const void *); +extern void print_node (FILE *, const char *, tree, int); +extern void print_node_brief (FILE *, const char *, const_tree, int); +extern void indent_to (FILE *, int); +#endif + +#endif // GCC_PRINT_TREE_H diff --git a/gcc/realmpfr.c b/gcc/realmpfr.c index 34f77120c5dd..b5c11206d6ce 100644 --- a/gcc/realmpfr.c +++ b/gcc/realmpfr.c @@ -22,6 +22,7 @@ #include "coretypes.h" #include "realmpfr.h" #include "tree.h" /* For TYPE_MODE in real_from_mpfr. */ +#include "stor-layout.h" /* Convert from REAL_VALUE_TYPE to MPFR. The caller is responsible for initializing and clearing the MPFR parameter. */ diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 3740934b8269..756d3bd586f7 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -154,6 +154,7 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" #include "rtl-error.h" #include "tm_p.h" #include "function.h" diff --git a/gcc/sdbout.c b/gcc/sdbout.c index f10869922d74..8af0bc5af5be 100644 --- a/gcc/sdbout.c +++ b/gcc/sdbout.c @@ -45,6 +45,8 @@ AT&T C compiler. From the example below I would conclude the following: #include "tm.h" #include "debug.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" #include "ggc.h" #include "vec.h" diff --git a/gcc/sese.c b/gcc/sese.c index d05b14afbb80..2fe77392bd43 100644 --- a/gcc/sese.c +++ b/gcc/sese.c @@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop.h" #include "tree-into-ssa.h" diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 6e174e5575c1..b91ae1ade3f9 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "varasm.h" #include "tm_p.h" #include "regs.h" #include "hard-reg-set.h" diff --git a/gcc/stmt.c b/gcc/stmt.c index 28fbf7a6bc11..37b2de344821 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see #include "rtl.h" #include "hard-reg-set.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" #include "tm_p.h" #include "flags.h" #include "except.h" diff --git a/gcc/stmt.h b/gcc/stmt.h new file mode 100644 index 000000000000..514be23a2396 --- /dev/null +++ b/gcc/stmt.h @@ -0,0 +1,34 @@ +/* Declarations and data structures for stmt.c. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_STMT_H +#define GCC_STMT_H + +extern void expand_label (tree); +extern bool parse_output_constraint (const char **, int, int, int, + bool *, bool *, bool *); +extern bool parse_input_constraint (const char **, int, int, int, int, + const char * const *, bool *, bool *); +extern tree resolve_asm_operand_names (tree, tree, tree, tree); +#ifdef HARD_CONST +/* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */ +extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *); +#endif + +#endif // GCC_STMT_H diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index 535b897f80c0..0dece714bf8d 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "varasm.h" +#include "print-tree.h" #include "rtl.h" #include "tm_p.h" #include "flags.h" diff --git a/gcc/stor-layout.h b/gcc/stor-layout.h new file mode 100644 index 000000000000..706bed4992db --- /dev/null +++ b/gcc/stor-layout.h @@ -0,0 +1,115 @@ +/* Definitions and declarations for stor-layout.c. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_STOR_LAYOUT_H +#define GCC_STOR_LAYOUT_H + +extern void set_min_and_max_values_for_integral_type (tree, int, bool); +extern void fixup_signed_type (tree); +extern void internal_reference_types (void); +extern unsigned int update_alignment_for_field (record_layout_info, tree, + unsigned int); +extern record_layout_info start_record_layout (tree); +extern tree bit_from_pos (tree, tree); +extern tree byte_from_pos (tree, tree); +extern void pos_from_bit (tree *, tree *, unsigned int, tree); +extern void normalize_offset (tree *, tree *, unsigned int); +extern tree rli_size_unit_so_far (record_layout_info); +extern tree rli_size_so_far (record_layout_info); +extern void normalize_rli (record_layout_info); +extern void place_field (record_layout_info, tree); +extern void compute_record_mode (tree); +extern void finish_record_layout (record_layout_info, int); +extern unsigned int element_precision (const_tree); +extern void finalize_size_functions (void); +extern void fixup_unsigned_type (tree); +extern void initialize_sizetypes (void); + +/* Finish up a builtin RECORD_TYPE. Give it a name and provide its + fields. Optionally specify an alignment, and then lay it out. */ +extern void finish_builtin_struct (tree, const char *, tree, tree); + +/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node, + calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE + fields. Call this only once for any given decl node. + + Second argument is the boundary that this field can be assumed to + be starting at (in bits). Zero means it can be assumed aligned + on any boundary that may be needed. */ +extern void layout_decl (tree, unsigned); + +/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT, + TYPE_ALIGN and TYPE_MODE fields. If called more than once on one + node, does nothing except for the first time. */ +extern void layout_type (tree); + +/* Construct various nodes representing fract or accum data types. */ +extern tree make_fract_type (int, int, int); +extern tree make_accum_type (int, int, int); + +#define make_signed_fract_type(P) make_fract_type (P, 0, 0) +#define make_unsigned_fract_type(P) make_fract_type (P, 1, 0) +#define make_sat_signed_fract_type(P) make_fract_type (P, 0, 1) +#define make_sat_unsigned_fract_type(P) make_fract_type (P, 1, 1) +#define make_signed_accum_type(P) make_accum_type (P, 0, 0) +#define make_unsigned_accum_type(P) make_accum_type (P, 1, 0) +#define make_sat_signed_accum_type(P) make_accum_type (P, 0, 1) +#define make_sat_unsigned_accum_type(P) make_accum_type (P, 1, 1) + +#define make_or_reuse_signed_fract_type(P) \ + make_or_reuse_fract_type (P, 0, 0) +#define make_or_reuse_unsigned_fract_type(P) \ + make_or_reuse_fract_type (P, 1, 0) +#define make_or_reuse_sat_signed_fract_type(P) \ + make_or_reuse_fract_type (P, 0, 1) +#define make_or_reuse_sat_unsigned_fract_type(P) \ + make_or_reuse_fract_type (P, 1, 1) +#define make_or_reuse_signed_accum_type(P) \ + make_or_reuse_accum_type (P, 0, 0) +#define make_or_reuse_unsigned_accum_type(P) \ + make_or_reuse_accum_type (P, 1, 0) +#define make_or_reuse_sat_signed_accum_type(P) \ + make_or_reuse_accum_type (P, 0, 1) +#define make_or_reuse_sat_unsigned_accum_type(P) \ + make_or_reuse_accum_type (P, 1, 1) + +extern tree make_signed_type (int); +extern tree make_unsigned_type (int); + +/* Return the mode for data of a given size SIZE and mode class CLASS. + If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE. + The value is BLKmode if no other mode is found. This is like + mode_for_size, but is passed a tree. */ +extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int); + +/* Given a VAR_DECL, PARM_DECL or RESULT_DECL, clears the results of + a previous call to layout_decl and calls it again. */ +extern void relayout_decl (tree); + +/* variable_size (EXP) is like save_expr (EXP) except that it + is for the special case of something that is part of a + variable size for a data type. It makes special arrangements + to compute the value at the right time when the data type + belongs to a function parameter. */ +extern tree variable_size (tree); + +/* Vector types need to check target flags to determine type. */ +extern enum machine_mode vector_type_mode (const_tree); + +#endif // GCC_STOR_LAYOUT_H diff --git a/gcc/stringpool.h b/gcc/stringpool.h new file mode 100644 index 000000000000..55592aa3957e --- /dev/null +++ b/gcc/stringpool.h @@ -0,0 +1,43 @@ +/* Declarations and definitons for stringpool.c. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_STRINGPOOL_H +#define GCC_STRINGPOOL_H + +/* Return the (unique) IDENTIFIER_NODE node for a given name. + The name is supplied as a char *. */ +extern tree get_identifier (const char *); + +/* If an identifier with the name TEXT (a null-terminated string) has + previously been referred to, return that node; otherwise return + NULL_TREE. */ +extern tree maybe_get_identifier (const char *); + +/* Identical to get_identifier, except that the length is assumed + known. */ +extern tree get_identifier_with_length (const char *, size_t); + +#if GCC_VERSION >= 3000 +#define get_identifier(str) \ + (__builtin_constant_p (str) \ + ? get_identifier_with_length ((str), strlen (str)) \ + : get_identifier (str)) +#endif + +#endif // GCC_STRINGPOOL_H diff --git a/gcc/symtab.c b/gcc/symtab.c index 9426f75399da..851264d954a6 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -22,7 +22,12 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tm.h" +#include "rtl.h" #include "tree.h" +#include "print-tree.h" +#include "varasm.h" +#include "function.h" +#include "emit-rtl.h" #include "gimple.h" #include "tree-inline.h" #include "langhooks.h" @@ -32,7 +37,6 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic.h" #include "timevar.h" #include "lto-streamer.h" -#include "rtl.h" #include "output.h" const char * const ld_plugin_symbol_resolution_names[]= diff --git a/gcc/targhooks.c b/gcc/targhooks.c index cddc439546f0..533d9f3783e1 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -53,6 +53,8 @@ along with GCC; see the file COPYING3. If not see #include "machmode.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" #include "expr.h" #include "output.h" #include "diagnostic-core.h" @@ -70,6 +72,7 @@ along with GCC; see the file COPYING3. If not see #include "opts.h" #include "gimple.h" #include "gimplify.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-alias.h" #include "insn-codes.h" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5666ad239c82..7fd31dfa3d95 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -175,6 +175,11 @@ * g++.dg/cpp0x/nsdmi-template3.C: New. * g++.dg/cpp0x/nsdmi-template4.C: Likewise. +2013-11-14 Diego Novillo + + * gcc.dg/plugin/selfassign.c: Include stringpool.h. + * gcc.dg/plugin/start_unit_plugin.c: Likewise. + 2013-11-14 Ulrich Weigand * gcc.target/powerpc/ppc64-abi-1.c (stack_frame_t): Remove diff --git a/gcc/testsuite/gcc.dg/plugin/selfassign.c b/gcc/testsuite/gcc.dg/plugin/selfassign.c index 2498153a273f..cdab74a19ae2 100644 --- a/gcc/testsuite/gcc.dg/plugin/selfassign.c +++ b/gcc/testsuite/gcc.dg/plugin/selfassign.c @@ -8,6 +8,7 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "toplev.h" #include "basic-block.h" #include "gimple.h" diff --git a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c index 257aad85a8af..39f44626a55c 100644 --- a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c +++ b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c @@ -11,6 +11,7 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" #include "toplev.h" #include "basic-block.h" #include "gimple.h" diff --git a/gcc/toplev.c b/gcc/toplev.c index 66477b651dc7..5fedcea9002b 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -29,6 +29,8 @@ along with GCC; see the file COPYING3. If not see #include "line-map.h" #include "input.h" #include "tree.h" +#include "varasm.h" +#include "tree-inline.h" #include "realmpfr.h" /* For GMP/MPFR/MPC versions, in print_version. */ #include "version.h" #include "rtl.h" diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c index 879f37b9177c..24860054e6e7 100644 --- a/gcc/trans-mem.c +++ b/gcc/trans-mem.c @@ -23,6 +23,10 @@ #include "hash-table.h" #include "tree.h" #include "gimple.h" +#include "calls.h" +#include "function.h" +#include "rtl.h" +#include "emit-rtl.h" #include "gimplify.h" #include "gimple-iterator.h" #include "gimplify-me.h" @@ -30,6 +34,7 @@ #include "gimple-ssa.h" #include "cgraph.h" #include "tree-cfg.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-pass.h" diff --git a/gcc/trans-mem.h b/gcc/trans-mem.h index 09f0b4d66e4d..d68171fc4ea3 100644 --- a/gcc/trans-mem.h +++ b/gcc/trans-mem.h @@ -17,6 +17,8 @@ along with GCC; see the file COPYING3. If not see . */ +#ifndef GCC_TRANS_MEM_H +#define GCC_TRANS_MEM_H /* These defines must match the enumerations in libitm.h. */ #define PR_INSTRUMENTEDCODE 0x0001 @@ -37,3 +39,12 @@ extern void compute_transaction_bits (void); extern bool is_tm_ending (gimple); +extern tree build_tm_abort_call (location_t, bool); +extern bool is_tm_safe (const_tree); +extern bool is_tm_pure (const_tree); +extern bool is_tm_may_cancel_outer (tree); +extern bool is_tm_ending_fndecl (tree); +extern void record_tm_replacement (tree, tree); +extern void tm_malloc_replacement (tree); + +#endif // GCC_TRANS_MEM_H diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c index 25fd7f287e0e..9e3e1bf06575 100644 --- a/gcc/tree-affine.c +++ b/gcc/tree-affine.c @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "expr.h" #include "tree-pretty-print.h" #include "pointer-set.h" #include "tree-affine.h" diff --git a/gcc/tree-browser.c b/gcc/tree-browser.c index dad06a5175ac..c3483a7b3a7c 100644 --- a/gcc/tree-browser.c +++ b/gcc/tree-browser.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "hash-table.h" #include "tree.h" #include "tree-pretty-print.h" +#include "print-tree.h" #define TB_OUT_FILE stdout #define TB_IN_FILE stdin diff --git a/gcc/tree-call-cdce.c b/gcc/tree-call-cdce.c index 8e636463deac..6f6b1171b923 100644 --- a/gcc/tree-call-cdce.c +++ b/gcc/tree-call-cdce.c @@ -24,11 +24,13 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "basic-block.h" #include "tree.h" +#include "stor-layout.h" #include "gimple-pretty-print.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimple-ssa.h" #include "tree-cfg.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-pass.h" diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 751db306aabf..a38dec3920f1 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -24,6 +24,9 @@ along with GCC; see the file COPYING3. If not see #include "hash-table.h" #include "tm.h" #include "tree.h" +#include "trans-mem.h" +#include "stor-layout.h" +#include "print-tree.h" #include "tm_p.h" #include "basic-block.h" #include "flags.h" @@ -39,10 +42,12 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop-niter.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-dump.h" diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c index 0d4c63d42596..ec99ed0a1117 100644 --- a/gcc/tree-cfgcleanup.c +++ b/gcc/tree-cfgcleanup.c @@ -36,8 +36,10 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-pass.h" diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index 130674e673f5..05f30e5afa28 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "gimple.h" #include "gimplify.h" @@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-iterator.h" diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c index dde08bb47eb8..190b91ca7521 100644 --- a/gcc/tree-data-ref.c +++ b/gcc/tree-data-ref.c @@ -77,6 +77,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "expr.h" #include "gimple-pretty-print.h" #include "gimple.h" #include "gimple-iterator.h" diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index 678bbb9c4e32..0d1eb999ccbb 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "hashtab.h" #include "pointer-set.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "basic-block.h" #include "ggc.h" @@ -38,7 +39,9 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-inline.h" #include "tree-pass.h" diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 656ba6f5cb3d..777867875858 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "hash-table.h" #include "tm.h" #include "tree.h" +#include "expr.h" +#include "calls.h" #include "flags.h" #include "function.h" #include "except.h" @@ -34,6 +36,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-ssa.h" diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c index 11337c0c1273..7f0c0a1981a7 100644 --- a/gcc/tree-emutls.c +++ b/gcc/tree-emutls.c @@ -21,6 +21,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" +#include "varasm.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimple-walk.h" @@ -29,6 +31,7 @@ along with GCC; see the file COPYING3. If not see #include "cgraph.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "langhooks.h" #include "target.h" diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 81403f25aa09..2dd073389f89 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -85,6 +85,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -96,6 +97,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-ssa.h" diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index d0eb27ba12c3..0a39ee6f4e1d 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "diagnostic-core.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" #include "tree-inline.h" #include "flags.h" #include "params.h" @@ -43,8 +45,10 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "function.h" diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h index 50ccaab42fc3..d871fc4e4b69 100644 --- a/gcc/tree-inline.h +++ b/gcc/tree-inline.h @@ -183,10 +183,9 @@ extern eni_weights eni_size_weights; extern eni_weights eni_time_weights; /* Function prototypes. */ - +void init_inline_once (void); extern tree copy_tree_body_r (tree *, int *, void *); extern void insert_decl_map (copy_body_data *, tree, tree); - unsigned int optimize_inline_calls (tree); tree maybe_inline_call_in_expr (tree); bool tree_inlinable_function_p (tree); @@ -197,9 +196,13 @@ int estimate_num_insns (gimple, eni_weights *); int estimate_num_insns_fn (tree, eni_weights *); int count_insns_seq (gimple_seq, eni_weights *); bool tree_versionable_function_p (tree); - extern tree remap_decl (tree decl, copy_body_data *id); extern tree remap_type (tree type, copy_body_data *id); extern gimple_seq copy_gimple_seq_and_replace_locals (gimple_seq seq); +extern bool debug_find_tree (tree, tree); + +/* This is in tree-inline.c since the routine uses + data structures from the inliner. */ +extern tree build_duplicate_type (tree); #endif /* GCC_TREE_INLINE_H */ diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index ee86f2cfa9dd..b2b57992d55a 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -35,8 +35,10 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-inline.h" diff --git a/gcc/tree-iterator.h b/gcc/tree-iterator.h index f75938907133..b5217f778737 100644 --- a/gcc/tree-iterator.h +++ b/gcc/tree-iterator.h @@ -117,5 +117,7 @@ extern tree alloc_stmt_list (void); extern void free_stmt_list (tree); extern void append_to_statement_list (tree, tree *); extern void append_to_statement_list_force (tree, tree *); +extern tree expr_first (tree); +extern tree expr_last (tree); #endif /* GCC_TREE_ITERATOR_H */ diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c index 075487726f47..6f9462c4aec7 100644 --- a/gcc/tree-loop-distribution.c +++ b/gcc/tree-loop-distribution.c @@ -48,10 +48,12 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "gimple-iterator.h" #include "gimplify-me.h" +#include "stor-layout.h" #include "gimple-ssa.h" #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop.h" diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c index 9b4493bade01..868c8fd0e1fa 100644 --- a/gcc/tree-nested.c +++ b/gcc/tree-nested.c @@ -22,6 +22,8 @@ #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stringpool.h" +#include "stor-layout.h" #include "tm_p.h" #include "function.h" #include "tree-dump.h" diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c index b333abf39560..035428aaec30 100644 --- a/gcc/tree-nrv.c +++ b/gcc/tree-nrv.c @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-iterator.h" #include "gimple-walk.h" #include "gimple-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "langhooks.h" diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c index 8dcd2aa5d9f4..785f71eae295 100644 --- a/gcc/tree-object-size.c +++ b/gcc/tree-object-size.c @@ -23,12 +23,14 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "tree-object-size.h" #include "diagnostic-core.h" #include "gimple-pretty-print.h" #include "bitmap.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimple-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "tree-ssa-propagate.h" diff --git a/gcc/tree-object-size.h b/gcc/tree-object-size.h new file mode 100644 index 000000000000..19029d895621 --- /dev/null +++ b/gcc/tree-object-size.h @@ -0,0 +1,26 @@ +/* Declarations for tree-object-size.c. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_TREE_OBJECT_SIZE_H +#define GCC_TREE_OBJECT_SIZE_H + +extern void init_object_sizes (void); +extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int); + +#endif // GCC_TREE_OBJECT_SIZE_H diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c index eb11c883fb4e..333ef7674181 100644 --- a/gcc/tree-outof-ssa.c +++ b/gcc/tree-outof-ssa.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "ggc.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -34,6 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "dumpfile.h" #include "diagnostic-core.h" diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c index 648331cc767a..b7370f73c461 100644 --- a/gcc/tree-parloops.c +++ b/gcc/tree-parloops.c @@ -28,10 +28,13 @@ along with GCC; see the file COPYING3. If not see #include "gimple-iterator.h" #include "gimplify-me.h" #include "gimple-walk.h" +#include "stor-layout.h" +#include "tree-nested.h" #include "gimple-ssa.h" #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c index da7bf5be978d..dffad686fd1b 100644 --- a/gcc/tree-phinodes.c +++ b/gcc/tree-phinodes.c @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa.h" #include "diagnostic-core.h" diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c index a43d19b08a9f..830f82bc8110 100644 --- a/gcc/tree-predcom.c +++ b/gcc/tree-predcom.c @@ -198,12 +198,14 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop-niter.h" #include "tree-ssa-loop.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "ggc.h" diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c index 93dc9c206101..7ed48833fc33 100644 --- a/gcc/tree-pretty-print.c +++ b/gcc/tree-pretty-print.c @@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "expr.h" #include "tree-pretty-print.h" #include "hashtab.h" #include "gimple.h" diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c index 132ce0d4d139..fb4df90b7699 100644 --- a/gcc/tree-profile.c +++ b/gcc/tree-profile.c @@ -35,12 +35,15 @@ along with GCC; see the file COPYING3. If not see #include "coverage.h" #include "tree.h" #include "gimple.h" +#include "varasm.h" +#include "tree-nested.h" #include "gimplify.h" #include "gimple-iterator.h" #include "gimplify-me.h" #include "gimple-ssa.h" #include "cgraph.h" #include "tree-cfg.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-pass.h" diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index 115683de8336..e8b18f9df07b 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -257,6 +257,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "expr.h" #include "hash-table.h" #include "gimple-pretty-print.h" #include "gimple.h" @@ -266,6 +267,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-cfg.h" #include "tree-phinodes.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index b4b17882d2a9..ea1986cae7e3 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -79,6 +79,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" #include "gimple.h" +#include "stor-layout.h" #include "gimplify.h" #include "gimple-iterator.h" #include "gimplify-me.h" @@ -88,7 +89,9 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-pass.h" diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c index cf245675796b..257d534a4921 100644 --- a/gcc/tree-ssa-address.c +++ b/gcc/tree-ssa-address.c @@ -25,14 +25,17 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "basic-block.h" #include "tree-pretty-print.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimplify-me.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" +#include "expr.h" #include "tree-dfa.h" #include "dumpfile.h" #include "flags.h" diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index c1028fb76062..ef9fbfecdc91 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -35,7 +35,9 @@ along with GCC; see the file COPYING3. If not see #include "dumpfile.h" #include "gimple.h" #include "gimple-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-inline.h" #include "params.h" diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 06da6a2ec3ed..d8ef822d4fba 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -114,6 +114,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "tm_p.h" #include "basic-block.h" @@ -126,6 +127,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "tree-ssa-propagate.h" diff --git a/gcc/tree-ssa-coalesce.c b/gcc/tree-ssa-coalesce.c index 942602e5fe3e..cc46370d1f9f 100644 --- a/gcc/tree-ssa-coalesce.c +++ b/gcc/tree-ssa-coalesce.c @@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "hash-table.h" #include "tree-ssa-live.h" diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c index 0f70372c80ef..def780650e00 100644 --- a/gcc/tree-ssa-copy.c +++ b/gcc/tree-ssa-copy.c @@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "tree-ssa-propagate.h" diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c index d71802e7a1c4..361b4c32fd79 100644 --- a/gcc/tree-ssa-copyrename.c +++ b/gcc/tree-ssa-copyrename.c @@ -31,7 +31,9 @@ along with GCC; see the file COPYING3. If not see #include "tree-pretty-print.h" #include "bitmap.h" #include "gimple-ssa.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-inline.h" #include "hashtab.h" diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c index d138f92f195c..213bb51b3e2b 100644 --- a/gcc/tree-ssa-dce.c +++ b/gcc/tree-ssa-dce.c @@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "tree.h" +#include "calls.h" #include "gimple-pretty-print.h" #include "basic-block.h" #include "gimple.h" @@ -57,9 +58,11 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-niter.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-pass.h" #include "flags.h" diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index 0ce24df2abef..bfd865d09a7a 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "hash-table.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "tm_p.h" #include "basic-block.h" @@ -36,6 +37,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "domwalk.h" diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c index 42e2380a0c8c..905ef21761c2 100644 --- a/gcc/tree-ssa-dse.c +++ b/gcc/tree-ssa-dse.c @@ -33,7 +33,9 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-pass.h" #include "domwalk.h" diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index 817fa9f46145..a826137aabdc 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -33,7 +34,9 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-pass.h" #include "langhooks.h" diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c index 8ce4871e025d..9d2437536669 100644 --- a/gcc/tree-ssa-ifcombine.c +++ b/gcc/tree-ssa-ifcombine.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "rtl.h" #include "tm_p.h" #include "tree.h" +#include "stor-layout.h" #include "basic-block.h" #include "tree-pretty-print.h" #include "gimple.h" diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index 1657f6f6ca51..5dc8d025f663 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -32,7 +32,9 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "timevar.h" #include "dumpfile.h" diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index 7f29ea2053c0..79a0543a40f0 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -33,6 +33,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop.h" diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index 97b95ab2d319..ea0ab8ca80b4 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -47,6 +47,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop-niter.h" diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index f53fa2286f2e..9bf12ebdc8ee 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -78,11 +79,13 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop-niter.h" #include "tree-ssa-loop.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "cfgloop.h" diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 31db43a2c050..fe2686d3037f 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c index 97cad3de977b..023f2a833561 100644 --- a/gcc/tree-ssa-loop-niter.c +++ b/gcc/tree-ssa-loop-niter.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "calls.h" +#include "expr.h" #include "tm_p.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -47,6 +49,7 @@ along with GCC; see the file COPYING3. If not see #include "diagnostic-core.h" #include "tree-inline.h" #include "tree-pass.h" +#include "stringpool.h" #include "tree-ssanames.h" diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c index 3738f62fa09a..6baf4abd3191 100644 --- a/gcc/tree-ssa-loop-prefetch.c +++ b/gcc/tree-ssa-loop-prefetch.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "basic-block.h" #include "tree-pretty-print.h" diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index 0c5dbb17aa5f..67117bcc3f69 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -93,11 +93,14 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "gimple-iterator.h" #include "gimplify-me.h" +#include "stor-layout.h" #include "gimple-ssa.h" #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-pass.h" diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index 4e05d2df0467..3508b34b77a8 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stmt.h" +#include "print-tree.h" #include "flags.h" #include "function.h" #include "gimple-pretty-print.h" @@ -30,6 +32,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-inline.h" #include "timevar.h" diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c index a0d739881d61..54a981935fdd 100644 --- a/gcc/tree-ssa-phiopt.c +++ b/gcc/tree-ssa-phiopt.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "tm_p.h" #include "basic-block.h" @@ -35,7 +36,9 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-pass.h" #include "langhooks.h" diff --git a/gcc/tree-ssa-phiprop.c b/gcc/tree-ssa-phiprop.c index 070b8ed3f0bf..e76404094252 100644 --- a/gcc/tree-ssa-phiprop.c +++ b/gcc/tree-ssa-phiprop.c @@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "langhooks.h" diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 6ab1b10d330f..b16fd1704d1e 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -35,9 +35,11 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "hash-table.h" diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c index 078b04afdbce..bd33071303b1 100644 --- a/gcc/tree-ssa-propagate.c +++ b/gcc/tree-ssa-propagate.c @@ -37,6 +37,7 @@ #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa.h" #include "tree-ssa-propagate.h" diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c index 709b1c1ba635..eedccc6654b9 100644 --- a/gcc/tree-ssa-reassoc.c +++ b/gcc/tree-ssa-reassoc.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "rtl.h" #include "tm_p.h" #include "tree.h" +#include "stor-layout.h" #include "basic-block.h" #include "gimple-pretty-print.h" #include "tree-inline.h" @@ -36,9 +37,11 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-niter.h" #include "tree-ssa-loop.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "tree-iterator.h" diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 786cfaa0988c..2b2d0e9b997b 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "basic-block.h" #include "gimple-pretty-print.h" #include "tree-inline.h" @@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-ssa.h" #include "dumpfile.h" diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c index caf10bb522fc..f0c831d113bb 100644 --- a/gcc/tree-ssa-sink.c +++ b/gcc/tree-ssa-sink.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "basic-block.h" #include "gimple-pretty-print.h" #include "tree-inline.h" diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c index 04e9ef4a0e2b..514b1b829e26 100644 --- a/gcc/tree-ssa-strlen.c +++ b/gcc/tree-ssa-strlen.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" #include "hash-table.h" #include "bitmap.h" #include "gimple.h" @@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-pass.h" #include "domwalk.h" diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index f1172e7f7c9c..688f547d03ad 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -29,12 +29,16 @@ #include "flags.h" #include "basic-block.h" #include "tree.h" +#include "stor-layout.h" +#include "stmt.h" #include "gimple.h" #include "gimple-iterator.h" #include "gimple-ssa.h" #include "cgraph.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "tree-inline.h" #include "diagnostic-core.h" diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c index 79be21656934..35b8bbe04978 100644 --- a/gcc/tree-ssa-tail-merge.c +++ b/gcc/tree-ssa-tail-merge.c @@ -190,6 +190,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" +#include "trans-mem.h" #include "tm_p.h" #include "basic-block.h" #include "flags.h" diff --git a/gcc/tree-ssa-ter.c b/gcc/tree-ssa-ter.c index df0c458e0195..883f950c11a8 100644 --- a/gcc/tree-ssa-ter.c +++ b/gcc/tree-ssa-ter.c @@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "dumpfile.h" #include "tree-ssa-live.h" diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index cabfc824c628..b90ff23af5da 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-propagate.h" #include "tree-ssa-threadupdate.h" diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c index e4b399863635..62ffe421f297 100644 --- a/gcc/tree-ssa-uncprop.c +++ b/gcc/tree-ssa-uncprop.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "tm_p.h" #include "basic-block.h" diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index d2552361a66e..1b4a383062b8 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "flags.h" #include "tm_p.h" #include "target.h" @@ -38,6 +39,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-into-ssa.h" diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c index 763589125695..9d88b4cf5762 100644 --- a/gcc/tree-ssanames.c +++ b/gcc/tree-ssanames.c @@ -22,10 +22,12 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "gimple.h" #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" #include "tree-ssa.h" diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c index 5cd845c0d527..221e7d705e03 100644 --- a/gcc/tree-stdarg.c +++ b/gcc/tree-stdarg.c @@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "sbitmap.h" #include "tree-pass.h" diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index 92598e39941e..560d4f8f4f75 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "diagnostic.h" #include "tree.h" +#include "stringpool.h" #include "gimple.h" #include "tree-streamer.h" #include "data-streamer.h" diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index ea1a0546516d..275c22cd7aa3 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "diagnostic.h" #include "tree.h" +#include "stor-layout.h" #include "gimple.h" #include "tree-streamer.h" #include "data-streamer.h" diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c index fa31e22d525d..494d48e5c46e 100644 --- a/gcc/tree-switch-conversion.c +++ b/gcc/tree-switch-conversion.c @@ -30,6 +30,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "params.h" #include "flags.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" #include "basic-block.h" #include "gimple.h" #include "gimplify.h" @@ -39,6 +41,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "cgraph.h" #include "tree-cfg.h" #include "tree-phinodes.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "gimple-pretty-print.h" diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c index 185bf165149e..33677ce12771 100644 --- a/gcc/tree-tailcall.c +++ b/gcc/tree-tailcall.c @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "basic-block.h" #include "function.h" @@ -31,8 +32,10 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-cfg.h" #include "tree-phinodes.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-into-ssa.h" +#include "expr.h" #include "tree-dfa.h" #include "gimple-pretty-print.h" #include "except.h" diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index 83d1f4546bdb..259a28461292 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "tm_p.h" #include "target.h" #include "basic-block.h" @@ -37,6 +38,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index 9fcab5d2a832..735689b4c18b 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" #include "tm.h" #include "langhooks.h" #include "gimple.h" @@ -28,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "gimplify-me.h" #include "gimple-ssa.h" #include "tree-cfg.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-iterator.h" #include "tree-pass.h" diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c index 411adb9afca0..5c149951b846 100644 --- a/gcc/tree-vect-loop-manip.c +++ b/gcc/tree-vect-loop-manip.c @@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-into-ssa.h" diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 86ebbd226a7b..4a277ae419ae 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "basic-block.h" #include "gimple-pretty-print.h" #include "gimple.h" @@ -35,6 +36,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-ivopts.h" #include "tree-ssa-loop-manip.h" diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c index 0992fbc9c735..de854e1a4431 100644 --- a/gcc/tree-vect-patterns.c +++ b/gcc/tree-vect-patterns.c @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "target.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -33,6 +34,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "cfgloop.h" #include "expr.h" diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c index 247bdfd6669a..bd9e4e23e0de 100644 --- a/gcc/tree-vect-slp.c +++ b/gcc/tree-vect-slp.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "target.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -34,6 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "cfgloop.h" diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 54d821af9c0f..2116cec3cf9d 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "target.h" #include "basic-block.h" #include "gimple-pretty-print.h" @@ -37,6 +38,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "cfgloop.h" diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 9c2cf5d1ce21..5021c5b48cc2 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -61,6 +61,7 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "ggc.h" #include "tree.h" +#include "stor-layout.h" #include "tree-pretty-print.h" #include "gimple.h" #include "gimple-iterator.h" diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 696cadba7671..d250186a40b3 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see #include "ggc.h" #include "flags.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" #include "basic-block.h" #include "gimple.h" #include "gimple-iterator.h" @@ -33,6 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-ssa-loop-manip.h" #include "tree-ssa-loop-niter.h" diff --git a/gcc/tree.c b/gcc/tree.c index ea106cee3756..25aa3e2a3569 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -33,6 +33,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "flags.h" #include "tree.h" +#include "stor-layout.h" +#include "calls.h" +#include "attribs.h" +#include "varasm.h" #include "tm_p.h" #include "function.h" #include "obstack.h" @@ -54,7 +58,9 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "cgraph.h" #include "tree-phinodes.h" +#include "stringpool.h" #include "tree-ssanames.h" +#include "expr.h" #include "tree-dfa.h" #include "params.h" #include "pointer-set.h" diff --git a/gcc/tree.h b/gcc/tree.h index f63672c0897c..c485c3f8a886 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -22,6 +22,12 @@ along with GCC; see the file COPYING3. If not see #include "tree-core.h" +/* These includes are required here because they provide declarations + used by inline functions in this file. + + FIXME - Move these users elsewhere? */ +#include "fold-const.h" + /* Macros for initializing `tree_contains_struct'. */ #define MARK_TS_BASE(C) \ do { \ @@ -568,7 +574,6 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, #define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \ (COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : (NODE))) - /* Define many boolean fields that all tree nodes have. */ /* In VAR_DECL, PARM_DECL and RESULT_DECL nodes, nonzero means address @@ -882,7 +887,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_5) #define TREE_LANG_FLAG_6(NODE) \ (TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_6) - + /* Define additional fields and accessors for nodes representing constants. */ /* In an INTEGER_CST node. These two together make a 2-word integer. @@ -1519,8 +1524,6 @@ extern void protected_set_expr_location (tree, location_t); #define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant) #define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context) -/* Vector types need to check target flags to determine type. */ -extern enum machine_mode vector_type_mode (const_tree); #define TYPE_MODE(NODE) \ (VECTOR_TYPE_P (TYPE_CHECK (NODE)) \ ? vector_type_mode (NODE) : (NODE)->type_common.mode) @@ -2692,8 +2695,6 @@ extern vec **decl_debug_args_insert (tree); /* Return a tree node that encapsulates the optimization options in OPTS. */ extern tree build_optimization_node (struct gcc_options *opts); -extern void init_tree_optimization_optabs (tree); - #define TREE_TARGET_OPTION(NODE) \ (&TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts) @@ -3438,30 +3439,6 @@ extern tree make_tree_vec_stat (int MEM_STAT_DECL); extern tree grow_tree_vec_stat (tree v, int MEM_STAT_DECL); #define grow_tree_vec(v, t) grow_tree_vec_stat (v, t MEM_STAT_INFO) -/* Return the (unique) IDENTIFIER_NODE node for a given name. - The name is supplied as a char *. */ - -extern tree get_identifier (const char *); - -#if GCC_VERSION >= 3000 -#define get_identifier(str) \ - (__builtin_constant_p (str) \ - ? get_identifier_with_length ((str), strlen (str)) \ - : get_identifier (str)) -#endif - - -/* Identical to get_identifier, except that the length is assumed - known. */ - -extern tree get_identifier_with_length (const char *, size_t); - -/* If an identifier with the name TEXT (a null-terminated string) has - previously been referred to, return that node; otherwise return - NULL_TREE. */ - -extern tree maybe_get_identifier (const char *); - /* Construct various types of nodes. */ extern tree build_nt (enum tree_code, ...); @@ -3612,14 +3589,10 @@ extern tree build_call_vec (tree, tree, vec *); /* Construct various nodes representing data types. */ -extern tree make_signed_type (int); -extern tree make_unsigned_type (int); extern tree signed_or_unsigned_type_for (int, tree); extern tree signed_type_for (tree); extern tree unsigned_type_for (tree); extern tree truth_type_for (tree); -extern void initialize_sizetypes (void); -extern void fixup_unsigned_type (tree); extern tree build_pointer_type_for_mode (tree, enum machine_mode, bool); extern tree build_pointer_type (tree); extern tree build_reference_type_for_mode (tree, enum machine_mode, bool); @@ -3687,51 +3660,17 @@ tree_to_uhwi (const_tree t) extern int tree_int_cst_sgn (const_tree); extern int tree_int_cst_sign_bit (const_tree); extern unsigned int tree_int_cst_min_precision (tree, bool); -extern bool tree_expr_nonnegative_p (tree); -extern bool tree_expr_nonnegative_warnv_p (tree, bool *); -extern bool may_negate_without_overflow_p (const_tree); extern tree strip_array_types (tree); extern tree excess_precision_type (tree); extern bool valid_constant_size_p (const_tree); -extern unsigned int element_precision (const_tree); - -/* Construct various nodes representing fract or accum data types. */ - -extern tree make_fract_type (int, int, int); -extern tree make_accum_type (int, int, int); - -#define make_signed_fract_type(P) make_fract_type (P, 0, 0) -#define make_unsigned_fract_type(P) make_fract_type (P, 1, 0) -#define make_sat_signed_fract_type(P) make_fract_type (P, 0, 1) -#define make_sat_unsigned_fract_type(P) make_fract_type (P, 1, 1) -#define make_signed_accum_type(P) make_accum_type (P, 0, 0) -#define make_unsigned_accum_type(P) make_accum_type (P, 1, 0) -#define make_sat_signed_accum_type(P) make_accum_type (P, 0, 1) -#define make_sat_unsigned_accum_type(P) make_accum_type (P, 1, 1) - -#define make_or_reuse_signed_fract_type(P) \ - make_or_reuse_fract_type (P, 0, 0) -#define make_or_reuse_unsigned_fract_type(P) \ - make_or_reuse_fract_type (P, 1, 0) -#define make_or_reuse_sat_signed_fract_type(P) \ - make_or_reuse_fract_type (P, 0, 1) -#define make_or_reuse_sat_unsigned_fract_type(P) \ - make_or_reuse_fract_type (P, 1, 1) -#define make_or_reuse_signed_accum_type(P) \ - make_or_reuse_accum_type (P, 0, 0) -#define make_or_reuse_unsigned_accum_type(P) \ - make_or_reuse_accum_type (P, 1, 0) -#define make_or_reuse_sat_signed_accum_type(P) \ - make_or_reuse_accum_type (P, 0, 1) -#define make_or_reuse_sat_unsigned_accum_type(P) \ - make_or_reuse_accum_type (P, 1, 1) + /* From expmed.c. Since rtl.h is included after tree.h, we can't put the prototype here. Rtl.h does declare the prototype if tree.h had been included. */ extern tree make_tree (tree, rtx); - + /* Return a type like TTYPE except that its TYPE_ATTRIBUTES is ATTRIBUTE. @@ -3850,30 +3789,6 @@ extern tree build_aligned_type (tree, unsigned int); extern tree build_distinct_type_copy (tree); extern tree build_variant_type_copy (tree); -/* Finish up a builtin RECORD_TYPE. Give it a name and provide its - fields. Optionally specify an alignment, and then lay it out. */ - -extern void finish_builtin_struct (tree, const char *, - tree, tree); - -/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT, - TYPE_ALIGN and TYPE_MODE fields. If called more than once on one - node, does nothing except for the first time. */ - -extern void layout_type (tree); - -extern record_layout_info start_record_layout (tree); -extern tree bit_from_pos (tree, tree); -extern tree byte_from_pos (tree, tree); -extern void pos_from_bit (tree *, tree *, unsigned int, tree); -extern void normalize_offset (tree *, tree *, unsigned int); -extern tree rli_size_unit_so_far (record_layout_info); -extern tree rli_size_so_far (record_layout_info); -extern void normalize_rli (record_layout_info); -extern void place_field (record_layout_info, tree); -extern void compute_record_mode (tree); -extern void finish_record_layout (record_layout_info, int); - /* Given a hashcode and a ..._TYPE node (for which the hashcode was made), return a canonicalized ..._TYPE node, so that duplicates are not made. How the hash code is computed is up to the caller, as long as any two @@ -3881,37 +3796,8 @@ extern void finish_record_layout (record_layout_info, int); extern tree type_hash_canon (unsigned int, tree); -/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node, - calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE - fields. Call this only once for any given decl node. - - Second argument is the boundary that this field can be assumed to - be starting at (in bits). Zero means it can be assumed aligned - on any boundary that may be needed. */ - -extern void layout_decl (tree, unsigned); - -/* Given a VAR_DECL, PARM_DECL or RESULT_DECL, clears the results of - a previous call to layout_decl and calls it again. */ - -extern void relayout_decl (tree); - -/* Return the mode for data of a given size SIZE and mode class CLASS. - If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE. - The value is BLKmode if no other mode is found. This is like - mode_for_size, but is passed a tree. */ - -extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int); - -/* Return an expr equal to X but certainly not valid as an lvalue. */ - -#define non_lvalue(T) non_lvalue_loc (UNKNOWN_LOCATION, T) -extern tree non_lvalue_loc (location_t, tree); - extern tree convert (tree, tree); extern unsigned int expr_align (const_tree); -extern tree expr_first (tree); -extern tree expr_last (tree); extern tree size_in_bytes (const_tree); extern HOST_WIDE_INT int_size_in_bytes (const_tree); extern HOST_WIDE_INT max_int_size_in_bytes (const_tree); @@ -3924,26 +3810,11 @@ extern HOST_WIDE_INT int_byte_position (const_tree); #define bitsizetype sizetype_tab[(int) stk_bitsizetype] #define ssizetype sizetype_tab[(int) stk_ssizetype] #define sbitsizetype sizetype_tab[(int) stk_sbitsizetype] - -extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind); -#define size_binop(CODE,T1,T2)\ - size_binop_loc (UNKNOWN_LOCATION, CODE, T1, T2) -extern tree size_binop_loc (location_t, enum tree_code, tree, tree); -#define size_diffop(T1,T2)\ - size_diffop_loc (UNKNOWN_LOCATION, T1, T2) -extern tree size_diffop_loc (location_t, tree, tree); - #define size_int(L) size_int_kind (L, stk_sizetype) #define ssize_int(L) size_int_kind (L, stk_ssizetype) #define bitsize_int(L) size_int_kind (L, stk_bitsizetype) #define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype) -#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N) -extern tree round_up_loc (location_t, tree, int); -#define round_down(T,N) round_down_loc (UNKNOWN_LOCATION, T, N) -extern tree round_down_loc (location_t, tree, int); -extern void finalize_size_functions (void); - /* Type for sizes of data-type. */ #define BITS_PER_UNIT_LOG \ @@ -3993,11 +3864,6 @@ extern tree uniform_vector_p (const_tree); extern vec *ctor_to_vec (tree); -extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *, - HOST_WIDE_INT *, bool *); - -extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree); - /* integer_zerop (tree x) is nonzero if X is an integer constant of value 0. */ extern int integer_zerop (const_tree); @@ -4121,13 +3987,6 @@ extern tree substitute_placeholder_in_expr (tree, tree); ((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) \ : substitute_placeholder_in_expr (EXP, OBJ)) -/* variable_size (EXP) is like save_expr (EXP) except that it - is for the special case of something that is part of a - variable size for a data type. It makes special arrangements - to compute the value at the right time when the data type - belongs to a function parameter. */ - -extern tree variable_size (tree); /* stabilize_reference (EXP) returns a reference equivalent to EXP but it can be used multiple times @@ -4170,36 +4029,6 @@ handled_component_p (const_tree t) } } -/* Given an expression EXP that is a handled_component_p, - look for the ultimate containing object, which is returned and specify - the access position and size. */ - -extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *, - tree *, enum machine_mode *, int *, int *, - bool); - -/* Return a tree of sizetype representing the size, in bytes, of the element - of EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */ - -extern tree array_ref_element_size (tree); - -bool array_at_struct_end_p (tree); - -/* Return a tree representing the lower bound of the array mentioned in - EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */ - -extern tree array_ref_low_bound (tree); - -/* Return a tree representing the upper bound of the array mentioned in - EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */ - -extern tree array_ref_up_bound (tree); - -/* Return a tree representing the offset, in bytes, of the field referenced - by EXP. This does not include any offset in DECL_FIELD_BIT_OFFSET. */ - -extern tree component_ref_field_offset (tree); - /* Given a DECL or TYPE, return the scope in which it was declared, or NUL_TREE if there is no containing scope. */ @@ -4274,8 +4103,6 @@ inlined_function_outer_scope_p (const_tree block) (TREE = function_args_iter_cond (&(ITER))) != NULL_TREE; \ function_args_iter_next (&(ITER))) - - /* In tree.c */ extern unsigned crc32_string (unsigned, const char *); extern unsigned crc32_byte (unsigned, char); @@ -4306,14 +4133,6 @@ extern void assign_assembler_name_if_neeeded (tree); extern void warn_deprecated_use (tree, tree); extern void cache_integer_cst (tree); - -/* In cgraph.c */ -extern void change_decl_assembler_name (tree, tree); - -/* In stmt.c */ - -extern void expand_label (tree); - /* Compare and hash for any structure which begins with a canonical pointer. Assumes all pointers are interchangeable, which is sort of already assumed by gcc elsewhere IIRC. */ @@ -4333,132 +4152,6 @@ struct_ptr_hash (const void *a) return (intptr_t)*x >> 4; } -/* In fold-const.c */ - -/* Non-zero if we are folding constants inside an initializer; zero - otherwise. */ -extern int folding_initializer; - -/* Convert between trees and native memory representation. */ -extern int native_encode_expr (const_tree, unsigned char *, int); -extern tree native_interpret_expr (tree, const unsigned char *, int); - -/* Fold constants as much as possible in an expression. - Returns the simplified expression. - Acts only on the top level of the expression; - if the argument itself cannot be simplified, its - subexpressions are not changed. */ - -extern tree fold (tree); -#define fold_unary(CODE,T1,T2)\ - fold_unary_loc (UNKNOWN_LOCATION, CODE, T1, T2) -extern tree fold_unary_loc (location_t, enum tree_code, tree, tree); -#define fold_unary_ignore_overflow(CODE,T1,T2)\ - fold_unary_ignore_overflow_loc (UNKNOWN_LOCATION, CODE, T1, T2) -extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree); -#define fold_binary(CODE,T1,T2,T3)\ - fold_binary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3) -extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree); -#define fold_ternary(CODE,T1,T2,T3,T4)\ - fold_ternary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3, T4) -extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree); -#define fold_build1(c,t1,t2)\ - fold_build1_stat_loc (UNKNOWN_LOCATION, c, t1, t2 MEM_STAT_INFO) -#define fold_build1_loc(l,c,t1,t2)\ - fold_build1_stat_loc (l, c, t1, t2 MEM_STAT_INFO) -extern tree fold_build1_stat_loc (location_t, enum tree_code, tree, - tree MEM_STAT_DECL); -#define fold_build2(c,t1,t2,t3)\ - fold_build2_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3 MEM_STAT_INFO) -#define fold_build2_loc(l,c,t1,t2,t3)\ - fold_build2_stat_loc (l, c, t1, t2, t3 MEM_STAT_INFO) -extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree, - tree MEM_STAT_DECL); -#define fold_build3(c,t1,t2,t3,t4)\ - fold_build3_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3, t4 MEM_STAT_INFO) -#define fold_build3_loc(l,c,t1,t2,t3,t4)\ - fold_build3_stat_loc (l, c, t1, t2, t3, t4 MEM_STAT_INFO) -extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree, - tree MEM_STAT_DECL); -extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree); -extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree); -#define fold_build_call_array(T1,T2,N,T4)\ - fold_build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T4) -extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *); -#define fold_build_call_array_initializer(T1,T2,N,T4)\ - fold_build_call_array_initializer_loc (UNKNOWN_LOCATION, T1, T2, N, T4) -extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *); -extern bool fold_convertible_p (const_tree, const_tree); -#define fold_convert(T1,T2)\ - fold_convert_loc (UNKNOWN_LOCATION, T1, T2) -extern tree fold_convert_loc (location_t, tree, tree); -extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree); -extern tree fold_ignored_result (tree); -extern tree fold_abs_const (tree, tree); -extern tree fold_indirect_ref_1 (location_t, tree, tree); -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 fold_fma (location_t, tree, tree, tree, tree); -extern int operand_equal_p (const_tree, const_tree, unsigned int); -extern int multiple_of_p (tree, const_tree, const_tree); -#define omit_one_operand(T1,T2,T3)\ - omit_one_operand_loc (UNKNOWN_LOCATION, T1, T2, T3) -extern tree omit_one_operand_loc (location_t, tree, tree, tree); -#define omit_two_operands(T1,T2,T3,T4)\ - omit_two_operands_loc (UNKNOWN_LOCATION, T1, T2, T3, T4) -extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree); -#define invert_truthvalue(T)\ - invert_truthvalue_loc (UNKNOWN_LOCATION, T) -extern tree invert_truthvalue_loc (location_t, tree); -extern tree fold_unary_to_constant (enum tree_code, tree, tree); -extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree); -extern tree fold_read_from_constant_string (tree); -extern tree int_const_binop (enum tree_code, const_tree, const_tree); -#define build_fold_addr_expr(T)\ - build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T)) -extern tree build_fold_addr_expr_loc (location_t, tree); -#define build_fold_addr_expr_with_type(T,TYPE)\ - build_fold_addr_expr_with_type_loc (UNKNOWN_LOCATION, (T), TYPE) -extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree); -extern tree fold_build_cleanup_point_expr (tree type, tree expr); -extern tree fold_strip_sign_ops (tree); -#define build_fold_indirect_ref(T)\ - build_fold_indirect_ref_loc (UNKNOWN_LOCATION, T) -extern tree build_fold_indirect_ref_loc (location_t, tree); -#define fold_indirect_ref(T)\ - fold_indirect_ref_loc (UNKNOWN_LOCATION, T) -extern tree fold_indirect_ref_loc (location_t, tree); -extern tree build_simple_mem_ref_loc (location_t, tree); -#define build_simple_mem_ref(T)\ - build_simple_mem_ref_loc (UNKNOWN_LOCATION, T) -extern double_int mem_ref_offset (const_tree); -extern tree build_invariant_address (tree, tree, HOST_WIDE_INT); -extern tree constant_boolean_node (bool, tree); -extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree); - -extern bool tree_swap_operands_p (const_tree, const_tree, bool); -extern enum tree_code swap_tree_comparison (enum tree_code); - -extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *); -extern enum tree_code invert_tree_comparison (enum tree_code, bool); - -extern bool tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, bool *); -extern bool tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1, - bool *); -extern bool tree_single_nonzero_warnv_p (tree, bool *); -extern bool tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, bool *); -extern bool tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree, - bool *); -extern bool tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p); -extern bool tree_call_nonnegative_warnv_p (tree, tree, tree, tree, bool *); - -extern bool fold_real_zero_addition_p (const_tree, const_tree, int); -extern tree combine_comparisons (location_t, 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 truth_value_p (enum tree_code code) @@ -4508,56 +4201,7 @@ fold_build_pointer_plus_hwi_loc (location_t loc, tree ptr, HOST_WIDE_INT off) #define fold_build_pointer_plus_hwi(p,o) \ fold_build_pointer_plus_hwi_loc (UNKNOWN_LOCATION, p, o) -/* In builtins.c */ - -/* Non-zero if __builtin_constant_p should be folded right away. */ -extern bool force_folding_builtin_constant_p; - -extern bool avoid_folding_inline_builtin (tree); -extern tree fold_call_expr (location_t, tree, bool); -extern tree fold_builtin_fputs (location_t, tree, tree, bool, bool, tree); -extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree); -extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree); -extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, bool, - enum built_in_function); -extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, bool, - enum built_in_function); -extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, bool, - enum built_in_function); -extern bool fold_builtin_next_arg (tree, bool); -extern enum built_in_function builtin_mathfn_code (const_tree); -extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *); -extern tree build_call_expr_loc_array (location_t, tree, int, tree *); -extern tree build_call_expr_loc_vec (location_t, tree, vec *); -extern tree build_call_expr_loc (location_t, tree, int, ...); -extern tree build_call_expr (tree, int, ...); -extern tree mathfn_built_in (tree, enum built_in_function fn); -extern tree c_strlen (tree, int); -extern tree build_string_literal (int, const char *); -extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode); -extern bool is_builtin_fn (tree); -extern bool get_object_alignment_1 (tree, unsigned int *, - unsigned HOST_WIDE_INT *); -extern unsigned int get_object_alignment (tree); -extern bool get_pointer_alignment_1 (tree, unsigned int *, - unsigned HOST_WIDE_INT *); -extern unsigned int get_pointer_alignment (tree); -extern tree fold_call_stmt (gimple, bool); -extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function); -extern tree make_range (tree, int *, tree *, tree *, bool *); -extern tree make_range_step (location_t, enum tree_code, tree, tree, tree, - tree *, tree *, int *, bool *); -extern tree build_range_check (location_t, tree, tree, int, tree, tree); -extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int, - tree, tree); -extern void set_builtin_user_assembler_name (tree decl, const char *asmspec); -extern bool is_simple_builtin (tree); -extern bool is_inexpensive_builtin (tree); - -/* In convert.c */ extern tree strip_float_extensions (tree); - -/* In tree.c */ extern int really_constant_p (const_tree); extern bool decl_address_invariant_p (const_tree); extern bool decl_address_ip_invariant_p (const_tree); @@ -4581,7 +4225,6 @@ extern void dump_tree_statistics (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); - extern int real_onep (const_tree); extern int real_minus_onep (const_tree); extern void init_ttree (void); @@ -4593,14 +4236,11 @@ extern tree build_nonshared_range_type (tree, tree, tree); extern bool subrange_type_for_debug_p (const_tree, tree *, tree *); extern HOST_WIDE_INT int_cst_value (const_tree); extern HOST_WIDEST_INT widest_int_cst_value (const_tree); - extern tree tree_block (tree); extern void tree_set_block (tree, tree); extern location_t *block_nonartificial_location (tree); extern location_t tree_nonartificial_location (tree); - extern tree block_ultimate_origin (const_tree); - extern tree get_binfo_at_offset (tree, HOST_WIDE_INT, tree); extern bool virtual_method_call_p (tree); extern tree obj_type_ref_class (tree ref); @@ -4610,163 +4250,8 @@ extern bool type_in_anonymous_namespace_p (tree); extern bool block_may_fallthru (const_tree); extern void using_eh_for_cleanups (void); extern bool using_eh_for_cleanups_p (void); - extern const char *get_tree_code_name (enum tree_code); - -/* In function.c */ -extern void expand_function_end (void); -extern void expand_function_start (tree); -extern void stack_protect_epilogue (void); -extern void init_dummy_function_start (void); -extern void expand_dummy_function_end (void); -extern void allocate_struct_function (tree, bool); -extern void push_struct_function (tree fndecl); -extern void init_function_start (tree); -extern bool use_register_for_decl (const_tree); -extern void generate_setjmp_warnings (void); -extern void init_temp_slots (void); -extern void free_temp_slots (void); -extern void pop_temp_slots (void); -extern void push_temp_slots (void); -extern void preserve_temp_slots (rtx); -extern int aggregate_value_p (const_tree, const_tree); -extern void push_function_context (void); -extern void pop_function_context (void); -extern gimple_seq gimplify_parameters (void); - -/* In print-rtl.c */ -#ifdef BUFSIZ -extern void print_rtl (FILE *, const_rtx); -#endif - -/* In print-tree.c */ -extern void debug_tree (tree); -extern void debug_raw (const tree_node &ref); -extern void debug_raw (const tree_node *ptr); -extern void debug (const tree_node &ref); -extern void debug (const tree_node *ptr); -extern void debug_verbose (const tree_node &ref); -extern void debug_verbose (const tree_node *ptr); -extern void debug_head (const tree_node &ref); -extern void debug_head (const tree_node *ptr); -extern void debug_body (const tree_node &ref); -extern void debug_body (const tree_node *ptr); -extern void debug_vec_tree (vec *); -extern void debug (vec &ref); -extern void debug (vec *ptr); -extern void debug_raw (vec &ref); -extern void debug_raw (vec *ptr); -#ifdef BUFSIZ -extern void dump_addr (FILE*, const char *, const void *); -extern void print_node (FILE *, const char *, tree, int); -extern void print_node_brief (FILE *, const char *, const_tree, int); -extern void indent_to (FILE *, int); -#endif - -/* In tree-inline.c: */ -extern bool debug_find_tree (tree, tree); -/* This is in tree-inline.c since the routine uses - data structures from the inliner. */ -extern tree build_duplicate_type (tree); - -/* In calls.c */ -extern int flags_from_decl_or_type (const_tree); -extern int call_expr_flags (const_tree); extern void set_call_expr_flags (tree, int); - -extern int setjmp_call_p (const_tree); -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); - -/* In attribs.c. */ - -extern const struct attribute_spec *lookup_attribute_spec (const_tree); -extern void init_attributes (void); - -/* Process the attributes listed in ATTRIBUTES and install them in *NODE, - which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL, - it should be modified in place; if a TYPE, a copy should be created - unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further - information, in the form of a bitwise OR of flags in enum attribute_flags - from tree.h. Depending on these flags, some attributes may be - returned to be applied at a later stage (for example, to apply - a decl attribute to the declaration rather than to its type). */ -extern tree decl_attributes (tree *, tree, int); - -extern bool cxx11_attribute_p (const_tree); - -extern tree get_attribute_name (const_tree); - -extern void apply_tm_attr (tree, tree); - -/* In stor-layout.c */ -extern void set_min_and_max_values_for_integral_type (tree, int, bool); -extern void fixup_signed_type (tree); -extern void internal_reference_types (void); -extern unsigned int update_alignment_for_field (record_layout_info, tree, - unsigned int); -/* varasm.c */ -extern tree tree_output_constant_def (tree); -extern void make_decl_rtl (tree); -extern rtx make_decl_rtl_for_debug (tree); -extern void make_decl_one_only (tree, tree); -extern int supports_one_only (void); -extern void resolve_unique_section (tree, int, int); -extern void mark_referenced (tree); -extern void mark_decl_referenced (tree); -extern void notice_global_symbol (tree); -extern void set_user_assembler_name (tree, const char *); -extern void process_pending_assemble_externals (void); -extern bool decl_replaceable_p (tree); -extern bool decl_binds_to_current_def_p (tree); -extern enum tls_model decl_default_tls_model (const_tree); - -/* Declare DECL to be a weak symbol. */ -extern void declare_weak (tree); -/* Merge weak status. */ -extern void merge_weak (tree, tree); -/* Make one symbol an alias for another. */ -extern void assemble_alias (tree, tree); - -/* Return nonzero if VALUE is a valid constant-valued expression - for use in initializing a static variable; one that can be an - element of a "constant" initializer. - - Return null_pointer_node if the value is absolute; - if it is relocatable, return the variable that determines the relocation. - We assume that VALUE has been folded as much as possible; - therefore, we do not need to check for such things as - arithmetic-combinations of integers. */ -extern tree initializer_constant_valid_p (tree, tree); - -/* Return true if VALUE is a valid constant-valued expression - for use in initializing a static bit-field; one that can be - an element of a "constant" initializer. */ -extern bool initializer_constant_valid_for_bitfield_p (tree); - -/* Whether a constructor CTOR is a valid static constant initializer if all - its elements are. This used to be internal to initializer_constant_valid_p - and has been exposed to let other functions like categorize_ctor_elements - evaluate the property while walking a constructor for other purposes. */ - -extern bool constructor_static_from_elts_p (const_tree); - -/* In stmt.c */ -extern bool parse_output_constraint (const char **, int, int, int, - bool *, bool *, bool *); -extern bool parse_input_constraint (const char **, int, int, int, int, - const char * const *, bool *, bool *); -extern tree resolve_asm_operand_names (tree, tree, tree, tree); -#ifdef HARD_CONST -/* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */ -extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *); -#endif - - -/* In tree-inline.c */ - extern tree walk_tree_1 (tree*, walk_tree_fn, void*, struct pointer_set_t*, walk_tree_lh); extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*, @@ -4776,16 +4261,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); -extern void set_decl_incoming_rtl (tree, rtx, bool); - -/* In gimple.c. */ extern tree get_base_address (tree t); - -/* In tree.c. */ extern tree drop_tree_overflow (tree); extern int tree_map_base_eq (const void *, const void *); extern unsigned int tree_map_base_hash (const void *); @@ -4811,33 +4287,6 @@ extern unsigned int tree_decl_map_hash (const void *); #define tree_vec_map_hash tree_decl_map_hash #define tree_vec_map_marked_p tree_map_base_marked_p -/* In tree-object-size.c. */ -extern void init_object_sizes (void); -extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int); - -/* In expr.c. */ - -/* Determine whether the LEN bytes can be moved by using several move - instructions. Return nonzero if a call to move_by_pieces should - succeed. */ -extern int can_move_by_pieces (unsigned HOST_WIDE_INT, unsigned int); - -extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree); -extern tree build_personality_function (const char *); - -/* In trans-mem.c. */ -extern tree build_tm_abort_call (location_t, bool); -extern bool is_tm_safe (const_tree); -extern bool is_tm_pure (const_tree); -extern bool is_tm_may_cancel_outer (tree); -extern bool is_tm_ending_fndecl (tree); -extern void record_tm_replacement (tree, tree); -extern void tm_malloc_replacement (tree); - -/* In tree-inline.c. */ - -void init_inline_once (void); - /* Initialize the abstract argument list iterator object ITER with the arguments from CALL_EXPR node EXP. */ static inline void @@ -5045,5 +4494,70 @@ may_be_aliased (const_tree var) #endif /* NO_DOLLAR_IN_LABEL */ #endif /* NO_DOT_IN_LABEL */ +/* FIXME - These declarations belong in builtins.h, expr.h and emit-rtl.h, + but none of these files are allowed to be included from front ends. + They should be split in two. One suitable for the FEs, the other suitable + for the BE. */ + +/* Assign the RTX to declaration. */ +extern void set_decl_rtl (tree, rtx); +extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree); + +/* Return a tree representing the upper bound of the array mentioned in + EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */ +extern tree array_ref_up_bound (tree); + +extern tree build_personality_function (const char *); + +/* Given an expression EXP that is a handled_component_p, + look for the ultimate containing object, which is returned and specify + the access position and size. */ +extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *, + tree *, enum machine_mode *, int *, int *, + bool); + +/* Return a tree representing the lower bound of the array mentioned in + EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */ +extern tree array_ref_low_bound (tree); + +/* In builtins.c. */ + +/* Non-zero if __builtin_constant_p should be folded right away. */ +extern bool force_folding_builtin_constant_p; + +extern bool avoid_folding_inline_builtin (tree); +extern tree fold_call_expr (location_t, tree, bool); +extern tree fold_builtin_fputs (location_t, tree, tree, bool, bool, tree); +extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree); +extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree); +extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, bool, + enum built_in_function); +extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, bool, + enum built_in_function); +extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, bool, + enum built_in_function); +extern bool fold_builtin_next_arg (tree, bool); +extern enum built_in_function builtin_mathfn_code (const_tree); +extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *); +extern tree build_call_expr_loc_array (location_t, tree, int, tree *); +extern tree build_call_expr_loc_vec (location_t, tree, vec *); +extern tree build_call_expr_loc (location_t, tree, int, ...); +extern tree build_call_expr (tree, int, ...); +extern tree mathfn_built_in (tree, enum built_in_function fn); +extern tree c_strlen (tree, int); +extern tree build_string_literal (int, const char *); +extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode); +extern bool is_builtin_fn (tree); +extern bool get_object_alignment_1 (tree, unsigned int *, + unsigned HOST_WIDE_INT *); +extern unsigned int get_object_alignment (tree); +extern bool get_pointer_alignment_1 (tree, unsigned int *, + unsigned HOST_WIDE_INT *); +extern unsigned int get_pointer_alignment (tree); +extern tree fold_call_stmt (gimple, bool); +extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function); +extern void set_builtin_user_assembler_name (tree decl, const char *asmspec); +extern bool is_simple_builtin (tree); +extern bool is_inexpensive_builtin (tree); #endif /* GCC_TREE_H */ diff --git a/gcc/tsan.c b/gcc/tsan.c index b8f65af65411..42730f07f84e 100644 --- a/gcc/tsan.c +++ b/gcc/tsan.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "expr.h" #include "intl.h" #include "tm.h" #include "basic-block.h" @@ -33,6 +34,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "cgraph.h" #include "tree-cfg.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "tree-iterator.h" diff --git a/gcc/ubsan.c b/gcc/ubsan.c index 62894d9687e1..de5dc40d659b 100644 --- a/gcc/ubsan.c +++ b/gcc/ubsan.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" #include "cgraph.h" #include "tree-pass.h" #include "gimple.h" diff --git a/gcc/value-prof.c b/gcc/value-prof.c index f21ff00f2cbe..2fe12b603f28 100644 --- a/gcc/value-prof.c +++ b/gcc/value-prof.c @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "tree-nested.h" +#include "calls.h" #include "rtl.h" #include "expr.h" #include "hard-reg-set.h" @@ -40,6 +42,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-cfg.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "diagnostic.h" #include "gimple-pretty-print.h" diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index fc3fc93ca5b4..a569d468ec3a 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -91,6 +91,9 @@ #include "tm.h" #include "rtl.h" #include "tree.h" +#include "varasm.h" +#include "stor-layout.h" +#include "gimple.h" #include "tm_p.h" #include "hard-reg-set.h" #include "basic-block.h" diff --git a/gcc/varasm.c b/gcc/varasm.c index 1fd53f0457f6..475d196063cb 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -31,6 +31,10 @@ along with GCC; see the file COPYING3. If not see #include "tm.h" #include "rtl.h" #include "tree.h" +#include "stor-layout.h" +#include "stringpool.h" +#include "gcc-symtab.h" +#include "varasm.h" #include "flags.h" #include "function.h" #include "expr.h" diff --git a/gcc/varasm.h b/gcc/varasm.h new file mode 100644 index 000000000000..d2a01a700ab6 --- /dev/null +++ b/gcc/varasm.h @@ -0,0 +1,69 @@ +/* Declarations for varasm.h. + Copyright (C) 2013 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_VARASM_H +#define GCC_VARASM_H + +extern tree tree_output_constant_def (tree); +extern void make_decl_rtl (tree); +extern rtx make_decl_rtl_for_debug (tree); +extern void make_decl_one_only (tree, tree); +extern int supports_one_only (void); +extern void resolve_unique_section (tree, int, int); +extern void mark_referenced (tree); +extern void mark_decl_referenced (tree); +extern void notice_global_symbol (tree); +extern void set_user_assembler_name (tree, const char *); +extern void process_pending_assemble_externals (void); +extern bool decl_replaceable_p (tree); +extern bool decl_binds_to_current_def_p (tree); +extern enum tls_model decl_default_tls_model (const_tree); + +/* Declare DECL to be a weak symbol. */ +extern void declare_weak (tree); + +/* Merge weak status. */ +extern void merge_weak (tree, tree); + +/* Make one symbol an alias for another. */ +extern void assemble_alias (tree, tree); + +/* Return nonzero if VALUE is a valid constant-valued expression + for use in initializing a static variable; one that can be an + element of a "constant" initializer. + + Return null_pointer_node if the value is absolute; + if it is relocatable, return the variable that determines the relocation. + We assume that VALUE has been folded as much as possible; + therefore, we do not need to check for such things as + arithmetic-combinations of integers. */ +extern tree initializer_constant_valid_p (tree, tree); + +/* Return true if VALUE is a valid constant-valued expression + for use in initializing a static bit-field; one that can be + an element of a "constant" initializer. */ +extern bool initializer_constant_valid_for_bitfield_p (tree); + +/* Whether a constructor CTOR is a valid static constant initializer if all + its elements are. This used to be internal to initializer_constant_valid_p + and has been exposed to let other functions like categorize_ctor_elements + evaluate the property while walking a constructor for other purposes. */ +extern bool constructor_static_from_elts_p (const_tree); + +#endif // GCC_VARASM_H diff --git a/gcc/varpool.c b/gcc/varpool.c index 4521caf2b106..06b93a30d5f3 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" #include "cgraph.h" #include "langhooks.h" #include "diagnostic-core.h" diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c index 9f308a6fdf2e..7972dd7a93e8 100644 --- a/gcc/vmsdbgout.c +++ b/gcc/vmsdbgout.c @@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see #ifdef VMS_DEBUGGING_INFO #include "tree.h" +#include "varasm.h" #include "version.h" #include "flags.h" #include "rtl.h" diff --git a/gcc/vtable-verify.c b/gcc/vtable-verify.c index ecf1dc25e84e..8d692e62e117 100644 --- a/gcc/vtable-verify.c +++ b/gcc/vtable-verify.c @@ -143,6 +143,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple-ssa.h" #include "tree-phinodes.h" #include "ssa-iterators.h" +#include "stringpool.h" #include "tree-ssanames.h" #include "tree-pass.h" #include "cfgloop.h" diff --git a/gcc/xcoffout.c b/gcc/xcoffout.c index 8a9093c10c2a..c14f01424f36 100644 --- a/gcc/xcoffout.c +++ b/gcc/xcoffout.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "coretypes.h" #include "tm.h" #include "tree.h" +#include "varasm.h" #include "rtl.h" #include "flags.h" #include "diagnostic-core.h"