aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-06-112008-06-11 Diego Novillo <dnovillo@google.com>lto-streamerDiego Novillo
Merge with lto r136640. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136659 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-102008-06-10 Diego Novillo <dnovillo@google.com>Diego Novillo
* lto-function-out.c (output_type_ref, output_expr_operand, lto_static_init, output_function): Fix merge problems. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136635 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-102008-06-10 Diego Novillo <dnovillo@google.com>Diego Novillo
Ollie Wild <aaw@google.com> Merge with lto. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136624 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-10 * lto-tags.h: Add new tags LTO_local_type_refBill Maddox
and LTO_global_type_ref. Split LTO_type_decl and LTO_field_decl into LTO_type_decl0, LTO_type_decl1, LTO_field_decl0, and LTO_field_decl1. * lto-tree-tags.h: Set names and tree code mappings for the new tags. * lto-function-out.c: Tidy comments and formatting. (output_record_start): Add forward declaration. (type_function_context): New function. (field_decl_is_local, type_decl_is_local): New functions. (output_type_ref_1): Write "local" (e.g., variably-modified) types to local_decls stream. (output_type_ref): Use "type_ref" as debug token to avoid confusing clash with use of "type" elsewhere. (output_local_decl_ref): Update comment. (output_expr_operand): Cases for FIELD_DECL and TYPE_DECL now write "local" declarations to local_decls stream. (output_local_var): Rename to output_local_var_decl. (output_local_var_decl): Remove code to set slot in local_decls_index, now handled by output_local_decl. (output_local_tree): New function. (output_local_field_decl, output_local_type_decl, output_local_type): New functions. (output_local_decl): New function. (output_field_decl): Use new tag LTO_field_decl1, to distinguish from "local" fields. (output_type_decl): Use new tag LTO_type_decl1, to distinguish from "local" fields. * lto-function-in.c: Tidy comments and formatting. (input_local_tree, input_local_var_decl, input_local_field_decl, input_local_type_decl, input_local_type): Add forward declarations. (input_type_ref_1): Distinguish references to global or local declaration streams. (input_type_ref): Use "type_ref" as debug token to avoid confusing clash with use of "type" elsewhere. (input_expr_operand): Cases for FIELD_DECL and TYPE_DECL now read "local" declarations from local_decls stream. (input_local_tree): New function. (input_local_var): Rename to input_local_var_decl. (input_local_var_decl): Input record tag is now an argument. (input_local_field_decl, input_local_type_decl, input_local_type): New functions. (input_local_decl): New function. (input_local_vars): Call input_local_decl instead of input_local_var. (lto_static_init_local): Don't call add_referenced_var on non-vars. * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node): Use object pointer, not UID, as hash key. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136611 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-092008-06-09 Rafael Espindola <espindola@google.com>Rafael Espindola
based on http://gcc.gnu.org/ml/gcc-patches/2008-03/msg00349.html * langhooks-def.h (LANG_HOOKS_RESET_LANG_SPECIFICS): New. (LANG_HOOKS_INITIALIZER): add LANG_HOOKS_RESET_LANG_SPECIFICS. * langhooks.h (reset_lang_specifics): New. * lto-section-out.c (produce_asm_for_decls): Call free_lang_specifics. * tree.c (uid2type_map): New. (insert_type_to_uid_type_map): New. (uid_type_map_eq): New. (uid_type_map_hash): New. (init_ttree): Initialize uid2type_map. (make_node_stat): Call insert_type_to_uid_type_map. (copy_node_stat): Call insert_type_to_uid_type_map. (reset_type_lang_specific): New. (free_lang_specifics): New. * tree.h (free_lang_specifics) New. 2008-06-09 Rafael Espindola <espindola@google.com> based on http://gcc.gnu.org/ml/gcc-patches/2008-03/msg00349.html * cp-objcp-common.h (LANG_HOOKS_RESET_LANG_SPECIFICS): New. * cp-tree.h (cp_reset_lang_specifics): New. * tree.c (cp_reset_lang_specifics): New. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136592 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-062008-06-06 Rafael Espindola <espindola@google.com>Rafael Espindola
* Make-lang.in (lto.all.cross): depend on $(LTO_EXE). git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136493 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-052008-06-04 Rafael Espindola <espindola@google.com>Rafael Espindola
* lto-function-out.c (output_tree): call error with the TREE_CODE name. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136397 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-05 gcc/Ollie Wild
* dwarf2out.c (dwarf2_called_from_lto_p): Remove. (current_fde): New function. (add_fde_cfi): Call current_fde. (lookup_cfa): Call curent_fde. (dwarf2out_end_epilogue): Call current_fde. (dwarf2out_switch_text_section: Call current_fde. (lto_void_type_die): Remove. (dwarf_attr_name): Declare static. Remove flag_generate_lto check. (assign_symbol_name): Remove. (assign_symbol_names): Expand call to assign_symbol_name. (base_type_die): Replace DW_ATE_GNU_complex_unsigned and DW_ATE_GNU_complex_signed encodings with DW_ATE_lo_user. Remove byte_size computation. Remove extra precision information. (may_reference_to_unused): Rename reference_to_unused. (rtl_for_decl_init): Rename calls to may_reference_to_unused. (convert_cfa_to_fb_loc_list): Call current_fde. (gen_subprogram_die): Remove flag_generate_lto and dwarf2_called_from_lto_p checks. (gen_variable_die): Remove context_die == comp_unit_die checks. (add_high_low_attributes): Remove dwarf2_called_from_lto_p check. (force_die_for_context): Remove. (containing_decl_for_block): Remove. (force_block_die): Remove. (force_decl_die): Expand call to force_die_for_context. Remove context_die == comp_unit_die check. Remove the removal of of DW_AT_DECLARATION. (force_type_die): Expand the force_die_for_context call. (force_field_die): Remove. (gen_decl_die): Remove the cgraph_global_info_ready check. (dwarf2out_init): Remove lto_void_type_die initialization. (dwarf2out_finish): Remove context assignment. (mark_die_used): Remove. (lto_init_ref): Remove. (lto_type_ref): Remove. (lto_var_ref): Remove. (lto_fn_ref): Remove. (lto_field_ref): Remove. (lto_typedecl_ref): Remove. (lto_namespacedecl_ref): Remove. * dwarf2out.h (dwarf2_called_from_lto_p): Remove. (dwarf_attr_name): Remove. (lto_out_ref): Remove. (lto_type_ref): Remove. (lto_var_ref): Remove. (lto_fn_ref): Remove. (lto_field_ref): Remove. (lto_typedecl_ref): Remove. (lto_namespacedecl_ref): Remove. * dwarf2.h (enum dwarf_type): Remove DW_ATE_GNU_complex_signed and DW_ATE_GNU_complex_unsigned. * lto-cgraph-in.c: Remove inclusion of dwarf2asm.h and dwarf2out.h. * lto-cgraph-out.c: Remove inclusion of dwarf2asm.h and dwarf2out.h. (lto_output_cgraph): Remove assignments to dwarf2_called_from_lto_p. * lto-function-in.c: Remove inclusion of dwarf2asm.h and dwarf2out.h. * lto-function-out.c: Remove inclusion of dwarf2asm.h and dwarf2out.h. (generate_early_dwarf_information): Remove. (output_function): Remove generate_early_dwarf_information call. (lto_output): Remove assignments to dwarf2_called_from_lto_p. * lto-section-in.c: Remove inclusion of dwarf2asm.h and dwarf2out.h. * lto-section-out.c: Remove inclusion of dwarf2out.h. gcc/lto/ * lto.c: Remove inclusion of dwarf2.h and dwarf2out.h. * Make-lang.in (lto.o): Remove dependency on dwarf2.h. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136385 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-042008-06-04 Rafael Espindola <espindola@google.com>Rafael Espindola
Mainline merge @136135 * configure.ac (ACX_PKGVERSION): Update revision merge string. * configure: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136367 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-04 * lto-tree-flags.def: Add flags for LABEL_DECL.Bill Maddox
* lto-function-out.c (output_label_decl): New function. (output_tree): Make sure that we do not stream out well-known nodes, even for node types for which we would not necessarily force sharing. Reinstate handlers for SWITCH_EXPR and CASE_LABEL. Add case for LABEL_DECL. * lto-function-in.c (input_label_decl): New function. (input_tree_operand): Reinstate handlers for SWITCH_EXPR and CASE_LABEL. Add case for LABEL_DECL. * lto-section-out.c (preload_common_nodes): Verify that main_identifier_name is as expected by the reader. * lto.c (preload_common_nodes): Initialize main_identifier_node. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136350 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-032008-06-03 Diego Novillo <dnovillo@google.com>Diego Novillo
* lto-header.h: Tidy formatting. * lto-section-in.c (lto_get_section_data): Fix type for SECTION_NAME. (lto_debug_in_fun): Tidy formatting. * lto-tags.h (enum): Tidy formatting. * lto-cgraph-out.c (output_fn_decl): Add comment. * lto-section-out.c (lto_output_decl_index): Tidy formatting. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136343 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-032008-06-03 Diego Novillo <dnovillo@google.com>Diego Novillo
* lto-function-out.c (output_tree_flags): Tidy formatting. (output_type_decl): Emit TYPE_MODE. (output_tree): Add comment. Ignore language codes. Add pointer to proper fix. * lto-function-in.c (input_type_decl): Read TYPE_MODE. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136342 138bc75d-0d04-0410-961f-82ee72b054a4
2008-06-022008-06-02 Diego Novillo <dnovillo@google.com>Diego Novillo
* lto-function-out.c: Do not include ctype.h. Tidy whitespace. (output_function_decl): Add comment. (output_type_tree): Reformat comment. * lto-header.h (lto_get_section_name): Fix return type. Tidy whitespace. * lto-tree-out.h: Tidy whitespace and comments. * lto-section-out.c (lto_get_section_name): Fix return type. (lto_get_section): Fix type of section_name. (lto_get_out_decl_state): Reformat comment. (out_state): Declare as local static to lto_get_out_decl_state. Fix wraparound problems. (preload_common_node): Reformat comment. Tidy whitespace. (produce_asm_for_decls): Remove extern declarations. Fix wraparound problems. (lto_debug_out_fun): Fix comment. * lto-section-out.h: Tidy whitesace and formatting. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136288 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-312008-05-30 Diego Novillo <dnovillo@google.com>Diego Novillo
* lto-function-out.c (output_namespace_decl): Fix assertions for NAMESPACE_DECL. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136234 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-302008-05-30 Diego Novillo <dnovillo@google.com>Diego Novillo
Backport from trunk: 2008-05-27 Richard Guenther <rguenther@suse.de> PR tree-optimization/36245 * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136212 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-29 * lto-tree-in.h, lto-tree-out.h: New files,Bill Maddox
accidently omitted from previous commit. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136183 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-29 In gcc:Bill Maddox
* lto-tree-flags.def: Add flags for *_DECL and *_TYPE for use by g lobal streamer. * lto-function-out.c: Include lto-tree-out.h. (struct output_block): Moved to lto-tree-out.h. (create_output_block, destroy_output_block): Make non-static, now exported. (output_tree_flags, debug_tree_flags): Add ADD_CLASS_TYPE, ADD_TYPE_FLAG, ADD_FUN_FLAG macros. Fix bug where stream debugging info was sometimes omitted. (lto_static_init): Adjust lto_flags_needed_for and lto_types_needed_for for node types now newly handled by the global streamer. (output_tree, output_type_tree, output_global_record_start, output_field_decl, output_function_decl, output_var_decl, output_parm_decl, output_result_decl, output_type_decl, output_namespace_decl, output_translation_unit_decl, output_binfo, output_type, output_global_constructor) New functions. * lto_function-in.c: Include lto-tree-in.h. (struct data_in): Moved to lto-tree-in.h. (input_string_internal): Initialize input_block before reading string table size from the stream. (process_tree_flags): Add ADD_CLASS_TYPE_FLAG, ADD_TYPE_FLAG, ADD_FUN_FLAG. (input_local_var): Handle stream debugging information that was previously omitted due to a bug in the writer. (lto_static_init_local): Make non-static, now exported. Add ADD_CLASS_TYPE_FLAG, ADD_TYPE_FLAG, ADD_FUN_FLAG. (input_tree, input_type_tree, input_tree_operand, global_vector_enter, global_vector_fixup, input_field_decl, input_function_decl, input_var_decl, input_parm_decl, input_result_decl, input_type_decl, input_namespace_decl, input_translation_unit_decl, input_binfo, input_type): New functions. * lto-section.h (struct lto_decl_header): Add fields for sizes of globals stream and its associated debug and string table streams. * lto-tree-tags.def: MAP_EXPR_TAG and SET_NAME macro calls for newly-handled tree codes for global decls and types. * lto-section-in.c (dump_debug_stream): Fix typo in error message. * lto-section-in.h (lto_input_function_body, lto_input_constructors_and_inits): Moved to lto-tree-in.h. * lto-tags.h (enum LTO_tags): Added literals LTO_tree_vec, LTO_translation_unit_decl, LTO_*_type, LTO_tree_binfo, LTO_pickle_reference. In gcc/lto: * lto.c: Include lto-tree-in.h, lto-tags.h. (enum DWARF2_class, DW_cl_constant, struct DWARF2_form_data, struct lto_context, lto_fd_init, lto_info_fd_init, lto_abbrev_fd_init, lto_info_fd_close, lto_file_init, lto_file_close, lto_file_corrupt_error, lto_abi_mismatch_error, LTO_CHECK_INT_VAL, LTO_READ_TYPE, lto_read_uleb128, lto_read_sleb128, lto_read_initial_length, lto_abbrev_read_attrs, lto_abbrev_read, lto_abbrev_read_lookup, lto_read_section_offset, lto_read_comp_unit_header, find_cu_for_offset, lto_get_file_name, lto_resolve_reference,lto_read_form, attribute_value_as_int, make_signed_host_wide_int, attribute_value_as_constant, lto_cache_hash, lto_cache_eq, lto_cache_store_DIE, lto_cache_lookup_DIE, lto_find_integral_type, lto_find_integral_type_1, LTO_BEGIN_READ_ATTRS_UNCHECKED, LTO_BEGIN_READ_ATTRS, LTO_END_READ_ATTRS, lto_unsupported_attr_error, lto_get_identifier, lto_read_referenced_type_DIE, lto_read_compile_unit_DIE, lto_read_array_type_DIE, lto_read_structure_union_class_type_DIE, lto_read_enumerator_DIE, lto_read_enumeration_type_DIE, lto_read_only_for_child_DIEs, lto_read_only_for_child_DIEs, lto_read_member_DIE, lto_read_abbrev, lto_read_variable_formal_parameter_constant_DIE, lto_get_body): Removed. (preload_common_nodes): New function. (lto_read_decls): Convert for new global streamer. (lto_materialze_file_data, lto_read_subroutine_type_subprogram_die, lto_read_unspecified_parameters_DIE, lto_read_typedef_DIE, lto_read_pointer_reference_type_DIE, lto_read_subrange_type_DIE, lto_read_base_type_DIE, lto_read_const_volatile_restrict_type_DIE, lto_read_namespace_DIE, lto_read_unspecified_type_DIE, lto_read_DIE, lto_read_child_DIEs, lto_collect_child_DIEs): Removed. (lto_info_read, lto_set_cu_context): Removed. (lto_file_read): Convert for new global streamer. (lto_resolve_type_ref, lto_read_DIE_at_ptr, lto_resolve_var_ref, lto_resolve_fn_ref, lto_resolve_field_ref, lto_resolve_typedecl_ref, lto_resolve_namespacedecl_ref): Removed. (lto_file_init, lto_file_close): Moved to lto-elf.c. * lto-tree.h (lto_symtab_merge_var, lto_symtab_mergee_fun): Declare here. * lto-elf.c (lto_file_init, lto_file_close): Moved from lto.c. (lto_elf_file_open): Removed code to read DWARF debug sections. * lto.h (lto_context, DWARF2_attr, DWARF2_abbrev, DWARF2_CompUnit, lto_die_ptr, lto_die_cache_entry, lto_fd, lto_info_fd, lto_abbrev_fd): Removed. (lto_file): Removed debug_info and debug_abbrev fields. (lto_ref): Removed. (lto_file_init, lto_file_close, lto_resolve_type_ref, lto_resolve_var_ref, lto_resolve_fn_ref, lto_resolve_field_ref, lto_resolve_typedecl_ref, lto_resolve_namespacedecl_ref, lto_get_file_name): Removed declarations. (lto_symtab_merge_var, lto_symtab_merge_fn): Declarations moved to lto-tree.h. * lto-symtab.c (lto_compatible_attributes_p): Lobotomize this, as it barfs on "Hello, world!". * lto-section-out.c: Include lto-tree-out.h. (lto_hash_global_slot_node, lto_eq_global_slot_node, preload_common_nodes, write_global_stream, write_global_references): New functions. (produce_asm_for_decls): Convert for new global streamer. * lto-section-out.h (lto_hash_global_slot_node, lto_eq_global_slot_node): Declare. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136137 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-27 Merge from lto.Ollie Wild
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136056 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-27Initialized merge tracking via "svnmerge" with revisions "1-135750" from Ollie Wild
svn+ssh://aaw@gcc.gnu.org/svn/gcc/branches/lto git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@136055 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-22Create the lto-streamer branch.Ollie Wild
This branch is intended for stabilizing the conversion of DWARF encoding to the GIMPLE streamer format before merging back to the lto branch. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto-streamer@135751 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-202008-05-20 Rafael Espindola <espindola@google.com>Rafael Espindola
* ../configure: Regenerate with the correct autoconf version: 2.59. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135659 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-16 gcc/lto/Ollie Wild
* lto-lang.c (tree-inline.h): Include. (lto_post_options): New function. (LANG_HOOKS_POST_OPTIONS): Define. * lto-cgraph-in.c (overwrite_node): Set node->global.insns. * lto-function-in.c (input_bb): Set TREE_BLOCK (stmt). git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135447 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-16Mainline merge @135422.Diego Novillo
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135431 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-14Fix previous mergeRafael Espindola
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135314 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-142008-05-14 Rafael Espindola <espindola@google.com>Rafael Espindola
Mainline merge @135302 * configure.ac (ACX_PKGVERSION): Update revision merge string. * configure: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135309 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-132008-05-13 Diego Novillo <dnovillo@google.com>Diego Novillo
Mainline merge @135270 * configure.ac (ACX_PKGVERSION): Update revision merge string. * configure: Regenerate. gcc/lto/ChangeLog: 2008-05-13 Diego Novillo <dnovillo@google.com> * lto-function-in.c (input_ssa_names): Call make_ssa_name_fn instead of make_ssa_name. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135274 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-12Fix typo.Diego Novillo
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135226 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-12Fix revision string typo.Diego Novillo
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135225 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-122008-05-12 Diego Novillo <dnovillo@google.com>Diego Novillo
Mainline merge @136136 * configure.ac (ACX_PKGVERSION): Update revision merge string. * confiugre: Regenerate. 2008-05-12 Diego Novillo <dnovillo@google.com> * lto-tree-flags.def (STRUCT_FIELD_TAG): Remove. * treestruct.def (STRUCT_FIELD_TAG): Remove. Update all users. * lto-cgraph-out.c (output_node): Update references to inline summary fields. lto/ChangeLog: 2008-05-12 Diego Novillo <dnovillo@google.com> * lto-cgraph-in.c (overwrite_node): Update references to inline summary fields. * lto-function-in.c (input_expr_operand): Do not handle STRUCT_FIELD_TAG. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135224 138bc75d-0d04-0410-961f-82ee72b054a4
2008-05-09 gcc/lto/Ollie Wild
* lang.opt: New file. * lto-lang.c (lto_init_options): New function. (lto_handle_option): New function. (lto_init): Move initialization of flag_unit_at_a_time to lto_init_options. (LANG_HOOKS_INIT_OPTIONS): Define. (LANG_HOOKS_HANDLE_OPTION): Define. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@135127 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-29 gcc/Ollie Wild
* lto-tags.h (enum LTO_tags): Add LTO_namespace_decl. * lto-tree-tags.def (LTO_namespace_decl): New tag. * lto-section-out.c (lto_get_out_decl_state): Initialize out_state->namespace_decl_hash_table. (produce_asm_for_decls): Write assembly for namespace declarations. * lto-section-out.h (struct lto_out_decl_state): Add namespace_decl_hash_table, next_namespace_decl_index, and namespace_decls. * lto-section.h (struct lto_decl_header): Add num_namespace_decls. * lto-function-out.c (output_expr_operand): Add NAMESPACE_DECL case. (lto_static_init): Clear lto_flags_needed_for and lto_types_needed_for entries for NAMESPACE_DECL. (output_constructors_and_inits): Output initializer if DECL_CONTEXT (var) is not a FUNCTION_DECL. * dwarf2out.c (lto_namespacedecl_ref): New function. * dwarf2out.h (lto_namespacedecl_ref): New function. gcc/lto/ * lto.c (lto_read_namespace_DIE): New function. (lto_read_DIE): Add lto_read_namespace_DIE callback. Cache NAMESPACE_DECL DIE's. (lto_resolve_namespacedecl_ref): New function. * lto.h (lto_resolve_namespacedecl_ref): New function. * lto-section-in.c (lto_read_decls): Read namespace declarations. * lto-section-in.h (struct lto_file_decl_data): Add namespace_decls and num_namespace_decls. * lto-function-in.c (input_expr_operand): Add NAMESPACE_DECL case. * lto-lang.c (lto_init_ts): New function. (LANG_HOOKS_INIT_TS): Set as lto_init_ts. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@134803 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-242008-04-24 Kenneth Zadeck <zadeck@naturalbridge.com>Kenneth Zadeck
Merge with mainline @134626. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@134646 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-16 gcc/Ollie Wild
* lto-function-out.c (output_type_ref): Updated function description. gcc/lto/ * lto-function-in.c (input_type_ref): Updated function description. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@134365 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-16 gcc/Ollie Wild
* lto-function-out.c (output_type_ref_1): New function. (output_type_ref): Split into two functions. (output_function): Output an LTO_type record if DECL_CONTEXT (function) is a type. * lto-tags.h (LTO_tags): Add LTO_type enumerator. * lto-tree-tags.def (LTO_type): Add new name. gcc/lto/ * lto-function-in.c (input_type_ref_1): New function. (input_type_ref): Split into two functions. (input_function): Add support for type contexts. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@134363 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-16 gcc/lto/Ollie Wild
* lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute section name. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@134361 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-16 gcc/lto/Ollie Wild
* lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the list of supported languages. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@134360 138bc75d-0d04-0410-961f-82ee72b054a4
2008-04-04 gcc/cp/Ollie Wild
* class.c (layout_class_type): Rename c_build_bitfield_integer_type to make_bitfield_integer_type. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@133904 138bc75d-0d04-0410-961f-82ee72b054a4
2008-03-252008-03-25 Kenneth Zadeck <zadeck@naturalbridge.com>Kenneth Zadeck
Merge with mainline @133491. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@133528 138bc75d-0d04-0410-961f-82ee72b054a4
2008-03-052008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com>Kenneth Zadeck
Jan Hubicka <jh@suse.cz> * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of fd->unmaterialized_fndecls. (lto_get_file_name, lto_materialize_cgraph): New function. (lto_materialize_constructors_and_inits, lto_materialize_function): Read info directly from elf file. (lto_file_read): Made local and initialize dictionary so that other lto sections can be read without reprocessing the elf file. (lto_main): Read all functions after all files have been processed for their types, globals and cgraph. * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed dependencies. * lto-elf.c (lto_elf_file): Removed strtab, symtab fields. (hash_name, eq_name, lto_elf_build_section_table): New functions. (lto_elf_read_symtab): Removed function. (lto_elf_file_open): Removed call to lto_elf_read_symtab. * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls. (lto_file_read): Made local. (lto_get_file_name, lto_elf_build_section_table, lto_input_cgraph): New function. * lto-section-in.c (lto_read_section_data, lto_get_section_data): New functions. (lto_read_decls): Get the file name. * lto-cgraph-in.c: New file. * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag. (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names. (input_labels): Fixed latent sizeof issue. (input_function): Build stmt array to set call sites into cgraph edges. (lto_read_body): Reset cfun->curr_properties. * lto_section_in.h (lto_section_slot): New structure. (section_hash_table.lto_file_decl_data): New field. 2008-03-05 Kenneth Zadeck <zadeck@naturalbridge.com> Jan Hubicka <jh@suse.cz> * lto.c (lto_info_fd_init, lto_info_fd_close): Get rid of fd->unmaterialized_fndecls. (lto_get_file_name, lto_materialize_cgraph): New function. (lto_materialize_constructors_and_inits, lto_materialize_function): Read info directly from elf file. (lto_file_read): Made local and initialize dictionary so that other lto sections can be read without reprocessing the elf file. (lto_main): Read all functions after all files have been processed for their types, globals and cgraph. * Make-lang.in (lto.o, lto-cgraph-in.c, lto-section-in): Changed dependencies. * lto-elf.c (lto_elf_file): Removed strtab, symtab fields. (hash_name, eq_name, lto_elf_build_section_table): New functions. (lto_elf_read_symtab): Removed function. (lto_elf_file_open): Removed call to lto_elf_read_symtab. * lto.h (lto_info_fd_struct): Removed unmaterialized_fndecls. (lto_file_read): Made local. (lto_get_file_name, lto_elf_build_section_table, lto_input_cgraph): New function. * lto-section-in.c (lto_read_section_data, lto_get_section_data): New functions. (lto_read_decls): Get the file name. * lto-cgraph-in.c: New file. * lto-function-in.c (tag_to_expr): Stops at LTO_tree_last_tag. (input_expr_operand, lto_read_body): Set lto_debug_context.tag_names. (input_labels): Fixed latent sizeof issue. (input_function): Build stmt array to set call sites into cgraph edges. (lto_read_body): Reset cfun->curr_properties. * lto_section_in.h (lto_section_slot): New structure. (section_hash_table.lto_file_decl_data): New field. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@132954 138bc75d-0d04-0410-961f-82ee72b054a4
2008-02-102008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com>Kenneth Zadeck
* lto.c (lto_read_variable_formal_parameter_const): Remove code to reconstruct static initializers. (lto_get_body, lto_materialize_function): Add lto_section_type as a parameter. (lto_materialize_constructors_and_inits, lto_materialize_file_data): New function. (lto_materialize_function, lto_read_subroutine_type_subprogram_DIE): Renamed unmap_fn_body to unmap_section and map_fn_body to map_section. (lto_set_cu_context): Process functions and static inits differently. * Make-lang.in (LTO_H, lto/lto-function-in.o, lto/lto-section-in.o): Update dependencies. * lto/lto-elf.c (lto_elf_map_optional_lto_section): Add lto_section_type parameter. (lto_elf_unmap_fn_body): Renamed to lto_elf_unmap_section. * lto.h (lto_file_vtable_struct): Removed two of the fields and renamed the other two so that there is only one map function and one unmap function and each takes a section type parameter. (lto_read_function_body): Renamed to lto_input_function_body and added file_data parameter. (lto_read_var_init): Removed. (lto_input_constructors_and_inits): New function. * lto-section-in.c (lto_read_decls): New function. * lto-function-in.c (data_in): Moved fields field_decls, fn_decls, var_decls, type_decls, types to lto_file_decl_data. (input_type_ref, input_expr_operand, lto_read_body): Get field_decls, fn_decls, var_decls, type_decls, types from different structure. (input_globals, input_constructor, lto_read_var_init): Removed. (input_constructors_or_inits): New function. (lto_read_function_body, lto_input_constructors_and_inits): Renamed to lto_input_function_body and takes file_data parameter. * lto-section-in.h (lto_file_decl_data): New structure. 2008-02-09 Kenneth Zadeck <zadeck@naturalbridge.com> * tree-pass.h: (pass_ipa_lto_out): Renamed to pass_ipa_lto_gimple_out. (pass_ipa_lto_finish_out): New pass. * lto-function-out.c (decl_slot, hash_decl_slot_node, eq_decl_slot_node, hash_type_slot_node, eq_type_slot_node, output_decl_index): Moved to lto-section-out.c, made public and and renamed to have "lto_" prefix. (eq_label_slot_node, hash_label_slot_node): Uses lto_decl_slot rather than decl_slot. (output_block): Deleted these fields: field_decl_hash_table, next_field_decl_index, field_decls, fn_decl_hash_table, next_fn_decl_index, fn_decls, var_decl_hash_table, next_var_decl_index, var_decls, type_decl_hash_table, next_type_decl_index, type_decls, type_hash_table, next_type_index, types. Added cgraph_node and current_stmt_id. (create_output_block): Now takes lto_section_type. Removed code to init hash tables moved to lto_section_out.c. (destroy_output_block): Removed is_function parameter. Removed code to destroy tables moved to lto_section_out.c (output_type_ref, output_local_decl_ref, output_label_ref, output_expr_operand): Modified to call functions moved to lto_section_out. (output_bb): Properly set current_stmt_id. (write_references): Moved to lto_section_out.c. (produce_asm): tripped of all of the function that was moved to lto_section_out.c. (output_constructor_or_init): Renamed output_constructors_and_inits and writes all initializers in a single section rather than one per section. (lto_output): Moved loop over all constructors to output_constructors_and_inits. (gate_lto_out): Moved to lto-section-out.c. * tree-ssa-sccvn.c (init_scc_vn): Removed unused bb var. * lto-header.h (lto_section_type): Changed prefix of all elements to "LTO_section". (lto_get_section_name): New function. (lto_get_section): Move from lto-section.h. (LTO_STREAM_DEBUGGING, LTO_DEBUG_INDENT, LTO_DEBUG_INDENT_TOKEN, LTO_DEBUG_INTEGER, LTO_DEBUG_STRING, LTO_DEBUG_TOKEN, LTO_DEBUG_TREE_FLAGS, LTO_DEBUG_UNDENT, LTO_DEBUG_WIDE, lto_debug_context, lto_debug_out): Moved from lto-tags.h. * lto-section.h: New file. * lto-tags.h (lto_function_header): Moved fields num_field_decls, num_fn_decls, num_var_decls, num_type_decls, num_types. to lto_decl_header in lto-section.h. (LTO_STREAM_DEBUGGING, LTO_DEBUG_INDENT, LTO_DEBUG_INDENT_TOKEN, LTO_DEBUG_INTEGER, LTO_DEBUG_STRING, LTO_DEBUG_TOKEN, LTO_DEBUG_TREE_FLAGS, LTO_DEBUG_UNDENT, LTO_DEBUG_WIDE, lto_debug_context, lto_debug_out): Moved to lto-tags.h. * lto-stream-debug.c: Include lto-header.h. * Makefile.in (LTO_TAGS_H, lto-stream-debug.o, lto-function-out.o, lto-section-out.o): Updated dependencies. (LTO_SECTION_H): New. * passes.c: (pass_ipa_lto_out): Renamed to pass_ipa_lto_gimple_out. (pass_ipa_lto_finish_out): New pass. * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node, lto_hash_type_slot_node, lto_eq_type_slot_node, lto_output_decl_index): Moved from lto-function-out.c and renamed with "lto_" prefix. (lto_get_section_name, lto_get_out_decl_state, produce_asm_for_decls): New function. (write_references, gate_lto_out): Moved from lto-function-out.c. * lto-section-out.h (lto_out_decl_state): New structure. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@132210 138bc75d-0d04-0410-961f-82ee72b054a4
2008-01-282008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com>Kenneth Zadeck
* lto-function-in.c (input_globals.c): Changed input type to lto_function_header. (input_bb): Removed code to deserialize the stmt number. (input_function): Renumber all stmts after they are input. (lto_read_body, lto_read_function_body, lto_read_var_init): Changed to used new header format and enum section_type. *lto-lang.c (success): Removed. 2008-01-28 Kenneth Zadeck <zadeck@naturalbridge.com> * cgraph.h (cgraph_edge.lto_stmt_uid): New field. * lto-function-out.c (output_constructor, output_expr_operand, output_phi, output_bb, output_function): Removal of code to thread the stmt_number thru the code. (produce_asm): Moved code to create dwarf_sections to lto_section_out.c. Encapsulated section type independent code into separate header structure. Changed to use enum section_type. (output_function, output_constructor_or_init): Added call to renumber_gimple_stmt_uids and to pass section type to produce_asm. (lto_output): Pass cgraph node rather than decl to output_function. * tree-ssa-dse (max_stmt_uid): Removed. (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, tree_ssa_dse): Encapsulate all uses of stmt_ann->uid. * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto. * lto-header.h: New * function.h (cfun.last_stmt_uid): New field. * lto-tags.h (lto_header): Renamed to lto_function_header and moved shared fields to lto_header in lto-header.h. (LTO_SECTION_NAME_PREFIX): Moved to lto-header.h. * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid, gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid): New functions. * tree-dfa.c (renumber_gimple_stmt_uids): New function. (create_stmt_ann): Initialize the ann->uid field. * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid with new calls. * tree-flow.h (renumber_gimple_stmt_uids): New function. * lto-section-out.c (lto_get_section): New function. * lto-section-out.h (lto_get_section): New function. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131922 138bc75d-0d04-0410-961f-82ee72b054a4
2008-01-28 * lto-elf.c (lto_elf_lookup_sym): Remove unused function.Nathan Froyd
(lto_elf_free_sym): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131918 138bc75d-0d04-0410-961f-82ee72b054a4
2008-01-28 * lto-elf.c (lto_elf_read_var_init): Remove unused function.Nathan Froyd
(lto_elf_build_init): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131917 138bc75d-0d04-0410-961f-82ee72b054a4
2008-01-14forgot to save back changelog.Kenneth Zadeck
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131527 138bc75d-0d04-0410-961f-82ee72b054a4
2008-01-142008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com>Kenneth Zadeck
* lto-read.c: Renamed to lto-function-in.c. (input_1_unsigned): Moved to lto-section-in.c and renamed lto_input_1_unsigned. (input_uleb128): Moved to lto-section-in.c and renamed lto_input_uleb128. (input_widest_uint_uleb128): Moved to lto-section-in.c and renamed lto_input_widest_uint_uleb128. (input_sleb128): Moved to lto-section-in.c and renamed lto_input_sleb128. (input_integer): Moved to lto-section-in.c and renamed lto_input_integer. (debug_in_fun): Moved to lto-section-in.c and renamed lto_debug_in_fun. (input_block): Moved to lto-section-in.h and renamed lto_input_block. (input_expr_operand): Fixed to allow lists with more than one element. * lto-section-in.h: New file. * lto-section-in.c: New file with changes from above. * Make-lang.in (lto-read.o): Renamed lto-function-in.c. (lto-section-in.o): New rule. 2008-01-14 Kenneth Zadeck <zadeck@naturalbridge.com> * lto-function-out (lto_debug_context, output_stream, LTO_SET_DEBUGGING_STREAM): Moved to lto_section_out.h. (debug_out_fun): Renamed lto_debug_out_fun and moved to lto_section_out.c. (write_stream): Renamed lto_write_stream and moved to lto_section_out.c. (output_1_stream): Renamed lto_output_1_stream and moved to lto_section_out.c. (output_uleb128_stream): Renamed lto_output_uleb128 and moved to lto_section_out.c. (output_widest_uint_uleb128_stream): Renamed lto_output_widest_uint_uleb128_stream and moved to lto_section_out.c. (output_sleb128_stream): Renamed lto_output_sleb128_stream and moved to lto_section_out.c. (output_string, output_decl_index, output_record_start, output_constructor, output_expr_operand, output_local_vars, output_local_vars_index, output_ssa_names, output_bb, produce_asm, output_function, output_constructor_or_init): Renamed all calls as above. (output_integer): Guts moved to lto_output_integer_stream. (output_expr_operand, output_local_var, output_cfg, output_phi, output_bb, output_function): Added stmt_num parameter. * lto-tags.h (lto_debug_context): Added. * lto-section-out.c: New file that contains functions moved and renamed from lto-function-out. * lto-section-out.h: New file that contains declarations in lto-section-out.c. * Makefile.in (lto-section-out.o): New rule. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131526 138bc75d-0d04-0410-961f-82ee72b054a4
2008-01-07 http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00263.htmlDiego Novillo
* dwarf2out.c (force_decl_die): Initialize SAVED_IGNORED_FLAG. * dwarf2.h (enum dwarf_type): Remove trailing comma. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131387 138bc75d-0d04-0410-961f-82ee72b054a4
2007-12-30 * lto-read.c (input_expr_operand): Mark static and externalNathan Froyd
VAR_DECLs as needed. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131229 138bc75d-0d04-0410-961f-82ee72b054a4
2007-12-29 * lto-read.c (input_integer): Use the correct shift amount.Nathan Froyd
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131223 138bc75d-0d04-0410-961f-82ee72b054a4
2007-12-29 * collect2.c (scan_prog_file): Read all the output when readingNathan Froyd
information for LTO. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131222 138bc75d-0d04-0410-961f-82ee72b054a4
2007-12-29 * lto-lang.c (lto_pushdecl): Do nothing instead of aborting.Nathan Froyd
(LANG_HOOKS_NAME): Define. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/lto@131221 138bc75d-0d04-0410-961f-82ee72b054a4