2015-12-04  Release Manager

	* GCC 5.3.0 released.

2015-07-16  Release Manager

	* GCC 5.2.0 released.

2015-04-22  Release Manager

	* GCC 5.1.0 released.

2015-03-27  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (lto_read_decls): Move code registering odr types out
	of TYPE_CANONICAL conditional and also register polymorphic types.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_symtab_merge_decls_2): Silence warning on
	DECL_ARTIFICAL symbols.

2015-03-26  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65536
	* lto.c (unify_scc): Revert location cache when unification
	suceeded.
	(lto_read_decls): Accept location cache after sucess;
	apply location cache before calling debug hooks.

2015-03-10  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (read_cgraph_and_symbols): Do not do merging
	at ltrans stage.

2015-02-26  Jakub Jelinek  <jakub@redhat.com>

	* lto.c (lto_mode_identity_table): New variable.
	(lto_read_decls): Add mode_table argument to the lto_input_block
	constructor.
	(lto_file_finalize): Initialize mode_table.
	(lto_init): Initialize lto_mode_identity_table.

2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>

	PR libgomp/64625
	* lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
	Remove macros.
	(DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.

2015-02-03  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Maintain merged flag.

2015-01-30  Joseph Myers  <joseph@codesourcery.com>

	* lto-object.c, lto-symtab.c, lto.c: All callers of fatal_error
	changed to pass input_location as first argument.

2014-12-11  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_varpool_replace_node): Merge TLS models.

2014-12-11  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (compare_tree_sccs_1): Add comparsion of
	DECL_FUNCTION_SPECIFIC_TARGET

2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
	    James Norris  <jnorris@codesourcery.com>

	* lto-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
	New macros.
	* lto.c: Include "gomp-constants.h".

2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>

	* lto-partition.c (lto_promote_cross_file_statics): Remove argument
	from select_what_to_stream.

2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/64412
	* lto.c (read_cgraph_and_symbols): Set lto_stream_offload_p
	if ACCEL_COMPILER.

2015-01-09  Michael Collison  <michael.collison@linaro.org>

	* lto.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
	input.h, alias.h, symtab.h, options, fold-const.h,
	wide-int.h, and inchash.h due to flattening of tree.h.
	* lto-lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
	input.h, alias.h, symtab.h, fold-const.h,
	wide-int.h, and inchash.h due to flattening of tree.h.
	* lto-object.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
	input.h, alias.h, symtab.h, options, fold-const.h,
	wide-int.h, and inchash.h due to flattening of tree.h.
	* lto-partition.c: Ditto.
	* lto-symtab.c: Ditto.

2015-01-05  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2014-12-22  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): New inline_summaries
	is used.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.

2014-12-22  Martin Liska  <mliska@suse.cz>

	* lto-partition.c: Include of symbol-summary.h is added.
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2014-12-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61324
	* lto.c (read_cgraph_and_symbols): Update call of
	remove_unreachable_nodes.
	(do_whole_program_analysis): Remove call of
	symtab->remove_unreachable_nodes

2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
	htab with malloc instead of ggc.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c: Replace htab with hash_table.

2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c (lto_read_in_decl_state): Adjust.
	(lto_fixup_state): Likewise.

2014-11-17  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (lto_read_decls): Do not rebuild DECL_FUNCTION_SPECIFIC_TARGET.

2014-11-14  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.

2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
	    Bernd Schmidt  <bernds@codesourcery.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Michael Zolotukhin  <michael.v.zolotukhin@intel.com>

	* lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.

2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
	    Ilya Tocar  <ilya.tocar@intel.com>
	    Andrey Turetskiy  <andrey.turetskiy@intel.com>
	    Bernd Schmidt  <bernds@codesourcery.com>

	* lto-object.c (lto_obj_add_section): Use section_name_prefix instead of
	LTO_SECTION_NAME_PREFIX.
	* lto-partition.c (lto_promote_cross_file_statics): Call
	select_what_to_stream.
	* lto.c (lto_section_with_id): Use section_name_prefix instead of
	LTO_SECTION_NAME_PREFIX.
	(read_cgraph_and_symbols): Read OFFLOAD_SECTION_NAME_PREFIX sections, if
	being built as an offload compiler.

2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>

	* lto-lang.c: Remove redundant enum from machine_mode.

2014-10-28  Andrew MacLeod  <amacleod@redhat.com>

	* lto.c: Adjust include files.
	* lto-lang.c: Ditto.
	* lto-object.c: Ditto.
	* lto-partition.c: Ditto.
	* lto-symtab.c: Ditto.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Adjust include files.
	* lto-object.c: Ditto.
	* lto-partition.c: Ditto.
	* lto-symtab.c: Ditto.
	* lto.c: Ditto.

2014-10-16  DJ Delorie  <dj@redhat.com>

	* lto-object.c (lto_obj_begin_section): In the event that pointer
	sizes aren't powers of two, choose a more suitable alignment
	than (unsigned)(-1).

2014-10-14  DJ Delorie  <dj@redhat.com>

	* lto-lang.c (lto_build_c_type_nodes): Check intN types for
	size-type as well.
	(lto_init): Initialize all intN types, not just int128.

2014-10-06  Martin Liska  <mliska@suse.cz>

	* lto.c (stream_out): ARG_UNUSED added for last argument.

2014-09-24  Aldy Hernandez  <aldyh@redhat.com>

	* lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
	DECL_ABSTRACT_P.

2014-09-23  Andi Kleen  <ak@linux.intel.com>

	* lto-partition.c (node_cmp): Update comment.
	(varpool_node_cmp): Use symtab_node for comparison.
	(add_sorted_nodes): New function.
	(lto_balanced_map): Change to keep ordered queue
	of ordered node. Handle no_reorder attribute.

2014-09-11  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (lto_read_decls): Register ODR types.

2014-08-20  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (read_cgraph_and_symbols): Fix symtab_remove_unreachable_nodes
	call.
	(do_whole_program_analysis): Only sanity check that IPA passes cleans up.

2014-08-14  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_varpool_replace_node): Call compare_virtual_tables.

2014-08-14  Richard Biener  <rguenther@suse.de>

	PR lto/62067
	* lto-lang.c (def_fn_type): Fix error handling wrt va_end.

2014-08-08  Richard Biener  <rguenther@suse.de>

	* lto.c (lto_read_decls): Adjust for lto_input_block changes.

2014-08-08  Bin Cheng  <bin.cheng@arm.com>

	PR lto/62032
	* lto-lang.c (lto_init): Switch mis-matched arguments.

2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>

	* lto-partition.c, lto.c: Use hash_map instead of pointer_map.

2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>

	* lto-partition.c, lto-partition.h: Use hash_set instead of
	pointer_set.

2014-07-31  Andi Kleen  <ak@linux.intel.com>

	* lto.c (hash_canonical_type): Use inchash::hash
	and use inchash::add_expr.
	(iterative_hash_canonical_type): Dito.

2014-07-30  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (lto_write_data): New function.
	* langhooks.c (lhd_append_data): Do not free block.
	* lto-section-out.c (lto_write_data): New function writing
	raw data to the current section.
	(lto_write_stream): Adjust for langhook semantic change.
	(lto_destroy_simple_output_block): Write header directly.
	* lto-opts.c (lto_write_options): Write options directly.
	* lto-streamer-out.c (produce_asm): Write heaeder directly.
	(lto_output_toplevel_asms): Likewise.
	(copy_function_or_variable): Copy data directly.
	(write_global_references): Output index table directly.
	(lto_output_decl_state_refs): Likewise.
	(write_symbol): Write data directly.
	(produce_symtab): Adjust.
	(produce_asm_for_decls): Output header and refs directly.

2014-07-25  Andi Kleen  <ak@linux.intel.com>

	* lto.c (hash_canonical_type): Call iterative_hstate_expr.

2014-07-25  Andi Kleen  <ak@linux.intel.com>

	* lto.c (hash_canonical_type): Convert to inchash.
	(iterative_hash_canonical_type): Dito.

2014-07-25  Andi Kleen  <ak@linux.intel.com>

	* lto.c: Include inchash.h

2014-07-14  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (mentions_vars_p_decl_non_common): Skip
	DECL_ARGUMENT_FLD.
	mentions_vars_p_function): Do DECL_ARGUMENTS.
	(lto_fixup_prevailing_decls): Update.

2014-07-12  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (read_cgraph_and_symbols): Do not push DECL_INIT_IO
	timevar
	(materialize_cgraph): Do not push GIMPLE_IN timevar.

2014-07-11  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (add_references_to_partition): Use 
	varpool_ctor_useable_for_folding_p.
	* lto.c (lto_read_in_decl_state): Update sanity check.

2014-07-01  Martin Liska  <mliska@suse.cz>

	IPA REF alias refactoring
	* lto-partition.c (add_symbol_to_partition_1): Usage of
	FOR_EACH_ALIAS added.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	Revert:
	* lto.c (lto_copy_fields_not_streamed): New function.
	(compare_tree_sccs_1): Do not compare fields shared in between type
	and variant.
	(lto_read_decls): Fixup types first before inserting into hash.

2014-06-28  Andrew Pinski  <apinski@cavium.com>

	* lto.c (lto_read_decls): Fix comment in comment.

2014-06-28  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (lto_copy_fields_not_streamed): New function.
	(compare_tree_sccs_1): Do not compare fields shared in between type
	and variant.
	(lto_read_decls): Fixup types first before inserting into hash.

2014-06-25  Martin Liska  <mliska@suse.cz>

	* lto/lto-partition.c (add_references_to_partition): New IPA REF function
	used.
	(add_symbol_to_partition_1): Likewise.
	(lto_balanced_map): Likewise.
	* lto/lto-symtab.c (lto_cgraph_replace_node): Likewise.

2014-06-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (mentions_vars_p_decl_non_common): Move DECL_VINDEX check to ..
	(mentions_vars_p_function): ... here.
	(compare_tree_sccs_1): Update VINDEX checks.
	(lto_fixup_prevailing_decls): Likewise.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c (canonical_type_hash_cache): Use hash_map instead of
	pointer_map.

2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c: Adjust.

2014-06-20  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.

2014-06-20  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (compare_tree_sccs_1): Do not compare priorities.

2014-06-15  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL.

2014-06-10  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (read_cgraph_and_symbols): Remove unreachable symbols.
	(do_whole_program_analysis): Use verify_symtab.

2014-06-07  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (mentions_vars_p_decl_with_vis, compare_tree_sccs_1,
	lto_fixup_prevailing_decls): Skip section names.

2014-06-02  Andrew MacLeod  <amacleod@redhat.com>

	* lto-symtab.c: Include builtins.h.

2014-05-26  Richard Biener  <rguenther@suse.de>

	* lto.c (lto_parse_hex): Use int64_t.
	(lto_resolution_read): Likewise.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (read_cgraph_and_symbols): Grow ggc memory after streaming.

2014-05-23  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_symtab_merge_symbols): Update code setting
	symtab pointer.
	* lto.c (compare_tree_sccs_1): Do not compare comdat groups.

2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>

	* lto-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
	(DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
	(DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.

2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>

	* lto-object.c: Include "lto-section-names.h".
	(LTO_SEGMENT_NAME): Don't define.
	* lto.c: Include "lto-section-names.h".

2014-05-17  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/61012
	* lto-symtab.c (lto_symtab_merge_decls_1): Do not ICE on undefined externals
	mixed with variables.

2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>

	* lto-tree.h: Don't use variable_size gty attribute.
	* lto.c (lto_read_in_decl_state): Adjust.
	(create_subid_section_table): Likewise.
	(lto_flatten_files): Likewise.
	(read_cgraph_and_symbols): Likewise.

2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
	    Mike Stump  <mikestump@comcast.net>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* lto.c (compare_tree_sccs_1): Use wide-int interfaces.
	* lto-lang.c (get_nonnull_operand): Likewise.

2014-04-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/60092
	* lto-lang.c: Define flag_isoc11.

2014-04-23  David Malcolm  <dmalcolm@redhat.com>

	* lto-partition.c (add_references_to_partition): Update for
	removal of implicit pointer from the is-a.h API.
	(add_symbol_to_partition_1): Likewise.
	(contained_in_symbol): Likewise.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.
	(promote_symbol): Likewise.
	* lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
	(lto_symtab_merge_symbols): Likewise.
	* lto.c (lto_wpa_write_files): Likewise.

2014-04-15  Richard Biener  <rguenther@suse.de>

	* lto.c: Include params.h.
	(do_whole_program_analysis): Switch on flag_lto_partition value,
	add support for LTO_PARTITION_ONE.
	* lto-partition.h (lto_balanced_map): Adjust.
	* lto-partition.c (lto_balanced_map): Get number of desired
	partitions as argument to support -flto-partition=one.

2014-04-14  Jan Hubicka  <hubicka@ucw.cz>

	* lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
	tp_first_run.

2014-03-19  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c: Include ipa-inline.h
	(do_whole_program_analysis): Free inline summary after partitioning.

2014-03-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/60553
	* lto-tree.h (lang_tree_node): For types use TYPE_NEXT_VARIANT 
	instead of TREE_CHAIN as chain_next.

2014-03-19  Richard Biener  <rguenther@suse.de>

	* lto.c (lto_wpa_write_files): Move call to
	lto_promote_cross_file_statics ...
	(do_whole_program_analysis): ... here, into the partitioning
	block.  Do not ggc_collect after lto_wpa_write_files but
	for a last time before it.

2014-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR lto/60571
	* lto.c (wait_for_child): Define WCONTINUED if not defined to 0.
	Fix formatting.

2014-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/60535
	* lto-lang.c (lto_init): Add NAME_TYPE for int128_integer_type_node
	and complex_{float,{,long_}double}_type_node.

2014-03-08  Paulo Matos  <paulo@matos-sorge.com>

	* lto-lang.c (lto_init): Pass flag_short_double to
	build_common_tree_nodes.

2014-02-14  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/60295
	* lto.c (stream_out): Avoid parallel streaming with
	-flto=jobserver until we are able to throttle it down
	resonably.

2014-02-14  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (add_symbol_to_partition_1,
	undo_partition, lto_balanced_map): Aliases have no
	defined size.
	(lto_balanced_map): Do not follow refering variables
	if they can be optimized out.

2014-02-14  Richard Biener  <rguenther@suse.de>

	PR lto/60179
	* lto.c (compare_tree_sccs_1): Do not compare
	DECL_FUNCTION_SPECIFIC_TARGET.
	(lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.

2014-02-12  Richard Biener  <rguenther@suse.de>

	PR lto/60060
	* lto-lang.c (lto_write_globals): Do not call
	wrapup_global_declarations or emit_debug_global_declarations
	but emit debug info for non-function scope variables
	directly.

2014-02-06  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (unify_scc): Free CONSTRUCTOR_ELTS.

2014-02-06  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/59469
	* lto-partition.c (symbol_class): Move to cgraph.h
	(get_symbol_class): Move to symtab.c
	(add_references_to_partition, add_symbol_to_partition_1,
	lto_max_map, lto_1_to_1_map, lto_balanced_map,
	lto_promote_cross_file_statics): Update.

2014-02-05  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (lto_parallelism): New static var.
	(do_stream_out, wait_for_child, stream_out): New static functions.
	(lto_wpa_write_files): Add support for parallel streaming.
	(do_whole_program_analysis): Set parallelism.
	* lang.opt (fwpa): Add parameter.
	* lto-lang.c (lto_handle_option): Handle flag_wpa.
	(lto_init): Update use of flag_wpa.
	* lto-streamer.h (asm_nodes_output): Declare.

2014-02-05  Richard Biener  <rguenther@suse.de>

	* lto.h (lto_global_var_decls): Remove.
	* lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
	(lto_write_globals): Do nothing in WPA stage, gather globals from
	the varpool here ...
	* lto.c (lto_main): ... not here.
	(materialize_cgraph): Do not call rest_of_decl_compilation
	on the empty lto_global_var_decls vector.
	(lto_global_var_decls): Remove.

2014-02-04  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY 
	needs duplicating, not generic COMDAT.

2014-02-04  Richard Biener  <rguenther@suse.de>

	PR lto/59723
	* lto.c (mentions_vars_p): Handle NAMELIST_DECL.
	(lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.

2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
	    Markus Trippelsdorf

	PR ipa/59469
	* lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
	merge force_output and forced_by_abi flags.

2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
	flag_cilkplus.

2014-01-09  Richard Biener  <rguenther@suse.de>

	* lto.c (gimple_canonical_types_compatible_p): Fix comment.

2014-01-09  Richard Biener  <rguenther@suse.de>

	PR lto/45586
	* lto.c (hash_canonical_type): Do not hash TREE_ADDRESSABLE,
	TYPE_ALIGN, TYPE_RESTRICT or TYPE_REF_CAN_ALIAS_ALL.
	(gimple_canonical_types_compatible_p): Do not compare them either.

2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>

	Update copyright years

2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>

	* lto.c: Remove struct tags when referring to class varpool_node.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.

2013-11-29  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenther@suse.de>

	PR lto/59326
	* lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.

2013-11-29  Jakub Jelinek  <jakub@redhat.com>

	PR lto/59326
	* lto.c (mentions_vars_p_omp_clause): New function.
	(mentions_vars_p): Call it for OMP_CLAUSE.  Remove break;
	after return stmts.

2013-11-22  Andrew MacLeod  <amacleod@redhat.com>

	* lto.c: Add required include files from gimple.h.
	* lto-lang.c: Likewise
	* lto-object.c: Likewise
	* lto-partition.c: Likewise
	* lto-symtab.c: Likewise

2013-11-18  Trevor Saunders  <tsaunders@mozilla.com>

	* lto-partition.c lto-symtab.c lto.c Adjust.

2013-11-14  Diego Novillo  <dnovillo@google.com>

	* 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  <dmalcolm@redhat.com>

	Automated part of renaming of symtab_node_base to symtab_node.

	Patch autogenerated by rename_symtab.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 58bb219cc090b2f4516a9297d868c245495ee622

	* lto-partition.c (add_symbol_to_partition): Rename
	symtab_node_base to symtab_node.
	(get_symbol_class): Likewise.
	(symbol_partitioned_p): Likewise.
	(add_references_to_partition): Likewise.
	(add_symbol_to_partition_1): Likewise.
	(contained_in_symbol): Likewise.
	(add_symbol_to_partition): Likewise.
	(lto_1_to_1_map): Likewise.
	(lto_max_map): Likewise.
	(lto_balanced_map): Likewise.
	(privatize_symbol_name): Likewise.
	(promote_symbol): Likewise.
	(may_need_named_section_p): Likewise.
	(rename_statics): Likewise.
	(lto_promote_statics_nonwpa): Likewise.
	* lto-symtab.c (lto_symtab_merge): Likewise.
	(lto_symtab_resolve_replaceable_p): Likewise.
	(lto_symtab_symbol_p): Likewise.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_resolve_symbols): Likewise.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	(lto_symtab_merge_decls): Likewise.
	(lto_symtab_merge_symbols_1): Likewise.
	(lto_symtab_merge_symbols): Likewise.
	(lto_symtab_prevailing_decl): Likewise.
	* lto.c (lto_wpa_write_files): Likewise.
	(read_cgraph_and_symbols): Likewise.
	(do_whole_program_analysis): Likewise.

2013-10-30  David Malcolm  <dmalcolm@redhat.com>

	* lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
	declarations onto multiple lines to make things easier for
	rename_symtab.py.
	(lto_symtab_merge_decls_1): Likewise.
	(lto_symtab_merge_symbols_1): Likewise.

2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
	* lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
	Plus is enabled.

2013-10-29  David Malcolm  <dmalcolm@redhat.com>

	Patch autogenerated by refactor_symtab.py from
	https://github.com/davidmalcolm/gcc-refactoring-scripts
	revision 58bb219cc090b2f4516a9297d868c245495ee622

	* lto-partition.c (lto_promote_cross_file_statics): Update for
	conversion of symtab types to a true class hierarchy.
	(rename_statics): Likewise.
	(promote_symbol): Likewise.
	(privatize_symbol_name): Likewise.
	(lto_balanced_map): Likewise.
	(varpool_node_cmp): Likewise.
	(node_cmp): Likewise.
	(lto_1_to_1_map): Likewise.
	(undo_partition): Likewise.
	(add_symbol_to_partition): Likewise.
	(contained_in_symbol): Likewise.
	(add_symbol_to_partition_1): Likewise.
	(add_references_to_partition): Likewise.
	(symbol_partitioned_p): Likewise.
	(get_symbol_class): Likewise.
	(lto_max_map): Likewise.
	* lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
	(lto_symtab_merge_symbols): Likewise.
	(lto_symtab_merge_symbols_1): Likewise.
	(lto_symtab_merge_decls): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	(lto_symtab_merge_decls_2): Likewise.
	(lto_symtab_resolve_symbols): Likewise.
	(lto_symtab_resolve_can_prevail_p): Likewise.
	(lto_symtab_symbol_p): Likewise.
	(lto_symtab_resolve_replaceable_p): Likewise.
	(lto_symtab_merge): Likewise.
	(lto_varpool_replace_node): Likewise.
	(lto_cgraph_replace_node): Likewise.
	* lto.c (lto_main): Likewise.
	(do_whole_program_analysis): Likewise.
	(materialize_cgraph): Likewise.
	(read_cgraph_and_symbols): Likewise.
	(cmp_partitions_order): Likewise.
	(lto_materialize_function): Likewise.
	(has_analyzed_clone_p): Likewise.

2013-10-29  Andrew MacLeod  <amacleod@redhat.com>

	* lto/lto-object.c: Add gimple.h to include list.
	* lto/lto-partition.c: Likewise.

2013-10-18  Andrew MacLeod  <amacleod@redhat.com>

	* lto.c: Remove tree-flow.h from include list.

2013-10-15  Richard Biener  <rguenther@suse.de>

	* lto.c (hash_canonical_type): Split out from ...
	(iterative_hash_canonical_type): ... here.  Register types
	we recurse to.
	(gimple_canonical_type_hash): Adjust.
	(gimple_register_canonical_type_1): Split out from ...
	(gimple_register_canonical_type): ... here.  Cache computed
	hash value.
	(lto_register_canonical_types): Split into two modes,
	clearing and computing TYPE_CANONICAL.
	(lto_read_decls): Adjust.
	(read_cgraph_and_symbols): Do two passes over global trees,
	first clearing then computing TYPE_CANONICAL.

2013-10-14  Richard Biener  <rguenther@suse.de>

	* lto.c (gimple_canonical_types): Move out-of GC space.
	(canonical_type_hash_cache): Make a pointer-map.
	(num_canonical_type_hash_entries, num_canonical_type_hash_queries):
	New counters.
	(iterative_hash_canonical_type): Adjust.
	(read_cgraph_and_symbols): Likewise.
	(print_lto_report_1): Likewise.

2013-10-14  Richard Biener  <rguenther@suse.de>

	* lto.c (gimple_types, type_hash_cache, struct type_pair_d,
	type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
	gtc_next_dfs_num, compare_type_names_p, gtc_visit,
	gimple_types_compatible_p_1, gimple_types_compatible_p,
	visit, iterative_hash_name, struct type_hash_pair,
	type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
	gimple_type_eq, gimple_register_type, num_not_merged_types,
	num_not_merged_types_in_same_scc, num_not_merged_types_trees,
	num_not_merged_types_in_same_scc_trees): Remove old merging code
	and statistics.
	(lto_read_decls): Do not run old merging code in parallel.
	(read_cgraph_and_symbols): Do not init/free old merging
	data structures.
	(print_lto_report_1): Do not report differences of old vs. new
	merging code.

2013-10-14  Richard Biener  <rguenther@suse.de>

	* lto-lang.c (lto_init): Do not re-init canonical types here.
	(lto_register_canonical_types): Move to ...
	* lto.c (lto_register_canonical_types): ... here.
	(gimple_canonical_types, canonical_type_hash_cache,
	iterative_hash_canonical_type, gimple_canonical_type_hash,
	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
	gimple_register_canonical_type): Add canonical type merging machinery
	moved from gimple.c.
	(read_cgraph_and_symbols): Init and free canonical type tables
	here.
	(print_lto_report_1): Report canonical type table stats here.

2013-10-11  Jakub Jelinek  <jakub@redhat.com>

	* lto-lang.c (DEF_FUNCTION_TYPE_8): Define.

2013-09-25  Tom Tromey  <tromey@redhat.com>

	* Make-lang.in (LTO_H, LINKER_PLUGIN_API_H, LTO_TREE_H)
	(lto/lto-lang.o, lto/lto.o, lto/lto-partition.o)
	(lto/lto-object.o): Remove.

2013-09-06  Richard Biener  <rguenther@suse.de>

	* lto-symtab.c: Move from gcc/
	* lto.h: Include vec.h.
	(lto_global_var_decls): Declare.
	* lto.c (lto_global_var_decls): Move definition here.
	* Make-lang.in (LTO_OBJS): Add lto-symtab.o.
	(lto-symtab.o): Add.
	* config-lang.in (gtfiles): Add lto.h.

2013-08-31  Jan Hubicka  <jh@suse.cz>

	* lto.c (mentions_vars_p_field_decl, lto_fixup_prevailing_decls): 
	DECL_FIELD_OFFSET can contain an reference to variable.

2013-08-31  Jan Hubicka  <jh@suse.cz>

	* lto.c (tree_with_vars): Turn into vector.
	(MAYBE_REMEMBER_WITH_VARS): Change to...
	(CHECK_VAR): ... this one.
	(CHECK_NO_VAR): New macro.
	(maybe_remember_with_vars_typed): Turn to ...
	(mentions_vars_p_typed): ... this one.
	(maybe_remember_with_vars_common): Turn to ...
	(mentions_vars_p_comon): ... this one.
	(maybe_remember_with_vars_decl_minimal): Turn to ...
	(mentions_vars_p_decl_minmal): ... this one.
	(maybe_remember_with_vars_decl_common): Turn to ...
	(mentions_vars_p_decl_common): ... this one.
	(maybe_remember_with_vars_decl_with_vis): Turn to ...
	(mentions_vars_p_decl_with_vis): ... this one.
	(maybe_remember_with_vars_decl_non_common): Turn to ...
	(mentions_vars_p_decl_non_common): ... this one.
	(maybe_remember_with_vars_function): Turn to ...
	(mentions_vars_p_function): ... this one.
	(maybe_remember_with_vars_field_decl): Turn to ...
	(mentions_vars_p_field_decl): ... this one.
	(maybe_remember_with_vars_type): Turn to ...
	(mentions_vars_p_type): ... this one.
	(maybe_remember_with_vars_binfo): Turn to ...
	(mentions_vars_p_binfo): ... this one.
	(maybe_remember_with_vars_constructor): Turn to ...
	(mentions_vars_p_constructor): ... this one.
	(maybe_remember_with_vars_expr): Turn to ...
	(mentions_vars_p_expr): ... this one.
	(maybe_remember_with_vars): Turn to ...
	(mentions_vars_p): ... this one.
	(lto_read_decls): Update.
	(LTO_SET_PREVAIL): Do not call function for internal decls.
	(lto_fixup_prevailing_decls): Update to match mentions_vars_p;
	check that something was updated.
	(lto_fixup_state): Do not care about internal decls.
	(lto_fixup_decls): Update.
	(read_cgraph_and_symbols): Update.

2013-08-29  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Free decl states.

2013-08-29  Jan Hubicka  <jh@suse.cz>

	* lto.c (compare_tree_sccs_1): Compare  DECL_FINAL_P,
	DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
	TYPE_FINAL_P.

2013-08-28  Jan Hubicka  <jh@suse.cz>

	* lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED,
	DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION.
	(unify_scc): Do checking assert.

2013-08-06  Jan Hubicka  <jh@suse.cz>
	    Martin Liska  <marxin.liska@gmail.com>

	* lto-partition.c (lto_balanced_map): Always base order on 
	source file order.

2013-08-06  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_function): Do not read body anymore.

2013-08-02  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_function): Do not push struct function.
	* lto-partition.c (get_symbol_class): Handle abstracts correctly.
	(may_need_named_section_p): Even abstract origins may need
	named section.

2013-07-30  David Malcolm  <dmalcolm@redhat.com>

	* Make-lang.in (lto/lto.o:): Depend on CONTEXT_H and
	PASS_MANAGER_H.

	* lto.c (do_whole_program_analysis): Update for move of
	all_regular_ipa_passes from a global to a field of class
	pass_manager.

2013-07-21   OndÅej BÃ­lka  <neleai@seznam.cz>

	* lto-partition.c: Fix typos.

2013-06-20  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
	partitioning of variables.

2013-06-20  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Set cgraph state.

2013-06-19  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (add_references_to_partition): Use
	ctor_for_folding.

2013-06-18  Richard Biener  <rguenther@suse.de>

	* lto.c (lto_register_var_decl_in_symtab): Pass in cache index
	and use it.
	(lto_register_function_decl_in_symtab): Likewise.
	(cmp_tree): New function.
	(unify_scc): Instead of using the streamer cache map from entry
	to cache index match up the two maps we have by sorting them.
	Adjust calls to lto_register_var_decl_in_symtab and
	lto_register_function_decl_in_symtab.

2013-06-17  Richard Biener  <rguenther@suse.de>

	* Make-lang.in (lto.o): Add $(DATA_STREAMER_H) dependency.
	* lto.c: Include data-streamer.h.
	(lto_read_in_decl_state): Use streamer_tree_cache_get_tree.
	(gimple_type_leader_entry_s, gimple_type_leader,
	gimple_lookup_type_leader): Remove.
	(gtc_visit): Simplify.
	(gimple_types_compatible_p): Likewise.
	(gimple_register_type_1): Likewise.  Merge into ...
	(gimple_register_type): ... this.  Keep it as legacy for
	statistics purposes for now.
	(fixup_integer_cst): Remove.
	(LTO_FIXUP_TREE, lto_fixup_types, lto_ft_*): Simplify and
	rename to ...
	(MAYBE_REMEMBER_WITH_VARS, maybe_remember_with_vars,
	maybe_remember_with_vars_*): ... these.
	(uniquify_nodes): Remove.
	(lto_fixup_prevailing_type): New function.
	(struct tree_scc, struct tree_scc_hasher): New type and hasher.
	(tree_scc_hash, tree_scc_hash_obstack): New globals.
	(num_merged_types, num_prevailing_types, num_not_merged_types,
	num_not_merged_types_in_same_scc, total_scc_size, num_sccs_read,
	total_scc_size_merged, num_sccs_merged, num_scc_compares,
	num_scc_compare_collisions): New global counters.
	(compare_tree_sccs_1): New function.
	(compare_tree_sccs): Likewise.
	(unify_scc): Likewise.
	(lto_read_decls): Stream in tree SCCs and unify them on the
	way in.  Finalize prevailing SCC tree members.
	(read_cgraph_and_symbols): Do not initialize or free gimple_type_leader.
	Allocate and free tree_scc_hash_obstack and tree_scc_hash, do not bother
	to ggc-collect during merging.
	(print_lto_report_1): Adjust for new merging code.

2013-06-12  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Set cgraph into streaming state.

2013-06-12  Jan Hubicka  <jh@suse.cz>

	* lto.c (register_resolution): Take lto_file_data argument.
	(lto_register_var_decl_in_symtab,
	lto_register_function_decl_in_symtab): Update.
	(read_cgraph_and_symbols): Update resolution_map handling.

2013-06-11  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (get_symbol_class): Simplify weakref handling.
	(add_symbol_to_partition_1): Likewise.
	(contained_in_symbol): Likewise.
	(lto_balanced_map): Likewise.
	(rename_statics): Drop weakref.

2013-06-05  Richard Biener  <rguenther@suse.de>

	* lto.c (num_merged_types): New global variable.
	(uniquify_nodes): Increase num_merged_types when merging a type.
	(print_lto_report_1): Output the number of merged types.

2013-06-01  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
	lto_symtab_merge_cgraph_nodes by lto_symtab_merge_symbols.
	(do_whole_program_analysis): Update dumping.

2013-05-29  Jan Hubicka  <jh@suse.cz>

	* lto.c (has_analyzed_clone_p, lto_materialize_function): Update for new symtab
	flags.
	* lto-partition.c (get_symbol_class, lto_balanced_map): Likewise.

2013-05-15  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (privatize_symbol_name): Return true when
	privatizing happened.
	(rename_statics): Do not go into infinite loop when privatizing
	is not needed.

2013-05-16  Jason Merrill  <jason@redhat.com>

	* Make-lang.in ($(LTO_EXE)): Use link mutex.

2013-05-15  Martin Jambor  <mjambor@suse.cz>

	* lto-partition.c (lto_balanced_map): Print symbol order instead
	of node uids.

2013-05-15  Jan Hubicka  <jh@suse.cz>

	PR lto/57038
	PR lto/47375
	* lto-partition.c (get_symbol_class): Fix weakrefs.
	(lto_balanced_map): Fix weakrefs.
	(privatize_symbol_name): Remove unnecesary label.
	(rename_statics): Handle weakrefs as statics.

2013-05-09  Jan Hubicka  <jh@suse.cz>
	    Richard Biener  <rguenther@suse.de>

	* lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
	(lto_register_var_decl_in_symtab): Likewise.
	(lto_main): Promote statics.
	* lto-partition.c (privatize_symbol_name): New function.
	(promote_symbol): Use it.
	(may_need_named_section_p): New predicate.
	(rename_statics): New functions.
	(lto_promote_cross_file_statics): Simplify; do renaming.
	(lto_promote_statics_nonwpa): New function.
	* lto-partition.h (lto_promote_statics_nonwpa): New function.

2013-02-08  Richard Biener  <rguenther@suse.de>

	PR lto/56231
	* lto-lang.c (lto_init): Do not enter a dummy file.

2013-02-07  Uros Bizjak  <ubizjak@gmail.com>

	PR bootstrap/56227
	* lto.c (lto_resolution_ready): Use %wx instead of
	HOST_WIDE_INT_PRINT_HEX_PURE in the argument to internal_error.

2013-02-04  Richard Guenther  <rguenther@suse.de>

	PR lto/56168
	* lto.c (read_cgraph_and_symbols): Do not call lto_symtab_merge_decls
	or lto_fixup_decls at LTRANS time.

2013-01-09  Jan Hubicka  <jh@suse.cz>

	PR lto/45375
	* lto.c (do_whole_program_analysis): Remove unreachable nodes after IPA.

2012-12-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/55466
	* lto.c (lto_register_var_decl_in_symtab): Don't record static
	variables.
	(lto_main): Record the global variables if WPA isn't enabled.

2012-11-20  Diego Novillo  <dnovillo@google.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* lto.c: Replace all vec<T, A>() initializers with vNULL.

2012-11-16  Diego Novillo  <dnovillo@google.com>

	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)

	* lto-lang.c: Use new vec API in vec.h.
	* lto-partition.c: Likewise.
	* lto-partition.h: Likewise.
	* lto.c: Likewise.

2012-10-31  Lawrence Crowl  <crowl@google.com>

	* lto.c (lto_wpa_write_files): Change symtab checking to a checked
	down-cast via dyn_cast.
	* lto-partition.c (add_symbol_to_partition_1): Likewise.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.
	(get_symbol_class): Likewise and via is_a.
	(lto_balanced_map): Change symtab checking to is_a.

2012-10-12  Richard Biener  <rguenther@suse.de>

	PR lto/54898
	* lto.c (gimple_types_compatible_p_1): Also compare
	TYPE_MAIN_VARIANT.
	(iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.

2012-10-09  Tobias Burnus  <burnus@net-b.de>

	* lto-lang.c (lto_register_builtin_type): Avoid useless
	decl creation.
	* lto-object.c (lto_obj_file_open, lto_obj_file_open): Free memory.

2012-10-08  Tobias Burnus  <burnus@net-b.de>

	* lto.c (lto_wpa_write_files, read_cgraph_and_symbols):
	Free lto_file struct after closing the file.

2012-10-08  Jan Hubicka  <jh@suse.cz>

	* lto/lto.c (remember_with_vars): Also fixup INTEGER_CST.
	(fixup_integer_cst): New functoin.
	(lto_ft_type): Fixup BASETYPE of methods and offsets.

2012-10-07  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Release type merging hash early;
	release input encoders.
	* lto-partition.c (new_partition): Update for new lto_symtab_encoder_new.

2012-10-06  Jan Hubicka  <jh@suse.cz>

	PR lto/54790 
	* lto.c (resolution_map): New static var.
	(register_resolution): New function.
	(lto_register_var_decl_in_symtab): Use it.
	(read_cgraph_and_symbols): Copy resolutions into the symtab.

2012-09-20  Martin Jambor  <mjambor@suse.cz>

	* lto.c (lto_materialize_function): Call push_struct_function and
	pop_cfun.

2012-09-19  Dehao Chen  <dehao@google.com>

	* lto/lto.c (lto_fixup_prevailing_decls): Remove tree.exp.block field.

2012-09-19  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_function): Update confused comment.
	(read_cgraph_and_symbols): Do not free symtab.

2012-09-12  Jan Hubicka  <jh@suse.cz>

	* lto.c (do_whole_program_analysis): Care timevars, statistics and
	AUX pointer cleaning. Add max partitioning.
	* lto-partition.c (enum symbol_class): New.
	(get_symbol_class): New function.
	(symbol_partitioned_p): New function.
	(add_references_to_partition): Remove.
	(add_aliases_to_partition): Remove.
	(add_cgraph_node_to_partition_1): Remove.
	(add_cgraph_node_to_partition): Remove.
	(add_symbol_to_partition): New function.
	(add_symbol_to_partition_1): New function.
	(contained_in_symbol): New function.
	(partition_cgraph_node_p): Remove.
	(partition_varpool_node_p): Remove.
	(partition_symbol_p): Remove.
	(lto_1_to_1_map): Cleanup.
	(lto_max_map): New.
	(lto_balanced_map): Update.
	(lto_promote_cross_file_statics): Update.
	* lto-partition.h (lto_max_map): Declare.
	* timevar.def (TV_WHOPR_PARTITIONING): New timevar.

2012-09-11  Jan Hubicka  <jh@suse.cz>

	PR lto/54312
	* lto.c (uniquify_nodes): Remove quadratic loop checking if the
	type is variant leader.

2012-09-11  Richard Guenther  <rguenther@suse.de>

	* lto.c (enum gtc_mode): Remove.
	(struct type_pair_d): Adjust.
	(lookup_type_pair): Likewise.
	(gimple_type_leader): Do not mark as deletable.
	(gimple_lookup_type_leader): Adjust.
	(gtc_visit): Likewise.
	(gimple_types_compatible_p_1): Likewise.
	(gimple_types_compatible_p): Likewise.
	(gimple_type_hash): Likewise.
	(gimple_register_type): Likewise.
	(read_cgraph_and_symbols): Manage lifetime of tables
	here.

2012-09-11  Richard Guenther  <rguenther@suse.de>

	* lto.c (gimple_types, type_hash_cache, enum gtc_mode,
	struct type_pair_d, lookup_type_pair, struct sccs,
	next_dfs_num, gtc_next_dfs_num, struct gimple_type_leader_entry_s,
	gimple_type_leader, gimple_lookup_type_leader, compare_type_names_p,
	gtc_visit, gimple_types_compatible_p_1, gimple_types_compatible_p,
	visit, iterative_hash_name, struct type_hash_pair,
	type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
	gimple_type_eq, gimple_register_type_1, gimple_register_type):
	Move here from gimple.c
	(read_cgraph_and_symbols): Free hash tables here.
	(print_lto_report_1): New function wrapping print_lto_report.
	(do_whole_program_analysis): Call it.
	(lto_main): Likewise.

2012-09-10  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (partition_symbol_p): Forward declare.
	(add_references_to_partition): Reimplement using partition_symbol_p.
	(add_aliases_to_partition): Break out from add_references_to_partition;
	reimplement using partition_symbol_p.
	(add_cgraph_node_to_partition_1): Handle callees using partition_symbol_p;
	add sanity checks.
	(add_varpool_node_to_partition): Use add_aliases_to_partition.
	(partition_varpool_node_p): Do not special case aliases.

2012-08-12  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_wpa_write_files): Do not delete partition encoder;
	it is deleted after streaming.
	* lto-partition.c (partition_symbol_p): New function.
	(promote_var, promote_fn): Remove.
	(promote_symbol): New function.
	(lto_promote_cross_file_statics): First compute boundaries; rewrite
	to lookup the actual boundaries instead of computing them ad-hoc.

2012-08-12  Jan Hubicka  <jh@suse.cz>

	Replace cgraph_node_set and varpool_node_set by symtab_node_encoder
	in partitioning.
	* lto-partition.h (ltrans_partition_def): Replace cgraph_set and varpool_set
	by encoder.
	* lto-partition.c (new_partition): Update.
	* lto.c (cmp_partitions_order): Update.
	(lto_wpa_write_files): Update.
	(free_ltrans_partitions): Update.
	(add_references_to_partition): Update.
	(add_cgraph_node_to_partition_1): Update.
	(add_cgraph_node_to_partition): Update.
	(add_varpool_node_to_partition): Update.
	(undo_partition): Update.
	(lto_balanced_map): Update.
	(set_referenced_from_other_partition_p, set_reachable_from_other_partition_p,
	set_referenced_from_this_partition_p): Update.
	(lto_promote_cross_file_statics): Update.

2012-08-12  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (set_referenced_from_other_partition_p,
	set_reachable_from_other_partition_p, set_referenced_from_this_partition_p):
	New functions.
	(lto_promote_cross_file_statics): Use them.

2012-07-24  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Use input_symtab.

2012-07-24  Uros Bizjak  <ubizjak@gmail.com>

	* lto-tree.h (lang_decl): Add variable_size GTY option.

2012-07-16  Steven Bosscher  <steven@gcc.gnu.org>

	* lto.c: Do not include timevar.h.
	* Make-lang.in: Fix dependencies.

2012-06-18  Lawrence Crowl  <crowl@google.com>

        * lto.c (do_whole_program_analysis):  Rename use of TV_PHASE_CGRAPH to
	TV_PHASE_OPT_GEN.  Use new timevar TV_PHASE_STREAM_OUT around the call
	to lto_wpa_write_files.
	(lto_main):  Rename use of TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN.  Move
	start of TV_PHASE_OPT_GEN to include call to materialize_cgraph.  Use
	TV_PHASE_SETUP for the call to lto_init.  Use new timevar
	TV_PHASE_STREAM_IN around the call to read_cgraph_and_symbols.
	Turn TV_PHASE_PARSING off then back on again, because LTO is pretending
	to be a front end, but is not one.

2012-05-18  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_constructors_and_inits): Remove.
	(read_cgraph_and_symbols): Remove handling of alias pairs.

2012-05-17  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (add_references_to_partition): Handle external vars.
	(partition_varpool_node_p): Likewise.
	(lto_promote_cross_file_statics): Do not promote externals.

2012-05-14  Bernd Schmidt  <bernds@codesourcery.com>

	* lto-lang.c (handle_fnspec_attribute): New static function.
	(lto_attribute_table): Add "fn spec".
	(DEF_ATTR_STRING): Define and undefine along with the other macros.

2012-05-04  Jan Hubicka  <jh@suse.cz>

	* lto.c (do_whole_program_analysis): Set timevars correctly.
	(lto_main): Likewise.

2012-05-04  Richard Guenther  <rguenther@suse.de>

	* lang.opt (fwpa): Do not mark as Optimization.
	(fltrans): Likewise.

2012-04-30  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_main): Use compile ().
	* lto-partition.c (partition_cgraph_node_p): Use
	symtab_used_from_object_file_p.
	(partition_varpool_node_p): Likewise.

2012-04-20  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (partition_cgraph_node_p): Use force_output.

2012-04-18  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c (add_references_to_partition, lto_balanced_map):
	Update for new ipa-ref API.

2012-04-16  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Use FOR_EACH
        walkers to walk cgraph and varpool.
	(materialize_cgraph): Likewise.
	* lto-partition.c (lto_1_to_1_map): Likewise.
	(lto_balanced_map): Likewise.
	(lto_promote_cross_file_statics): Likewise.

2012-04-14  Jan Hubicka  <jh@suse.cz>

	* lto.c: Update field referenced for new cgraph/varpool layout.
	* lto-partition.c: Likewise.

2012-04-11  Jan Hubicka  <jh@suse.cz>

	* lto.c: Update copyright; remove params.h, ipa-inline.h
	and ipa-utils.h inlines; inline lto-partition.h
	(ltrans_partition_def, ltrans_partition, add_cgraph_node_to_partition,
	add_varpool_node_to_partition, new_partition, free_ltrans_partitions,
	add_references_to_partition, add_cgraph_node_to_partition_1,
	add_cgraph_node_to_partition, add_varpool_node_to_partition,
	undo_partition, partition_cgraph_node_p, partition_varpool_node_p,
	lto_1_to_1_map, node_cmp, varpool_node_cmp, lto_balanced_map,
	promote_var, promote_fn, lto_promote_cross_file_statics): move to...
	* lto-partition.c: ... here; new file.
	* lto-partition.h: New file.
	* Make-lang.in (lto.o): Update dependencies.
	(lto-partition.o): New.

2012-04-05  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Remove
	definition.

2012-03-12  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (builtin_type_for_size): Use lto_type_for_size.

2012-03-06  Richard Guenther  <rguenther@suse.de>

	PR lto/52097
	* lto.c (uniquify_nodes): Merge TYPE_FIELDS of variant types.

2012-02-28  Richard Guenther  <rguenther@suse.de>

	PR lto/52400
	* lto.c (lto_register_function_decl_in_symtab): Do not register
	a reverse renamed decl mapping.

2012-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR lto/51774
	* lto-lang.c (handle_returns_twice_attribute): New function.
	(lto_attribute_table): Add returns_twice attribute.

2011-12-21  Richard Guenther  <rguenther@suse.de>

	* lto.c (GIMPLE_REGISTER_TYPE): New define.
	(LTO_FIXUP_TREE): Use it.
	(uniquify_nodes): Mark new non-prevailing types and avoid
	calling gimple_register_type on others.
	(lto_read_decls): Add comment.

2011-12-13  Eric Botcazou  <ebotcazou@adacore.com>

	* lto.h (lto_parse_hex): Delete.
	* lto.c (lto_read_decls): Use 'int' for offsets.
	(lto_parse_hex): Make static and return proper 64-bit host type.
	(lto_resolution_read): Use proper 64-bit host type.

2011-12-13  Richard Guenther  <rguenther@suse.de>

	PR lto/48354
	* lto.c (lto_ft_decl_non_common): When we merged DECL_ORIGINAL_TYPE
	with the type of the TYPE_DECL clear DECL_ORIGINAL_TYPE.

2011-12-01  Uros Bizjak  <ubizjak@gmail.com>

	* lto-lang.c (lto_attribute_table): Handle *tm regparm.
	(ignore_attribute): New.

2011-11-21  Aldy Hernandez  <aldyh@redhat.com>

	* lto-lang.c (lto_attribute_table): Handle transaction_pure.
	(handle_transaction_pure_attribute): New.

2011-11-03  Richard Guenther  <rguenther@suse.de>

	PR lto/44965
	* lto-lang.c (lto_post_options): Do not read file options.
	* lto.c (lto_read_all_file_options): Remove.
	(lto_init): Call lto_set_in_hooks here.

2011-10-09  Jan Hubicka  <jh@suse.cz>

	* lto.c (node_cmp, varpool_node_cmp): New functions.
	(lto_balanced_map): Honnor -fno-toplevel-reorder of vars&functions.
	(cmp_partitions): Rename to ...
	(cmp_partitions_size): ... this one.
	(cmp_partitions_order): New function.
	(lto_wpa_write_files): Sort partitions by order when
	-fno-toplevel-reorder is used.

2011-10-09  Andi Kleen  <ak@linux.intel.com>

	* lto.c (lto_section_read): Call fatal_error on IO or mmap errors.

2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* lto-lang.c (def_builtin_1): Delete old interface with two
	parallel arrays to hold standard builtin declarations, and replace
	it with a function based interface that can support creating
	builtins on the fly in the future.  Change all uses, and poison
	the old names.  Make sure 0 is not a legitimate builtin index.

2011-10-02   Andi Kleen  <ak@linux.intel.com>

	* lto-object.c (lto_obj_add_section_data): Add list.
	(lto_obj_add_section): Fill in list.
	(ltoobj_build_section_table): Pass through list.
	* lto.c (file_data_list): Declare.
	(create_subid_section_table): Pass arguments directly.
	Fill in list of file_datas.
	(lwstate): Delete.
	(lto_create_files_from_ids): Pass in direct arguments.
	Don't maintain list.
	(lto_file_read): Use explicit section and file data lists.
	(lto_read_all_file_options): Pass in section_list.
	* lto.h (lto_obj_build_section_table): Add list.
	(lto_section_slot): Add next.
	(lto_section_list): Declare.

2011-10-02  Jan Hubicka  <jh@suse.cz>

	PR lto/47247
	* common.c (lto_resolution_str): Add new resolution.
	* common.h (lto_resolution_str): Likewise.

2011-09-30  H.J. Lu  <hongjiu.lu@intel.com>
	    Andi Kleen  <ak@linux.intel.com>

	PR lto/50568
	* lto.c (lto_splay_tree_delete_id): New.
	(lto_splay_tree_compare_ids): Likewise.
	(lto_splay_tree_lookup): Likewise.
	(lto_splay_tree_id_equal_p): Likewise.
	(lto_splay_tree_insert): Likewise.
	(lto_splay_tree_new): Likewise.
	(lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
	Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
	(create_subid_section_table): Use lto_splay_tree_lookup and
	lto_splay_tree_insert.
	(lto_file_read): Use lto_splay_tree_new.

2011-09-26   Andi Kleen  <ak@linux.intel.com>

	* lto.c (lto_resolution_read): Remove id dumping.
	(lto_section_with_id): Turn id HOST_WIDE_ID.
	(create_subid_section_table): Dito.

2011-08-28  Dodji Seketeli  <dodji@redhat.com>

	* lto-lang.c (lto_init): Likewise.  Also, avoid calling
	linemap_add twice.

2011-08-11  Martin Jambor  <mjambor@suse.cz>

	* lto.c (uniquify_nodes): Use main variant's BINFO too.

2011-08-08   Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (lto/lto.o): Add TREE_STREAMER_H.
	* lto.c: Include tree-streamer.h.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (lto_init):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	PR lto/48246
	* lto.c (lto_1_to_1_map): Don't create empty partitions.
	(lto_balanced_map): Likewise.

2011-06-11  Jan Hubicka  <jh@suse.cz>

	* lto.c (add_cgraph_node_to_partition_1): Break out from ...
	(add_cgraph_node_to_partition) ... here; walk aliases.
	(lto_1_to_1_map): Remove same body alias code.
	(promote_fn): Likewise.
	(lto_promote_cross_file_statics): Update comment.


2011-06-07  Diego Novillo  <dnovillo@google.com>

	* lto.c (uniquify_nodes): Move code to register decls to
	the loop that computes canonical types.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (lto_init): Do not set
	size_type_node or call set_sizetype.

2011-06-04  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_init): New.
	(lto_main): Call it.

2011-06-03  Diego Novillo  <dnovillo@google.com>

	* lto.c (get_resolution): Move from lto-streamer-in.c.
	(lto_register_var_decl_in_symtab): Likewise.
	(lto_register_function_decl_in_symtab): Likewise.
	(uniquify_nodes): Call lto_register_var_decl and
	lto_register_function_decl_in_symtab after reading a new
	VAR_DECL or FUNCTION_DECL.

2011-06-01  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (lto_register_canonical_types): New function.
	(lto_init): Register common nodes with the canonical type machinery.
	Do not play tricks with char_type_node.

2011-05-26  Richard Guenther  <rguenther@suse.de>

	* lto.c (uniquify_nodes): Fix bug in one of the previous changes.

2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_ft_typed): New function.
	(lto_ft_common): Call it.
	(lto_ft_constructor): Likewise.
	(lto_ft_expr): Likewise.
	(lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
	TREE_CHAIN.

2011-05-20  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_ft_common): Remove pointer-to chain teardown.
	(lto_ft_type): Move main-variant and pointer-to chain building ...
	(uniquify_nodes): ... here.  Compute TYPE_CANONICAL also here,
	in a separate final loop.

2011-05-19  Richard Guenther  <rguenther@suse.de>

	* lto.c (uniquify_nodes): First register all types before
	fixing up the tree SCC.

2011-05-11  Jan Hubicka  <jh@suse.cz>

	PR lto/48952
	* lto.c (do_whole_program_analysis): Do not register cgraph hooks.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_ft_type): Use TYPE_MINVAL and TYPE_MAXVAL.  Adjust
	location of binfo field.
	(lto_fixup_prevailing_decls): Likewise.

2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (def_fn_type): Don't call build_function_type, call
	build_function_type_array or build_varargs_function_type_array
	instead.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-lang.c (global_bindings_p): Return bool.

2011-05-07  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_function): Use
	cgraph_function_with_gimple_body_p.
	(add_cgraph_node_to_partition): Do not re-add items to partition;
	handle thunks.
	(add_varpool_node_to_partition): Do not re-add items to partition.

2011-05-03  Jan Hubicka  <jh@suse.cz>

	* lto.c (free_ltrans_partitions): Fix accidental commit.

2011-05-03  Jan Hubicka  <jh@suse.cz>

	* lto.c (ltrans_partition_def): Remove GTY annotations.
	(ltrans_partitions): Move to heap.
	(new_partition): Update.
	(free_ltrans_partitions): New function.
	(lto_wpa_write_files): Use it.

2011-04-29  Martin Jambor  <mjambor@suse.cz>

	* lto.c: Include ipa-utils.h.
	(lto_balanced_map): Update call to ipa_reverse_postorder.
	* Make-lang.in (lto/lto.o): Add IPA_UTILS_H to dependencies.

2011-04-29  Michael Matz  <matz@suse.de>

	* lto.c (toplevel): Include tree-flow.h.
	(lto_read_in_decl_state): Don't merge types here.
	(tree_with_vars): New static hash table.
	(remember_with_vars): New static functions.
	(LTO_FIXUP_TYPE): New macro.
	(lto_ft_common, lto_ft_decl_minimal, lto_ft_decl_common,
	lto_ft_decl_with_vis, lto_ft_decl_non_common, lto_ft_function,
	lto_ft_field_decl, lto_ft_type, lto_ft_binfo, lto_ft_constructor,
	lto_ft_expr, lto_fixup_types, uniquify_nodes): New static functions.
	(lto_read_decls): Uniquify while reading in trees.
	(lto_fixup_data_t, LTO_FIXUP_SUBTREE,
	LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE, no_fixup_p, lto_fixup_common,
	lto_fixup_decl_minimal, lto_fixup_decl_common, lto_fixup_decl_with_vis,
	lto_fixup_decl_non_common, lto_fixup_function, lto_fixup_field_decl,
	lto_fixup_type, lto_fixup_binfo, lto_fixup_constructor,
	lto_fixup_tree): Remove.
	(lto_fixup_state): Remove data argument.  Use
	lto_symtab_prevailing_decl.
	(LTO_SET_PREVAIL, LTO_NO_PREVAIL): New macros.
	(lto_fixup_prevailing_decls): New function.
	(lto_fixup_state_aux): Argument aux is unused.
	(lto_fixup_decls): Don't allocate pointer sets, don't use
	lto_fixup_tree, use lto_fixup_prevailing_decls.
	(read_cgraph_and_symbols): Allocate and remove tree_with_vars.
	* Make-lang.in (lto/lto.o): Depend on $(TREE_FLOW_H).

2011-04-16  Eric Botcazou  <ebotcazou@adacore.com>

	* lto.c (lto_balanced_map): Fix typos in head comment.
	(lto_promote_cross_file_statics): Fix long lines and remove redundant
	test.

2011-04-16  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_balanced_map): Update.

2011-04-14  Jan Hubicka  <jh@suse.cz>

	* lto.c: Include ipa-inline.h
	(add_cgraph_node_to_partition, undo_partition): Use inline_summary
	accessor.
	(ipa_node_duplication_hook): Fix declaration.
	* Make-lang.in (lto.o): Update dependencies.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-tree.h (union lang_tree_node): Check for TS_COMMON before
	calling TREE_CHAIN.
	* lto.c (lto_fixup_common): Likewise.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (handle_sentinel_attribute): Don't use TYPE_ARG_TYPES.
	(handle_type_generic_attribute): Likewise.

2011-04-03  Michael Matz  <matz@suse.de>

	* lto.c (lto_materialize_function): Don't read and then discard
	sections in WPA mode.
	(lto_read_in_decl_state): Adjust call to lto_streamer_cache_get.

	* lto-lang.c (registered_builtin_fndecls): Remove.
	(lto_getdecls): Return NULL_TREE.
	(lto_builtin_function): Don't remember in registered_builtin_fndecls.

2011-03-31  Richard Guenther  <rguenther@suse.de>

	PR lto/48246
	* lto.c (lto_wpa_write_files): Disable assert for non-empty
	partitions when checking is not enabled.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

	* lto.c (lto_resolution_read): Use filename_cmp instead
	of strcmp.
	(lto_read_section_data): Likewise.

2011-03-25  Jeff Law  <law@redhat.com>

	* lto/lto-lang.c (def_fn_type): Add missing va_end.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

	PR target/12171
	* lto-lang.c (lto_attribute_table): Adjust table.

2011-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/47807
	* Make-lang.in (lto/lto-lang.o): Depend on $(LTO_STREAMER_H) instead
	of lto-streamer.h.

2011-02-18  Richard Guenther  <rguenther@suse.de>

	PR lto/47798
	* lto-tree.h (lto_global_var_decls): Do not declare here.
	* lto-lang.c: Include lto-streamer.h.
	* Make-lang.in (lto-lang.o): Adjust dependencies.

2011-02-10  Kai Tietz  <kai.tietz@onevision.com>

	PR lto/47241
	* lto.c (lto_read_section_data): Free
	fd_name in failure case.
	For mingw targets don't hash file-descriptor.
	(read_cgraph_and_symbols): Close current_lto_file
	in failure case.

2011-01-11  Jan Hubicka  <jh@suse.cz>

	PR lto/45721
	PR lto/45375
	* lto.c (partition_cgraph_node_p, partition_varpool_node_p): Weakrefs
	are not partitioned.

2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute):
	Use prototype_p.

2010-12-06  Richard Guenther  <rguenther@suse.de>

	PR lto/46796
	* lto-lang.c (lto_init): Give names to basic types.

2010-11-30  Joseph Myers  <joseph@codesourcery.com>

	* lto-object.c: Don't include toplev.h.
	* Make-lang.in (lto/lto-object.o): Don't depend on toplev.h.

2010-11-30  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
	$(TOPLEV_H).

2010-11-29  Joseph Myers  <joseph@codesourcery.com>

	* lto-endian.h: Delete.
	* lto-object.c: Don't include "libiberty.h".
	(O_BINARY): Don't define.
	* lto.c: Don't include "libiberty.h" or <sys/mman.h>.
	(O_BINARY): Don't define.

2010-11-23  Richard Guenther  <rguenther@suse.de>

	* lto.c (read_cgraph_and_symbols): Remove newline from diagnostic.

2010-11-23  Richard Guenther  <rguenther@suse.de>

	PR lto/46605
	* lto.c (read_cgraph_and_symbols): Bail out after errors.

2010-11-17  Joseph Myers  <joseph@codesourcery.com>

	* lto.c (lto_main): Take no arguments.
	* lto.h (lto_main): Update prototype.

2010-11-16  Ian Lance Taylor  <iant@google.com>

	* lto-object.c (lto_obj_file_open): Call
	simple_object_attributes_merge rather than
	simple_object_attributes_compare.

2010-11-12  Joseph Myers  <joseph@codesourcery.com>

	* Make-lang.in (lto/lto.o): Use $(OPTS_H).
	* lto-lang.c (lto_handle_option): Take location_t parameter.

2010-11-10  Joseph Myers  <joseph@codesourcery.com>

	* lto.c (lto_resolution_read): Start diagnostics with lowercase
	letters and remove trailing '.'.
	(lto_file_finalize): Start diagnostic with a lowercase letter.

2010-11-02  Ian Lance Taylor  <iant@google.com>

	* lto-object.c: New file.
	* lto-elf.c: Remove file.
	* lto-macho.c: Remove file.
	* lto-macho.h: Remove file.
	* lto-coff.c: Remove file.
	* lto-coff.h: Remove file.
	* Make-lang.in (LTO_OBJS): Change lto/$(LTO_BINARY_READER).o to
	lto/lto-object.o.
	($(LTO_EXE)): Remove $(LTO_USE_LIBELF)
	(lto/lto-objfile.o): New target.
	(lto/lto-elf.o, lto/lto-coff.o, lto/lto-macho.o): Remove targets.
	(lto/lto.o): Remove $(LIBIBERTY_H).

2010-10-22  Jan Hubicka  <jh@suse.cz>

	* lto.c (add_cgraph_node_to_partition,
	add_varpool_node_to_partition): Add debug info.
	(lto_1_to_1_map, lto_balanced_map): Do not re-add already
	partitioned nodes.
	(do_whole_program_analysis): Set function flags before dumping.

2010-10-22  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
	the new gimple_register_canonical_type.

2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/45954
	* config-lang.in (boot_language): Set to $enable_lto.

2010-10-18  Jakub Jelinek  <jakub@redhat.com>

	PR lto/45638
	* Make-lang.in (check-lto): New dummy target.

2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-elf.c (SHN_XINDEX): Define if not already defined.

2010-10-08  Joseph Myers  <joseph@codesourcery.com>

	* lto-lang.c (lto_init_options): Change to
	lto_init_options_struct.  Update parameters.
	(LANG_HOOKS_INIT_OPTIONS): Don't define.
	(LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.

2010-10-06  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_balanced_map): Fix accounting of program size.

2010-10-06  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_balanced_map): Do not produce empty partitions.

2010-10-06  Andi Kleen  <ak@linux.intel.com>

	* lto.c (lto_process_name): Add.
	(lto_main): Call lto_process_name.

2010-10-06  Jan Hubicka  <jh@suse.cz>

	* lto.c (partition_cgraph_node_p, partition_varpool_node_p): Handle
	COMDATs required by the linker.

2010-10-05  Ian Lance Taylor  <iant@google.com>

	* lto.c (lto_section_with_id): Make s a const pointer.

2010-10-05  Jan Hubicka  <jh@suse.cz>

	* lto.c:  Include params.h.
	(add_cgraph_node_to_partition, add_varpool_node_to_partition): Do
	refcounting in aux field.
	(undo_partition, partition_cgraph_node_p, partition_varpool_node_p):
	New functions.
	(lto_1_to_1_map): Simplify.
	(lto_balanced_map): New function.
	(do_whole_program_analysis): Chose proper partitioning alg.
	* Make-lang.in (lto.o): Add dependency on params.h

2010-10-04  Andi Kleen  <ak@linux.intel.com>

	* Make-lang.in (lto1): Add + to build rule.

2010-10-03  Andi Kleen  <ak@linux.intel.com>

    	* lto.c (lto_file_finalize): Replace gcc_assert for missing section
          with fatal_error.

2010-09-28  Jan Hubicka  <jh@suse.cz>

	* lto-lang.c (handle_leaf_attribute): New function.
	(lto_attribute_tables): Add leaf.

2010-09-25  Jie Zhang  <jie@codesourcery.com>

	* lto.c (lto_read_all_file_options): Start a new line after
	printing out file names.

2010-09-24  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_promote_cross_file_statics): Use const_value_known_p.

2010-09-20  Jan Hubicka  <jh@suse.cz>

	PR tree-optimize/45605
	* lto.c (lto_promote_cross_file_statics): Use const_value_known_p.

2010-09-18  Gerald Pfeifer  <gerald@pfeifer.com>

	* lto-elf.c (lto_obj_file_open): Also provide filename when
	elf_begin fails.

2010-09-17  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_promote_cross_file_statics): Use const_value_known.

2010-09-17  Richard Guenther  <rguenther@suse.de>

	* lang.opt (flag_wpa): Also enable for the driver.

2010-09-16  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_function): Do not tamper with STATIC and
	EXTERNAL flags. 

2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* lto-tree.h (struct lang_type): Add variable_size GTY option.

2010-09-08  Jan Hubicka  <jh@suse.cz>

	* lto.c (real_file_count, real_file_decl_data): New static vars.
	(read_cgraph_and_symbols): Use it.

2010-09-08  Richard Guenther  <rguenther@suse.de>

	* lto.c (read_cgraph_and_symbols): Collect again after each
	file.

2010-09-07  Jan Hubicka  <jh@suse.cz>

	* lto.c (promote_var, promote_fn): Set DECL_VISIBILITY_SPECIFIED.

2010-09-03  Richard Guenther  <rguenther@suse.de>

	* lto-elf.c (validate_file): Always error if validation fails.

2010-08-20  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
	(lto_wpa_write_files): Update comments.

2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/45357
	* lto.c (lto_materialize_function): Replace has_analyzed_clone
	with has_analyzed_clone_p.

2010-08-20  Jan Hubicka  <jh@suse.cz>

	* lto.c (has_analyzed_clone_p): New function
	(lto_materialize_function): Use callgraph to determine if
	body is needed.
	(materialize_cgraph): Remove DECL_IS_BUILTIN check.

2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c: Use FOR_EACH_VEC_ELT.

2010-07-27  Andi Kleen  <ak@linux.intel.com>

	* Make-lang.in (lto.o): Add dependency to splay-tree.h

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* lto-lang.c (lto_handle_option): Update prototype and return
	value type.  Remove duplicate assignment to result.

2010-07-27  Joseph Myers  <joseph@codesourcery.com>

	* lto-lang.c (lto_option_lang_mask, lto_complain_wrong_lang_p):
	New.
	(lto_init_options): Update prototype.
	(LANG_HOOKS_OPTION_LANG_MASK, LANG_HOOKS_COMPLAIN_WRONG_LANG_P):
	Define.

2010-07-10  Andi Kleen  <ak@linux.intel.com>

	PR lto/44992
        * lto.c: Include splay-tree.h
	(lto_resolution_read): Change to walk file_ids tree and parse
	extra file_id in resolution file.
	(lto_section_with_id): Add.
	(create_subid_section_table): Add.
	(lwstate): Add.
	(lto_create_files_from_ids): Add.
	(lto_file_read): Change to handle sub file ids and create list
	of file_datas. Add output argument for count.
	(get_section_data): Pass file_data to lto_get_section_name.
	(lto_flatten_file): Add.
	(read_cgraph_and_symbols): Handle linked lists of file_datas.

2010-07-10  Andi Kleen  <ak@linux.intel.com>

	* lto-coff.c (hash_name, eq_name): Move.
	(lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
	* lto-elf.c: (hash_name, eq_name): Move.
	(lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
	* lto-macho.c: (hash_name, eq_name): Move.
	(lto_obj_build_section_table): Call lto_obj_create_section_hash_table.
	* lto.c: (hash_name, eq_name): Move from lto-*.c
	(lto_obj_create_section_hash_table): Add.
	(free_with_string): Add.

2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	* lto-coff.c: Include diagnostic-core.h in every file that
	includes toplev.h.
	* lto-elf.c: Likewise.
	* lto-lang.c: Likewise.
	* lto-macho.c: Likewise.

2010-07-07  Jakub Jelinek  <jakub@redhat.com>

	* lto-elf.c (ELFOSABI_NONE, ELFOSABI_LINUX): Define if not defined.
	(validate_file): Allow merging of ELFOSABI_NONE with ELFOSABI_LINUX
	objects.

2010-07-05  Jan Hubicka  <jh@suse.cz>

	* lto.c (add_cgraph_node_to_partition): Forward declare; walk also
	nodes from same comdat group as well as all comdat functions referenced
	here.
	(add_varpool_node_to_partition, add_references_to_partition): New
	function.
	(lto_1_1_map): Skip COMDAT fnctions/variables; use
	add_varpool_node_to_partition; clear aux flags when done.
	(lto_promote_cross_file_statics): Do not promote stuff that gets
	duplicated to each ltrans.

2010-07-04  Jan Hubicka  <jh@suse.cz>

        * lto.c (read_cgraph_and_symbols): Dump cgraph before merging.

2010-06-13  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.

2010-06-09  Kai Tietz  <kai.tietz@onevision.com>

	* lto.c (lto_resolution_read):  Pre-initialize local variable r.
	* lto-coff.c (coff_write_object_file): Add braces to if.

2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* lto.c (lto_read_in_decl_state): Use typed GC allocation.
	(lto_file_read): Likewise.
	(new_partition): Likewise.
	(read_cgraph_and_symbols): Likewise.

2010-06-07  Joseph Myers  <joseph@codesourcery.com>

	* lto-lang.c (flag_no_builtin, flag_no_nonansi_builtin): Remove.
	(lto_handle_option): Don't set flag_signed_char here.

2010-06-04  Richard Guenther  <rguenther@suse.de>

	PR lto/41584
	* lto.c (lto_1_to_1_map): Use the proper file_data for
	varpool nodes.

2010-05-30  Jan Hubicka  <jh@suse.cz>

	* lto.c (promote_var, promote_fn, lto_wpa_write_files): Dump
	partitioning decisions.

2010-05-29  Jan Hubicka  <jh@suse.cz>

	* lto.c (bitmap vector): Remove.
	(lto_cgraph_node_sets,  lto_varpool_node_sets): Remove.
	(ltrans_partition_def): New structure.
	(ltrans_partition): New type and VECtor.
	(new_partition): New function.
	(add_cgraph_node_to_partition): New function.
	(lto_1_to_1_map): Reorganize for partitions.
	(lto_add_inline_clones): Remove.
	(lto_add_all_inlinees): Remove.
	(lto_promote_cross_file_statics): Use partitions.
	(cmp_partitions): New function.
	(lto_wpa_write_files): Do not call lto_add_all_inlinees;
	use partitions; output files sorted by size.

2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>

	* Make-lang.in: Replace vec.h dependency with VEC_H.

2010-05-28  Joseph Myers  <joseph@codesourcery.com>

	* lto-coff.c (coff_errmsg): Remove.
	(lto_coff_begin_section_with_type, lto_obj_append_data): Use %m in
	errors instead of coff_errmsg (-1).
	* lto-macho.c (mach_o_errmsg): Remove.
	(lto_obj_begin_section, lto_obj_append_data): Use %m in errors
	instead of mach_o_errmsg (-1).
	* lto.c (read_cgraph_and_symbols): Use %m in errors instead of
	xstrerror (errno).

2010-05-28  Richard Guenther  <rguenther@suse.de>

	* lto.c (prefix_name_with_star): Removed.
	(strip_extension): Likewise.
	(get_filename_for_set): Likewise.
	(lto_write_ltrans_list): Fold into ...
	(lto_wpa_write_files): ... this.  Name LTRANS units
	by suffixing the ltrans output list filename.
	(do_whole_program_analysis): Adjust.

2010-05-27  Joseph Myers  <joseph@codesourcery.com>

	* lto.c: Include diagnostic-core.h instead of diagnostic.h.
	(read_cgraph_and_symbols, lto_main): Use seen_error.
	* Make-lang.in (lto/lto.o): Update dependencies.

2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/44230
	* lto.h (lto_eh_personality): New prototype.
	* lto.c: Include debug.h.
	(first_personality_decl): New static variable.
	(lto_materialize_function): Set it to DECL_FUNCTION_PERSONALITY of the
	first function for which it is non-null.
	(lto_eh_personality_decl): New static variable.
	(lto_eh_personality): New function.
	* lto-lang.c (LANG_HOOKS_EH_PERSONALITY): Redefine to above function.
	* Make-lang.in (lto/lto.o): Add dependency on debug.h.

2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>

	* lto-lang.c: Do not include expr.h.

2010-05-24  Richard Guenther  <rguenther@suse.de>

	* lto-elf.c (lto_obj_build_section_table): Work around
	FreeBSD libelf issue.

2010-05-22  Richard Guenther  <rguenther@suse.de>

	* lto.c (read_cgraph_and_symbols): Do not collect.

2010-05-20  Jan Hubicka  <jh@suse.cz>

	* lto.c (promote_var, promote_fn): New functions.
	(lto_promote_cross_file_statics): Compute correctly boundary including
	static initializers of readonly vars.

2010-05-18  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_1_to_1_map): Partition non-inline clones.
	(lto_promote_cross_file_statics): Deal with non-inline clones.

2010-05-18  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_materialize_function): Announce function when
	reading body; allocate_struct_function only when reading body;
	do not finalize local statics; ggc_collect after reading;
	do not mark reachable node.
	(materialize_cgraph): Do not announce function.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto.c (materialize_cgraph): Revert my previous patch.

2010-05-11  Kai Tietz  <kai.tietz@onevision.com>

	* lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Rename to
	IMAGE_FILE_MACHINE_AMD64.
	* lto-coff.c (IMAGE_FILE_MACHINE_ADM64): Likewise.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_fixup_decls): Remove global var decls freeing here.
	(materialize_cgraph): Add it here.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
	vector.

2010-05-11  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_1_to_1_map): Remove some no longer needed checks.
	(lto_promote_cross_file_statics): Never promote DECL_EXTERNAL;
	use reachable_from_other_partition_p and
	referenced_from_other_partition_p test.

2010-05-11  Kai Tietz  <kai.tietz@onevision.com>

	* lto-coff.c (validate_file): Add x64-coff support.
	* lto-coff.h (IMAGE_FILE_MACHINE_ADM64): New.
	(COFF_KNOWN_MACHINES): Add IMAGE_FILE_MACHINE_ADM64.
	* lto-lang.c (lto_build_c_type_nodes): Add check for
	'long long unsigned int' for x64-windows.
	(lto_init): Likewise.


2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>

	* lto.h (struct lto_file_struct): Document offset member.
	* lto-endian.h: New file.
	* lto-macho.h: New file.
	* lto-macho.c: New file.
	* Make-lang.in: Add rule for lto-macho.o.

2010-05-07  Richard Guenther <rguenther@suse.de>

	PR lto/43857
	PR lto/43371
	* lang.opt (fresolution): Change to ...
	(fresolution=): ... this.
	* lto-lang.c (lto_handle_option): Adjust.

2010-05-07  Richard Guenther  <rguenther@suse.de>

	* lto.c (DUMPBASE_SUFFIX): Remove.
	(lto_execute_ltrans): Move functionality to lto-wrapper.c.
	Rename to ...
	(lto_write_ltrans_list): ... only output the list of ltrans files.
	(lto_maybe_unlink): Remove.
	(do_whole_program_analysis): Do not execute LTRANS phase
	from here.

2010-05-06  H.J. Lu  <hongjiu.lu@intel.com>

	* lto-lang.c (lto_handle_option): Add argument kind.

2010-05-05  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_promote_cross_file_statics): Compute boundary based on
	refs.

2010-05-05  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_1_to_1_map): Partition only needed nodes.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* lto.c (get_filename_for_set): Look for cgraph node and if none found,
	use default name.
	(lto_wpa_write_files): Write any non-empty partition.

2010-04-30  Jan Hubicka  <jh@suse.cz>

	* lto.c: Do not attempt to make constant pool references global.

2010-04-28  Jan Hubicka  <jh@suse.cz>

	* lto/lto.c (lto_read_in_decl_state): Use GGC.
	(lto_wpa_write_files): Announce what we are writting.
	(all_file_decl_data): New.
	(read_cgraph_and_symbols): Use GGC; correct timevars.
	(do_whole_program_analysis): Collect.
	* lto/Make-lang.in (lto.o): Fix dependency.
	* Makefile.in (GTFILES): Add lto-streamer.h.
	* varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
	(varpool_assemble_pending_decls): Use VAROUT.
	* lto-streamer.h (lto_tree_ref_table): Annotate.
	(lto_in_decl_state): Annotate.
	(lto_file_decl_data): Annotate.

2010-04-28  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_varpool_node_sets): New.
	(lto_1_to_1_map): Partition varpool too.
	(globalize_context_t, globalize_cross_file_statics,
	lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node,
	lto_scan_statics_in_remaining_global_vars): Remove.
	(lto_promote_cross_file_statics): Rewrite.
	(get_filename_for_set): Take vset argument.
	(lto_wpa_write_files): Pass around vsets.

2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>

	PR lto/42776
	* Make-lang.in (LTO_OBJS): Use LTO_BINARY_READER instead of
	hardcoding 'lto-elf.o'.
	($(LTO_EXE)): Use LTO_USE_LIBELF instead of hardcoding '-lelf'.

	* lto-coff.h: New file.
	* lto-coff.c: Likewise.

2010-04-26  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_type): Deal with non-type TYPE_CONTEXT.

2010-04-26  Dave Korn  <dave.korn.cygwin@gmail.com>

	* lto.h (lto_elf_file_open): Rename prototype from this ...
	(lto_obj_file_open): ... to this.
	(lto_elf_file_close): Likewise ...
	(lto_obj_file_close): ... and likewise.
	(lto_elf_build_section_table): Likewise ...
	(lto_obj_build_section_table): ... and likewise.
	(lto_elf_begin_section): Likewise ...
	(lto_obj_begin_section): ... and likewise.
	(lto_elf_append_data): Likewise ...
	(lto_obj_append_data): ... and likewise.
	(lto_elf_end_section): Likewise ...
	(lto_obj_end_section): ... and likewise.
	* lto.c (lto_file_read): Update references to the above.
	(lto_wpa_write_files): Likewise.
	(lto_read_all_file_options): Likewise.
	(read_cgraph_and_symbols): Likewise.
	* lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Likewise.
	(LANG_HOOKS_APPEND_DATA): Likewise.
	(LANG_HOOKS_END_SECTION): Likewise.
	* lto-elf.c (lto_elf_file_open): Rename from this ...
	(lto_obj_file_open): ... to this, updating any references.
	(lto_elf_file_close): Likewise ...
	(lto_obj_file_close): ... and likewise.
	(lto_elf_build_section_table): Likewise ...
	(lto_obj_build_section_table): ... and likewise.
	(lto_elf_begin_section): Likewise ...
	(lto_obj_begin_section): ... and likewise.
	(lto_elf_append_data): Likewise ...
	(lto_obj_append_data): ... and likewise.
	(lto_elf_end_section): Likewise ...
	(lto_obj_end_section): ... and likewise.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_fixup_tree): Do not call wpa fixup.
	(materialize_cgraph): Likewise.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_wpa_write_files): Update.
	(read_cgraph_and_symbols): Be more verbose.
	(materialize_cgraph): Likewise.
	(do_whole_program_analysis): Likewise.

2010-04-21  Jan Hubicka  <jh@suse.cz>

	* lto.c (globalize_cross_file_statics): When function has address taken,
	it needs to be public.

2010-04-20  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_add_inline_clones): Do not track inlined_decls.
	(lto_add_all_inlinees): Likewise.
	(lto_wpa_write_files): Likewise.

2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-lang.c (lto_init): Remove second argument in call to
	build_common_tree_nodes.

2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* lto-elf.c [!HAVE_ELF_GETSHDRSTRNDX] (elf_getshdrstrndx): New
	function.

2010-03-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/43276
	* lto-elf.c: Define EM_* constants if not already defined.

2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	* lto-elf.c (is_compatible_architecture): New static function.
	(DEFINE_VALIDATE_EHDR): Use it to validate the architecture.

2010-02-11  Richard Guenther  <rguenther@suse.de>

	PR driver/43021
	* lto-elf.c (lto_elf_file_open): Handle file@offset case more
	appropriately.

2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>

	* lto.c (O_BINARY): Define.
	(lto_read_section_data): Open file in binary mode.
	* lto-elf.c (O_BINARY): Define.
	(lto_elf_file_open): Open file in binary mode. 

2010-01-08  Richard Guenther  <rguenther@suse.de>

	PR lto/42528
	* lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
	(lto_init): Do not init char_type_node in a standard way
	but according to flag_signed_char.

2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/41564
	* lto.c (DUMPBASE_SUFFIX): New.
	(lto_execute_ltrans): Append a sequence number to -dumpbase
	for LTRANS.

2010-01-02  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/42580
	* lto-elf.c (lto_elf_file_open): Stop if the command line
	option file is missing.

2009-12-15  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_field_decl): Fixup DECL_FIELD_OFFSET.
	(lto_post_options): Do not disable debuginfo.

2009-12-14  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>

	* Make-lang.in ($(LTO_EXE)): Use $(LINKER).

2009-12-11  Richard Guenther  <rguenther@suse.de>

	PR lto/42037
	* lto.c (lto_resolution_read): Properly grow the vector.

2009-12-11  Richard Guenther  <rguenther@suse.de>

	PR lto/41915
	* lto-lang.c (lto_init_options): Initialize flag_complex_method
	to the C99 default.  Do not set flag_unit_at_a_time.

2009-11-28  Jakub Jelinek  <jakub@redhat.com>

	* lto-lang.c (handle_nonnull_attribute): Remove unused attr_arg_num
	variable.

2009-11-19  Rafael Avila de Espindola  <espindola@google.com>

	PR bootstrap/42096
	* lto-elf.c (lto_elf_file_open): Use lto_parse_hex.
	* lto.c (lto_parse_hex): New.
	(lto_resolution_read): Use lto_parse_hex.
	* lto.h (lto_parse_hex): New.

2009-11-17  Rafael Avila de Espindola  <espindola@google.com>

	* lto-elf.c (lto_file_init): Add offset argument.
	(lto_elf_file_open): Record the offset.
	* lto.c (lto_resolution_read): Change file_name into a lto_file
	argument. Check offsets.
	(lto_file_read): Update call to lto_resolution_read.
	* lto.h (lto_file_struct): Add the offset field.

2009-11-16  Rafael Avila de Espindola  <espindola@google.com>

	* lto-elf.c (lto_elf_file_open): Use strtoll to parse the offset.

2009-11-14  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Set also ipa_transforms_to_apply.

2009-11-12  Rafael Avila de Espindola  <espindola@google.com>

	* lang.opt (fresolution): Renamed from resolution.
	* lto-lang.c (lto_handle_option): Handle new option name.
	* lto.c (lto_resolution_read): Add more checks. Discard rest of line.

2009-11-04  Richard Guenther  <rguenther@suse.de>
            Rafael Avila de Espindola  <espindola@google.com>

	* lto-elf.c (lto_elf_build_section_table): Add the base offset.
	(lto_elf_file_open): Handle offsets in arguments name@offest.

2009-10-30  Richard Guenther  <rguenther@suse.de>

	PR lto/41858
	* lto.c (lto_file_read): Do not set file_data->fd.
	(lto_read_section_data): Use a single-entry file-descriptor cache.
	Do not check the result of xmalloc.
	(free_section_data): Do not use file_data->fd.
	(lto_read_all_file_options): Likewise.

2009-10-22  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_jump_functions): Remove.
	(lto_fixup_decls): Do not fixup jump functions.
	(read_cgraph_and_symbols): Schedule cgraph merging after
	summary reading.  Schedule type and decl fixup before
	summary reading.

2009-10-22  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_data_t): Remove free_list member.
	(lto_fixup_tree): Do not insert into free_list.
	(free_decl): Remove.
	(lto_fixup_decls): Remove free-list handling.

2009-10-22  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_fixup_jump_functions): New function.
	(lto_fixup_decls): Use it.

2009-10-16  Richard Guenther  <rguenther@suse.de>

	PR lto/41715
	* lto.c (lto_fixup_tree): Revert last change.

2009-10-14  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_fixup_tree): In case the prevailing decl is not
	compatible with the one we replace wrap it around a
	VIEW_CONVERT_EXPR.

2009-10-09  Richard Guenther  <rguenther@suse.de>

	PR lto/41635
	PR lto/41636
	* lto.c (read_cgraph_and_symbols): Do not assert we can open
	a file.
	* lto-elf.c (init_shdr##BITS): Fix i18n problems.
	(init_ehdr##BITS): Likewise.

2009-10-08  Joseph Myers  <joseph@codesourcery.com>

	* lto-elf.c (init_shdr##BITS, lto_elf_begin_section_with_type,
	init_ehdr##BITS, lto_elf_file_close): Remove trailing "." from
	diagnostics.
	* lto-lang.c (lto_post_options): Remove trailing "." from
	diagnostics.

2009-10-08  Richard Guenther  <rguenther@suse.de>

	* lto.c (read_cgraph_and_symbols): Free the gimple type merging
	hash tables.

2009-10-07  Joseph Myers  <joseph@codesourcery.com>

	* lto.c: Only include <sys/mman.h> if HAVE_MMAP_FILE.

2009-10-07  Jan Hubicka  <jh@suse.cz>

	* lto.c (read_cgraph_and_symbols): Mark functions neccesary only at
	ltrans stage; explain why this is needed and should not.

2009-10-05  Richard Guenther  <rguenther@suse.de>

	PR lto/41552
	PR lto/41487
	* lto.c (lto_read_decls): Do not register deferred decls.
	(read_cgraph_and_symbols): Delay symbol and cgraph merging
	until after reading the IPA summaries.

2009-10-02  Rafael Avila de Espindola  <espindola@google.com>

	* Make-lang.in (lto/lto-lang.o): Don't depend on lto/common.h.
	(lto-lang.c): Don't include lto/common.h.

2009-10-02  Rafael Avila de Espindola  <espindola@google.com>

	* Make-lang.in (LTO_OBJS): Remove lto/common.o.
	(lto/common.o): Remove.
	* common.c: Remove.
	* common.h (lto_kind_str): Remove.
	(lto_visibility_str): Remove.
	(lto_resolution_str): Make it static.

2009-10-01  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_read_decls): Add comment.
	Call internal_error instead of gcc_assert.
	(lto_resolution_read): Likewise.
	(lto_add_all_inlinees): Tidy.
	* Make-lang.in: Fix copyright boilerplate.
	(lto.pdf): New.
	(lto.install-pdf): New.
	* lto-tree.h: Fix copyright boilerplate.
	* lang-specs.h: Likewise.
	Remove ".lto" entry from compilers fragment.
	* lto-elf.c: Move inclusion of gelf.h after config.h.
	Tidy formatting everywhere.
	* lto.h: Fix copyright boilerplate.
	Tidy formatting everywhere.
	* common.c: Likewise.
	* config-lang.in: Likewise.
	* common.h: Likewise.
	* lto-lang.c: Likewise.

2009-10-01  Richard Guenther  <rguenther@suse.de>

	* lto.c (lto_read_section_data): Use plain lseek/read.

2009-10-01  Richard Guenther  <rguenther@suse.de>

	* lto.c (LTO_MMAP_IO): Define if we can mmap files and
	use sysconf to query the system page size.
	(lto_file_read): Implement fallback using stdio.
	(free_section_data): Likewise.

2009-09-29  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_init): Really fix call to
	build_common_builtin_nodes.

2009-09-29  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_init): Fix call to
	build_common_builtin_nodes.

2009-09-29  Richard Guenther  <rguenther@suse.de>

	PR lto/40754
	* lto-elf.c (init_shdr##BITS): Properly specify alignment
	in bytes.
	(first_data_block): New static variable.
	(lto_elf_append_data): Align the first data block in each
	section.

2009-09-28  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c: Tidy.  Remove stale FIXME lto markers.
	* lto.c (strip_extension): New.
	(get_filename_for_set): Call it.  Do not call make_cwd_temp_file.
	(lto_execute_ltrans): Tidy.
	Do not pass -fwpa nor -fltrans-* to LTRANS.
	* opts.c: Tidy formatting and remove stale FIXME lto markers.
	* tree.c (need_assembler_name_p): Call
	lang_hooks.decls.may_need_assembler_name_p if set.
	* varasm.c (default_binds_local_p_1): Remove check for
	flag_ltrans.
	* varpool.c (decide_is_variable_needed): Do not test for
	in_lto_p.

2009-09-22  Richard Guenther  <rguenther@suse.de>

	PR lto/39276
	* lto.c (lto_execute_ltrans): Perform ltrans phase manually.
	* Make-lang.in: Remove ltrans-driver stuff.
	* config-lang.in: Likewise.
	* lang.opt (fltrans-driver): Remove.
	* lto-lang.c (lto_init_options): Remove code initializing
	ltrans_driver.
	* ltrans-driver: Remove.

2009-09-21  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_define_builtins): Remove superfluous
	calls to targetm.init_builtins and build_common_builtin_nodes.
	(lto_init): Add targetm.arm_eabi_unwinder as parameter to
	build_common_builtin_nodes.
	* lto.c (lto_materialize_function): Do nothing if NODE is a
	clone.

2009-09-03  Diego Novillo  <dnovillo@google.com>

	* lto-elf.c (validate_file): Replace call to
	elf_getshstrndx with call to elf_getshdrstrndx.

2009-08-19  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (lto_init): Merge char_type_node with the
	appropriately signed variant.

2009-08-19  Richard Guenther  <rguenther@suse.de>

	PR lto/41071
	* lto.c (lto_fixup_common): Re-build the pointer-to chain part one.
	(lto_fixup_type): Re-build the pointer-to chain part two.

2009-08-19  Richard Guenther  <rguenther@suse.de>

	PR lto/41071
	* lto.c (lto_fixup_type): Re-build the type variant chain.

2009-08-19  Richard Guenther  <rguenther@suse.de>

	PR lto/41071
	* lto.c (lto_fixup_constructor): New function.
	(lto_fixup_tree): Replace all types.  Properly fixup
	constructors and constants.

2009-08-14  Richard Guenther  <rguenther@suse.de>

	* lto.c (read_cgraph_and_symbols): Exchange TREE_CHAIN use
	for DECL_LANG_SPECIFIC.

2009-08-13  Richard Guenther  <rguenther@suse.de>

	PR lto/41032
	* lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL.

2009-07-30  Richard Guenther  <rguenther@suse.de>

	PR lto/40903
	* lto.c (read_cgraph_and_symbols): After fixing up decls choose
	the largest decl for output and free TREE_CHAIN for further
	use.

2009-07-24  Diego Novillo  <dnovillo@google.com>

	* Make-lang.in: Add empty lto.install-plugin target.

2009-07-13  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_fixup_tree): Handle IMPORTED_DECL.

2009-07-11  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (lto_write_globals): Wrapup global decls.

2009-07-10  Richard Guenther  <rguenther@suse.de>

	* lto-lang.c (lto_init): Allocate one more location to make
	BUILTINS_LOCATION correct.

2009-07-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* lto.c (free_section_data): Cast computed_offset to caddr_t.

2009-07-06  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_fixup_type): Fixup TYPE_SIZE and
	TYPE_SIZE_UNIT.

2009-07-06  Diego Novillo  <dnovillo@google.com>

	* lto.c (preload_common_nodes): Remove.
	(lto_read_in_decl_state): Call lto_streamer_cache_get.
	(lto_read_decls): Call lto_data_in_create and
	lto_data_in_delete.
	(free_decl): Do not call ggc_free.
	(lto_main): Call lto_init_reader.
	* lto-lang.c (lto_type_for_size): Handle intTI_type_node.
	(lto_init): Initialize main_identifier_node if needed.
	Make ptrdiff_type_node be integer_type_node.

2009-06-19  Diego Novillo  <dnovillo@google.com>

	* lto.c: Remove code guarded by #ifdef LTO_STREAM_DEBUGGING.
	Remove code guarded by #ifdef GLOBAL_STREAMER_TRACE.
	Remove code guarded by #ifdef LOCAL_TRACE.

2009-06-18  Diego Novillo  <dnovillo@google.com>

	* lto.c: Update license to GPLv3.
	* lto-elf.c: Likewise.
	* common.c: Likewise.
	* lto-lang.c: Likewise.
	* lto.h: Remove superfluous include files.  Update all
	users.

2009-06-17  Diego Novillo  <dnovillo@google.com>

	* lto.c (read_cgraph_and_symbols): Call input_cgraph.

2009-06-02  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_1_to_1_map): Ignore nodes that have not been
	read in.
	(materialize_cgraph): Only materialize nodes that have a
	representation on file.

2009-06-01  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_handle_option): Hanlde OPT_Wabi.

2009-05-31  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_type_for_mode): Handle all the modes
	handled in c_common_type_for_mode.

2009-05-21  Diego Novillo  <dnovillo@google.com>

	* lto-elf.c: Always include <gelf.h>.
	* config-lang.in (target_libs): Remove.
	(build_by_default): Set to no.

2009-05-15  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_materialize_function): Assert that DECL is
	not a builtin.
	(materialize_cgraph): Don't try to materialize builtin
	functions.
	* lto-section-out.c (write_symbol_vec): Do not write
	builtin functions.

2009-05-13  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define.

2009-05-07  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_resolution_read): Add type casts for C++ warnings.
	(LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE): Define.
	(lto_fixup_type): Call it for TYPE_POINTER_TO,
	TYPE_REFERENCE_TO, TYPE_CONTEXT and TYPE_CANONICAL.
	(lto_fixup_tree): Call gimple_register_type when *TP is a
	type.
	(lto_main): Call bitmap_obstack_initialize.

2009-04-22  Diego Novillo  <dnovillo@google.com>

	* lto.c (free_section_data): Tidy.
	(lto_1_to_1_map): Tidy.
	(lto_add_all_inlinees): Tidy.
	(prefix_name_with_star): New.
	(get_filename_for_set): New.
	(lto_wpa_write_files): Call cgraph_node_set_needs_ltrans_p
	to determine what cgraph node sets to write.
	Call get_filename_for_set to compute temporary file
	names.
	(lto_execute_ltrans): Do not execute LTRANS on files with
	names that start with '*'.
	Move logic to execute LTRANS together so that LTRANS is
	invoked only if there are any files to compile.
	(do_whole_program_analysis): Only remove output files
	that do not start with '*'.

2009-04-06  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_post_options): Set flag_excess_precision_cmdline.
	* lto.c (read_cgraph_and_symbols): Set cgraph_function_flags_ready.
	(lto_add_all_inlinees): Tidy.

2009-03-26  Diego Novillo  <dnovillo@google.com>

	* lto.c: Include gimple.h.
	(lto_read_in_decl_state): Call gimple_register_type for
	every type in every stream.
	(lto_fixup_common): Call gimple_register_type if T has a
	type.
	(do_whole_program_analysis): Call print_lto_report.
	(lto_main): Call print_lto_report after cgraph_optimize.
	* Make-lang.in (lto.o): Add dependency on GIMPLE_H.

2009-03-24  Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (lto-lang.o): Add dependency on TARGET_H and EXPR_H.
	(lto.o): Add dependency on GIMPLE_H.

2009-03-10  Simon Baldwin  <simonb@google.com>

	* lto.c (lto_read_all_file_options): Close any open file descriptor
	contained in file_data before freeing.

2009-02-24  Rafael Avila de Espindola  <espindola@google.com>

	* lto.c (lto_add_inline_clones): Don't add the master clone. Check
	for a decl in the original bitmap, not a node.
	(lto_add_all_inlinees): Remove original nodes that are not needed.
	(lto_scan_statics_in_cgraph_node): Don't care if the node is the master.

2009-02-24  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_materialize_function): Update
	lto_stats.num_function_bodies.
	(get_section_data): Initialize *LEN to 0.
	(lto_1_to_1_map): Update lto_stats.num_cgraph_partitions.
	(lto_wpa_write_files): Update lto_stats.num_cgraph_nodes.
	Update lto_stats.num_output_files.
	(read_cgraph_and_symbols): Update lto_stats.num_input_files.
	(materialize_cgraph): Update lto_stats.num_input_cgraph_nodes.
	(lto_main): Initialize lto_stats.
	If flag_lto_report is set, call print_lto_report.

2009-02-19  Diego Novillo  <dnovillo@google.com>

	Revert

	2009-02-19  Rafael Avila de Espindola  <espindola@google.com>

		* lto.c (lto_add_inline_clones): Don't add the
		master clone. Check for a decl in the original
		bitmap, not a node.
		(lto_add_all_inlinees): Remove original nodes
		that are not needed.
		(lto_scan_statics_in_cgraph_node): Don't care if
		the node is the master.
		(lto_promote_cross_file_statics): Use a new
		context.seen_node_decls for each set

2009-02-19  Rafael Avila de Espindola  <espindola@google.com>

	* lto.c (lto_add_inline_clones): Don't add the master clone. Check
	for a decl in the original bitmap, not a node.
	(lto_add_all_inlinees): Remove original nodes that are not needed.
	(lto_scan_statics_in_cgraph_node): Don't care if the node is the master.
	(lto_promote_cross_file_statics): Use a new context.seen_node_decls
	for each set

2009-02-18  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_wpa_write_files): Use timers TV_WHOPR_WPA
	and TV_WHOPR_WPA_IO.
	(lto_execute_ltrans): Use timer TV_WHOPR_WPA_LTRANS_EXEC.
	(read_cgraph_and_symbols): Use timer TV_IPA_LTO_DECL_IO.
	(materialize_cgraph): Use timer TV_IPA_LTO_GIMPLE_IO.
	Use timer TV_WHOPR_WPA or TV_WHOPR_LTRANS or TV_LTO
	depending on command line flags.
	(do_whole_program_analysis): Use timer TV_WHOPR_WPA.
	(lto_main): Remove timer uses.

2009-02-18  Rafael Avila de Espindola  <espindola@google.com>

	* lto.c (lto_materialize_function): Don't set DECL_EXTERN to 0.
	(lto_wpa_write_files): Update calls to renamed functions.

2009-02-17  Diego Novillo  <dnovillo@google.com>

	PR 39203
	* lto-lang.c (lto_post_options): Disable -fwhole-program
	when running LTRANS.

2009-02-10  Diego Novillo  <dnovillo@google.com>

	* lto.c (read_cgraph_and_symbols): Fix comment.

2009-02-10  Diego Novillo  <dnovillo@google.com>

	* lto.c (read_cgraph_and_symbols): Read options from all
	IL files.

2009-02-10  Diego Novillo  <dnovillo@google.com>

	* lto.c (read_cgraph_and_symbols): Factor out of lto_main.
	(materialize_cgraph): Likewise.
	(do_whole_program_analysis): Likewise.
	(lto_main): Call read_cgraph_and_symbols,
	materialize_cgraph and do_whole_program_analysis.

2009-02-10  Simon Baldwin  <simonb@google.com>

	* lto.c: Include lto-opts.h.
	* (lto_main): Clear file options at loop start, read any saved
	options from the first file handled, and re-issue options.
	* Makefile.in (lto.o): Add dependency on lto-opts.h.

2009-02-02  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_main): Stop LTO_TIMER and use
	TV_WHOPR_WPA_LTRANS_EXEC when launching LTRANS.

2009-01-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/38995
	* lto-elf.c (init_shdr##BITS): Set the sh_addralign field
	to POINTER_SIZE.

2009-01-29  Ramana Radhakrishnan  <ramana.r@gmail.com>

	* Make-lang.in (LTO_EXE): Link with all 
	BACKENDLIBS and not only GMPLIBS

2009-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/38992
	* lto-elf.c: Include gelf.h instead of libelf.h.
	(lto_elf_file_close): Replace elfx_update_shstrndx with
	gelf_getehdr, elf_getscn, gelf_getshdr, gelf_update_shdr and
	gelf_update_ehdr.

2009-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/38996
	* lto-elf.c (DEFINE_INIT_EHDR): Initialize e_version.

2009-01-26  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Update.

2009-01-26  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_types_compatible_p): Move to gimple.c
	and rename into gimple_types_compatible_p.

2009-01-12  Rafael Avila de Espindola  <espindola@google.com>

	* lto-lang.c (lang_hooks): Remove the const qualifier.

2009-01-06  Diego Novillo  <dnovillo@google.com>

	* ltrans-driver: Mark 'all' target as phony.

2008-12-31  Diego Novillo  <dnovillo@google.com>

	* ltrans-driver: Execute a NOP action for target 'all'.

2008-12-19  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_1_to_1_map): Tidy.

2008-12-19  Diego Novillo  <dnovillo@google.com>

	* lto-elf.c (lto_elf_file_open): When FILENAME cannot
	be opened, show its name.
	* ltrans-driver: If $verbose is set, do not use parallelism.

2008-12-17  Rafael Avila de Espindola  <espindola@google.com>

	* lto.c (lto_fixup_function): New.
	(lto_fixup_tree): Call lto_fixup_function.

2008-12-14  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_1_to_1_map): Create a cgraph node set for any global
	variables if there is no function.

2008-12-10  Simon Baldwin  <simonb@google.com>

	* ltrans-driver: Always run make in silent mode, to avoid make's
	trace on stdout interfering with lto-wrapper output.

2008-12-10  Doug Kwan  <dougkwan@google.com>

	* lto.c	(lto_add_inline_clones): Do not force master clones of
	inlined functions already in SET to be static inline.

2008-12-04  Doug Kwan  <dougkwan@google.com>

	* lto.c (globalize_context_t): New type to store states in
	globalization of cross-file statics.
	(globalize_cross_file_statics): New.
	(lto_scan_statics_in_ref_table): Walk tree to look for reachable
	static decls that need to be fixed up.
	(lto_scan_statics_in_cgraph_node): Change call interface to use
	a globalize_context_t CONTEXT for all states used.
	(lto_scan_statics_in_remaining_global_vars): New.
	(lto_promote_cross_file_statics): Use new call interface of
	LTO_SCAN_STATICS_IN_CGRAPH_NODE.  Handle remaining externally
	visible vars in the last set.

2008-12-03  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_fixup_tree): Do not emit an error when
	PREVAILING throw but T doesn't.

2008-12-02  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_scan_statics_in_ref_table): New function factored out
	from code in ...
	(lto_scan_statics_in_cgraph_node): Handle both file-scope static
	variables and functions.
	(lto_promote_cross_file_statics): Rename bitmaps to SEEN_DECLS
	and GLOBAL_DECLS from SEEN_VARS and GLOBAL_VARS.

2008-11-29  Diego Novillo  <dnovillo@google.com>

	* lto.c: Include timevar.h.
	(lto_materialize_function): Tidy.  Add comments.
	(lto_wpa_write_files): Tidy.
	(lto_execute_ltrans): Tidy.
	(lto_main): Add local variable LTO_TIMER.  Initialize it
	to one of TV_WHOPR_WPA, TV_WHOPR_LTRANS or TV_LTO.
	Start and stop the timer.
	Tidy comments.
	* Make-lang.in (lto.o): Add dependency on timevar.h.
	* ltrans-driver: React to -v and -save-temps.
	Use simple heuristic to determine how much parallelism to
	use when executing make.

2008-11-12  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_bitmap_obstack): Remove var.
	(lto_materialize_function): Do nothing instead of marking function
	body in file if flag_wpa is true.
	(lto_add_all_inlinees): Use bitmap functions in lto-utils.c.
	(lto_scan_statics_in_cgraph_node): New function.
	(lto_promote_cross_file_statics): Same.
	(lto_wpa_write_files): Call lto_promote_cross_file_statics.
	Use bitmap functions in lto-utils.c.  Remove unsued label OUT.
	* Make-lang.in (lto/lto.o): Add lto-utils.h to dependency list.

2008-11-09  Diego Novillo  <dnovillo@google.com>

	* lto/lto.c (lto_fixup_tree): Change error message locus
	information to include location of mismatching
	declaration.
	Use TREE_NO_WARNING to avoid repeated messages.
	(lto_main): If lto_fixup_decls emitted any errors, exit.
	* lto/lto-lang.c: Don't include libfuncs.h and except.h
	(lto_init_options): Don't enable exceptions by default.
	(lto_eh_runtime_type): Move to lto-function-in.c
	(lto_init_eh): Likewise.
	(lto_init): Don't call lto_init_eh.
	* lto/Make-lang.in (lto-lang.o): Remove dependency on
	libfuncs.h and except.h.

2008-10-30  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_read_decls): Declare debug_main only if
	LTO_STREAM_DEBUGGING is enabled.

2008-10-30  Simon Baldwin  <simonb@google.com>

	* lto.c (lto_wpa_write_files): Create intermediate files with
	make_cwd_temp_file().
	(lto_maybe_unlink): New.  Delete intermediate WPA files unless
	WPA_SAVE_LTRANS is set.
	(lto_main): Call lto_maybe_unlink() for intermediate WPA files.
	* ltrans-driver: Do not strip directory from output files.

2008-10-29  Doug Kwan  <dougkwan@google.com>

	* lto.c (free_decl): Call lto_symtab_clear_resolution when freeing
	DECL.
	* Make-lang.in (LTO_OBJS): Remove lto/lto-symtab.o
	(lto/lto-symtab.o): Remove rule.
	* lto-tree.h (struct lang_identifier): Remove LTO specific fields.
	(struct lang_decl): Remove RESOLUTION and add DUMMY in struct.
	(LANG_IDENTIFIER_CAST, LTO_IDENTIFIER_DECL, LTO_DECL_RESOLUTION):
	Remove macros.
	lto-symtab.c (File): Move up one level.
	lto-lang.c (cgraph.h): Remove include.
	(input_overwrite_node, input_node, input_edge, input_cgraph_1,
	input_cgraph): Move to lto-cgraph.c in gcc directory above.
	(LANG_HOOKS_INPUT_CGRAPH): Remove use of macro.

2008-10-24 Rafael Espindola  <espindola@google.com>

	* lto-function-in.c (get_resolution): Return LDPR_PREEMPTED_IR for
	non prevailing weak symbols.

2008-10-24 Rafael Espindola  <espindola@google.com>

	* lto-lang.c (input_cgraph_1): Iterate over nodes, not cgraph_nodes.

2008-10-24 Rafael Espindola  <espindola@google.com>

	* lto-lang.c (input_node): Avoid casts from pointers to ints of
	different types.

2008-10-23  Simon Baldwin  <simonb@google.com>

	* lto-lang.c (input_node): Save the node reference, rather than the
	node pointer, in node->inlined_to.
	(input_cgraph_1): Convert node references into node pointers.

2008-10-22  Diego Novillo  <dnovillo@google.com>
	    Rafael Espindola  <espindola@google.com>

	* lto.c (lto_resolution_read): Tidy.
	* lto-symtab.c (lto_symtab_prevailing_decl): Do not
	abort if RET is NULL.

2008-10-22  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_fixup_tree): Check for NOTHROW conflict only if
	exceptions flag is given.
	* lto-lang.c: (lto_init_options) Set default exceptions flag.
	(lto_init_eh): Remove exceptions flag initialization.
	(lto_init): Only call lto_init_eh if exceptions flag is set. 

2008-10-21  Diego Novillo  <dnovillo@google.com>

	* lto.c: Tidy some formatting.
	* lto.h: Likewise.

2008-10-21  Simon Baldwin  <simonb@google.com>

	* lto-symtab.c: (lto_same_type_p): Types cannot be equal if one of
	them is NULL (but not the other).

2008-10-17  Diego Novillo  <dnovillo@google.com>

	* ltrans-driver: Divert output from make to a temporary file.
	Show it if the call to make failed.

2008-10-15  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_wpa_write_files): Reformat do-while loop.
	Do not print TEMP_FILENAME
	* ltrans-driver: Call make with -s.

2008-10-15  Diego Novillo  <dnovillo@google.com>

	* lto-symtab.c (lto_symtab_merge_decl): Do not force
	TREE_STATIC on global symbols.

2008-10-14  Ollie Wild  <aaw@google.com>

	* Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Remove.
	(LTRANS_DRIVER_EXE): Add.
	(lto.all.cross): Add LTRANS_DRIVER_EXE.
	(lto.all.encap): Add LTRANS_DRIVER_EXE.
	(lto.install.common): Remove ltrans-driver.
	(lto.mostlyclean): Add LTRANS_DRIVER_EXE.
	(LTRANS_DRIVER_EXE): New build rule.
	* config-lang.in (compilers): Add ltrans-driver.

2008-10-14  Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): Disable transformation
	of program name.

2008-10-13  Ollie Wild  <aaw@google.com>

	* lang-spec.h (@lto): Replace lto1_options with cc1_options.
	* lto.c (lto_execute_ltrans): Add "-fno-wpa -fltrans -xlto" to CFLAGS.
	* ltrans-driver (LTRANS_FLAGS): Remove.

2008-10-08  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_fixup_tree): Remove ATTRIBUTE_UNUSED from DATA.
	Handle new tree codes RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE
	and TREE_BINFO.  Also move code handling FUNCTION_DECL and VAR_DECL
	from lto_fixup_state to here.
	(lto_fixup_state): Take an lto_fixup_data_t object DATA instead of
	just a free-list.  Fix up types also.  Move decl merging code to
	lto_fixup_tree.
	(lto_fixup_state_aux): Change AUX to point to an lto_fixup_data_t
	object.
	(lto_fixup_decls): Use another pointer set to avoid multiple
	walking of nodes except for DECLs to be replaced.  Pass an
	lto_fixup_data_t object to tree-walker.

2008-10-08 Rafael Espindola  <espindola@google.com>

	* lto-symtab.c (lto_symtab_set_resolution): New.
	(lto_symtab_merge_decl): Use lto_symtab_set_resolution and
	lto_symtab_get_resolution.
	(lto_symtab_prevailing_decl): Return decl for non public decls.
	(lto_symtab_get_resolution): New.
	* lto.c (lto_fixup_tree, lto_fixup_state): Remove unecessary checks.

2008-10-06 Rafael Espindola  <espindola@google.com>

	* lto-lang.c: Include cgraph.h.
	(input_overwrite_node, input_node, input_edge, input_cgraph_1,
	input_cgraph): Moved from lto-cgraph.c.
	(LANG_HOOKS_INPUT_CGRAPH): New.

2008-10-03 Rafael Espindola  <espindola@google.com>

	* lto.c (lto_fixup_tree, lto_fixup_state): Fix the FIXME.

2008-10-03 Rafael Espindola  <espindola@google.com>

	* lto-symtab.c (lto_symtab_overwrite_decl): Remove. Remove all calls.
	(lto_symtab_merge_decl): Update  LTO_IDENTIFIER_DECL the reflect the
	prevailing definition. Don't mark TREE_NOTHROW differences.
	* lto.c (lto_fixup_tree): New.
	(lto_fixup_state): New.
	(lto_fixup_state_aux): New.
	(free_decl): New.
	(lto_fixup_decls): New.
	(lto_main): Call lto_fixup_decls.

2008-10-02  Ollie Wild  <aaw@google.com>

	* lang.opt (fltrans): Moved from common.opt.  Remove RejectNegative
	and Init.
	(fwpa): Moved from common.opt.  Remove RejectNegative and Init.
	* lto-lang.c (lto_post_options): Add validation and fixups for
	-fltrans and -fwpa.

2008-10-02 Rafael Espindola  <espindola@google.com>

	* lto-symtab.c (lto_symtab_merge_var, lto_symtab_merge_fn,
	lto_symtab_merge_decl): Return void.
	(lto_symtab_prevailing_decl): New.

2008-09-30 Rafael Espindola  <espindola@google.com>

	* lto-symtab.c (lto_symtab_compatible): Remove the check for already
	defined symbols.
	(lto_symtab_overwrite_decl): Copy LTO_DECL_RESOLUTION.
	(lto_symtab_merge_decl): Store symbol resolution in LTO_DECL_RESOLUTION.
	Check for already defined symbols.
	* lto-tree.h (lang_decl): Remove dummy and add resolution fields.
	(LTO_IDENTIFIER_RESOLUTION): Remove.
	(LTO_DECL_RESOLUTION): New.

2008-09-30 Rafael Espindola  <espindola@google.com>

	* lto.c (lto_read_decls): Use new input_tree signature.

2008-09-26  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_main): Call lto_fixup_nothrow_decls to fix up function
	bodies affected by exception attribute merging of DECLs.
	* lto-symtab.c (lto_symtab_merge_decl): Handle exception attribute
	merging. 

2008-09-25  Rafael Espindola  <espindola@google.com>

	* Make-lang.in (PLUGIN_API_H, LTO_TREE_H): New.
	(lto/lto-lang.o, lto/lto.o, lto/lto-symtab.o) Use LTO_TREE_H.
	* lto-symtab.c (lto_symtab_compatible): New.
	(lto_symtab_overwrite_decl): New.
	(lto_symtab_merge_decl): Refactor to use the above functions
	and the resolution from lang_identifier.
	* lto-tree.h: Include plugin-api.h.
	(lang_identifier): Add resolution.
	(LTO_IDENTIFIER_RESOLUTION): New.

2008-09-25  Ollie Wild  <aaw@google.com>

	* lang.opt (fltrans-output-list=): New option.
	* lto.c (lto_execute_ltrans): Output file names to ltrans_output_list.

2008-09-25 Rafael Espindola  <espindola@google.com>

	* lto.c (lto_resolution_read): Initialize ret;

2008-09-24  Ollie Wild  <aaw@google.com>

	* lto.c (sys/mman.h): Move include.
	(lto_wpa_write_files): Return a list of written files.
	(lto_execute_ltrans): New function.
	(lto_main): Call lto_execute_ltrans.
	(ltrans-driver): New file.
	* lto-lang.c (DEFAULT_LTRANS_DRIVER): New macro.
	(DEAULT_LTRANS_DRIVER_LEN): New macro.
	(lto_init_options): Initialize ltrans_driver.
	(lto_handle_option): Fix incorrect default output value.
	* lang.opt (fltrans-driver=): New option.
	* Make-lang.in (LTRANS_DRIVER_INSTALL_NAME): New variable.
	(lto.install-common): Add lto/ltrans-driver.

2008-09-24 Rafael Espindola  <espindola@google.com>

	* Make-lang.in (LTO_OBJS): Add lto/common.o.
	(lto/lto.o): Depend on lto/common.h.
	(lto/common.o): New.
	* lang.opt (resolution): New.
	* lto-lang.c (resolution_file_name): New.
	(lto_handle_option): Handle OPT_resolution.
	* lto-symtab.c (lto_symtab_merge_decl): Add a resolution argument.
	(lto_symtab_merge_var,lto_symtab_merge_fn): Add a resolution argument.
	pass it to lto_symtab_merge_decl.
	* lto.c: Include common.h.
	(lto_read_decls): Add resolutions and resolutions_size arguments.
	Initialize data_in.globals_resolution and
	data_in.globals_resolution_size.
	(index_and_symbol_resolution): New.
	(lto_resolution_read): New.
	(lto_file_read): Add argument resolution_file.
	Read resolution.
	* lto.h (resolution_file_name): New.

2008-09-23 Rafael Espindola  <espindola@google.com>

	* common.c: Update description.
	* common.h: Update description.

2008-09-23 Rafael Espindola  <espindola@google.com>

	* common.c: Moved from lto-plugin.
	* common.h: Moved from lto-plugin.

2008-09-22  Doug Kwan  <dougkwan@google.com>

	* lto.c	(VEC(bitmap,heap)): Declare.
	(lto_materialize_function): Handle WAP mode specially.
	(lto_add_inline_clones): New.
	(lto_add_all_inlinees): Changle algorithm and to use bitmaps.  Also
	return a bitmap of inlined decls.
	(lto_wpa_write_files): Handle all DECLs brought in by inlining.
	(lto_main): Call reset_inline_failed to reset inlining states.
    	Check call-graph after WPA inlining.
	* lto-lang.c (lto_init): Do not clear flag_generate_lto
	unconditionally.

2008-09-19  Doug Kwan  <dougkwan@google.com>

	lto.c (lto_main): Remove unsued wrapper code.
	lang-specs.h (@lto): Use lto1_options instead of cc1_options.

2008-09-19  Rafael Espindola  <espindola@google.com>

	* lto-symtab.c: Include lto-tree-in.h.
	* lto-tree.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove.
	* lto.h (lto_symtab_merge_var, lto_symtab_merge_fn): Remove
	* Make-lang.in (lto/lto-symtab.o): Add lto-tree-in.h.

2008-09-17  Paolo Bonzini  <bonzini@gnu.org>
	    Rafael Avila de Espindola  <espindola@google.com>

	* lto-lang.c (COMPOUND_LITERAL_EXPR_DECL_STMT,
	COMPOUND_LITERAL_EXPR_DECL): Remove.
	(emit_local_var): Remove.
	(lto_expand_expr): Remove.
	(lto_staticp): Remove.
	(LANG_HOOKS_EXPAND_EXPR): Remove.
	(LANG_HOOKS_STATICP): Remove.

2008-09-11  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c: Include except.h and libfuncs.h.
	(lto_init_eh): New.
	(lto_init): Call it.
	Set flag_generate_lto to 0.
	* Make-lang.in (lto-lang.o): Add dependency on except.h
	and libfuncs.h.

2008-09-09  Bill Maddox  <maddox@google.com>

	* lto-lang.c: Include header file expr.h.
	(COMPOUND_LITERAL_EXPR_DECL_STMT,
	COMPOUND_LITERAL_EXPR_DECL): Copied from c-common.h.
	(emit_local_var):  Copied from c-semantics.c.
	(lto_expand_expr, lto_staticp): Copied from c_expand_expr
	and c_staticp in c-common.c.
	(LANG_HOOKS_EXPAND_EXPR,LANG_HOOKS_STATICP):  Redefined.

2008-09-08  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (lto_global_bindings_p): Return 1 during
	IPA passes.

2008-09-07  Diego Novillo  <dnovillo@google.com>

	* lto.c: Tidy formatting.

2008-08-04  Bill Maddox  <maddox@google.com>

	* lto-symtab.c (lto_symtab_merge_decl): Add comment.
	
2008-09-03  Doug Kwan  <dougkwan@google.com>

	lto.c (lto_add_all_inlinees): Reset FAILED_REASON of edges to
	CIF_OK instead of NULL.

2008-09-02  Diego Novillo  <dnovillo@google.com>
	    Simon Baldwin  <simonb@google.com>

	* lto-lang.c (lto_type_for_size): Rewrite.  Adapt from
	c_common_type_for_size.
	(lto_type_for_mode): Remove ATTRIBUTE_UNUSED markers.
	(lto_init): Call linemap_add.
	(signed_and_unsigned_types): Remove.

2008-08-29  Diego Novillo  <dnovillo@google.com>

	* lto-lang.c (handle_noreturn_attribute): New local function.
	(handle_const_attribute): New local function.
	(handle_malloc_attribute): New local function.
	(handle_pure_attribute): New local function.
	(handle_novops_attribute): New local function.
	(handle_nonnull_attribute): New local function.
	(handle_nothrow_attribute): New local function.
	(handle_sentinel_attribute): New local function.
	(handle_type_generic_attribute): New local function.
	(handle_format_attribute): New local function.
	(handle_format_arg_attribute): New local function.
	(lto_attribute_table): Declare.
	(lto_format_attribute_table): Declare.
	(lto_init_attributes): New local function.
	(lto_define_builtins): Call it.
	Call targetm.init_builtins and build_common_builtin_nodes.
	(LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
	(LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.

2008-08-28  Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (lto-lang.o): Replace tree-gimple.h with
	$(GIMPLE_H).
	(lto-symtab.o): Add dependency on $(GIMPLE_H).
	* lto-lang.c: Include gimple.h instead of tree-gimple.h.
	* lto-symtab.c: Include gimple.h.
	* lto-tree.h (chain_next): Replace GENERIC_NEXT with
	TREE_CHAIN.

2008-08-27  Doug Kwan  <dougkwan@google.com>

	* lto.c (vec.h, bitmap.h, pointer-set.h, ipa-prop.h, ggc.h,
	gt-lto-lto.h): New includes.
	(lto_materialize_function): Do not read in function body in WPA mode.
	Format a line to fit in 80 columns.
	(lto_cgraph_node_sets): New garbage collected variable.
	(lto_1_to_1_map, lto_add_all_inlinees, lto_wpa_write_files):
	New functions.
	(lto_main): Initialize bitmap obstack.  Add code to handle WPA mode.
	* Make-lang.in (LTO_H): Replace filename lto-section-in.h with 
	variable LTO_SECTION_IN_H.
	(lto/lto.o): Include gt-lto-lto-c.h ggc.h ,VEC_H, BITMAP_H,
	pointer-set.h and IPA_PROP_H. Also replace filename lto-section-in.h
	with variable LTO_SECTION_IN_H.
	* config-lang.in (gtfiles): Add lto/lto.c.
	* lto-symtab.c (lto_symtab_merge_decl): Set DECL_CONTEXT of
	merged DECL_RESULT correctly.

2008-08-26  Bill Maddox  <maddox@google.com>

	* lto-lang.c  Include tree-gimple.h.
	(lto_mark_addressable): Call mark_addressable rather than
	asserting.
	(lto_post_options): Suppress debug info generation.
	* Make-lang.in: Add dependency of lto-lang.o on tree-gimple.h.
	
2008-08-25  Bill Maddox <maddox@google.com>

	* lto-symtab.c (lto_symtab_merge_decl): Remove a suspect
	assertion and leave an explanatory comment in its place.
	
2008-08-21  Doug Kwan  <dougkwan@google.com>

	* lto.c (preload_common_nodes): Call lto_get_common_nodes to get a list
	of common nodes instead of computing locallly.
	(lto_read_in_decl_state): New.
	(lto_read_decls): Change code for udpate in struct lto_decl_header.
	Read global and per-function in-decl states.
	* Make-lang.in (LTO_H): Update dependency.
	(lto/lto.o): Same.
	(lto-symtab.c): Merge	(revision 139039)
	* lto-symtab.c (lto_symtab_merge_decl): Merge DECL_RESULT.

2008-08-21  Rafael Espindola  <espindola@google.com>

	* config-lang.in (target_libs): New.

2008-08-20  Bill Maddox  <maddox@google.com>

	* lto.c (current_lto_file): Remove GTY marker from static
	variable.  Remove include of file gt-lto-lto.h.
	* Make-lang.in: Remove dependency of lto/lto.o on
	gt-lto-lto.h.
	* lto-elf.c (lto_file_close): Removed.
	(lto_elf_file_open): Use XCNEW instead of GGC_CNEW to
	allocate lto_elf_file object.
	(lto_elf_file_close): Free lto_elf_file object after close.
	* lto.h (struct lto_file_struct): Remove GTY marker.
	* config-lang.in: Remove lto/lto.h and lto/lto.c from
	gtfiles.
	
2008-08-20  Bill Maddox  <maddox@google.com>

	* lto.c (lto_read_decls): Provide dummy argument to input_tree
	to conform to its new signature.
	* lto-symtab.c (lto_symtab_merge_decl): Do not invoke ggc_free
	on discarded node here, now called in global_vector_fixup.
	
2008-08-09  Bill Maddox  <maddox@google.com>

	* lto.c (preload_common_nodes): Verify that fileptr_type_node
	has not been set to a front-end-specific value.
	
2008-08-05  Doug Kwan  <dougkwan@google.com>
	
	* Make-lang.in (lto-symtab.o): Add missing dependencies to fix
	build breakage.

2008-07-30  Bill Maddox  <maddox@google.com>

	* lto.c (lto_materialize_function): Call lto_original_decl_name.
	Remove obsolete comments.
	(lto_read_decls): Remove initialization of deleted field data_in.global.
	Tidy up comments.
	(lto_main): Remove redundant initialization of section_hash_table.
	* lto-elf.c: Removed obsolete comments.
	* lto.h: Tidy up comments.
	* lto-symtab.c (lto_least_common_multiple): New function.
	(lto_symtab_merge_decl): Merge variable alignments in some cases.
	Tidy up comments.

2008-07-25  Diego Novillo  <dnovillo@google.com>
	    Bill Maddox  <maddox@google.com>

	* lto.c: Re-order include files.
	Include lto-section-out.h.
	(preload_common_nodes): Add debugging output.
	Add new local INDEX_TABLE.
	Call preload_common_node.
	* Make-lang.in (lto.o): Add dependency on lto-section-out.h

2008-07-13  Bill Maddox  <maddox@google.com>

	* lto.c (lto_read_decls): Cast pointer to const char * to avoid
	unwanted scaling during pointer addition.

2008-07-11  Bill Maddox  <maddox@google.com>
	    Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_read_decls): Fix C++ compatibility warnings.
	Make code const-correct.
	(lto_file_read): Fix C++ compatibility warnings.
	(lto_read_section_data):  Fix C++ compatibility warnings.
	(lto_get_section_data): Use CONST_CAST to avoid warning when
	const pointer passed to free.
	* lto-elf.c (lto_elf_build_section_table): Fix C++
	compatibility warnings.
	(lto_elf_append_data):  Fix C++ compatibility warnings.  Use CONST_CAST
	to avoid warning assigning const pointer to d_buf field of Elf_Data.
	(lto_get_current_out_file):  Fix C++ compatibility warnings.

2008-07-11  Diego Novillo  <dnovillo@google.com>

	* Make-lang.in (lto-warn): Define.

2008-07-03  Simon Baldwin  <simonb@google.com>

	* lto.c (lto_read_decls): Wrapped debug-only data items within #ifdef
	LTO_STREAM_DEBUGGING.

2008-06-27  Ollie Wild  <aaw@google.com>

	* lto-elf.c (lto-section-out.h): New include.
	(struct lto_elf_file): Remove bits member.  Add scn, shstrtab_stream,
	and data members.
	(cached_file_attrs): New static variable.
	(lto_elf_get_shdr, lto_elf_free_shdr): Remove elf_file parameter.
	Use cached_file_attrs for checking bits.
	(lto_elf_build_section_table): Remove elf_file argument from
	lto_elf_get_shdr and lto_elf_free_shdr calls.
	(DEFINE_INIT_SHDR): New macro.
	(init_shdr32, init_shdr64): New functions defined via the
	DEFINE_INIT_SHDR macro.
	(lto_elf_begin_section_with_type): New function.
	(lto_elf_begin_section): New function.
	(lto_elf_append_data): New function.
	(lto_elf_end_section): New function.
	(DEFINE_VALIDATE_EHDR): New macro.
	(validate_ehdr32, validate_ehdr64): New functions defined via the
	DEFINE_VALIDATE_EHDR macro.
	(validate_file): New function.
	(DEFINE_INIT_EHDR): New macro.
	(init_ehdr32, init_ehdr64): New functions defined via the
	DEFINE_INIT_EHDR macro.
	(init_ehdr): New function.
	(lto_elf_file_open): Add support for writable files.  Move some
	validation logic to validate_file.
	(lto_elf_file_close): Add support for writable files.  Write file data
	and free data blocks.
	(current_out_file): New static variable.
	(lto_set_current_out_file): New function.
	(lto_get_current_out_file): New function.
	* lto.c (lto_main): Add writable argument to lto_elf_file_open calls.
	Add temporary initialization for testing ELF serialization.
	* lto.h (lto-section-out.h): New include.
	(struct lto_file_struct): Slight modification to comment.
	(lto_elf_file_open): Add writable parameter.
	(lto_elf_begin_section): New function declaration.
	(lto_elf_append_data): New function declaration.
	(lto_elf_end_section): New function declaration.
	(lto_set_current_out_file, lto_get_current_out_file): New function
	declarations.
	* lto-lang.c (LANG_HOOKS_BEGIN_SECTION): Set as lto_elf_begin_section.
	(LANG_HOOKS_APPEND_DATA): Set as lto_elf_append_data.
	(LANG_HOOKS_END_SECTION): Set as lto_elf_end_section.
	* Make-lang.in (LTO_H): Add lto-section-out.h.

2008-06-12  Ollie Wild  <aaw@google.com>

	* lto.h (struct lto_file_vtable_struct): Remove.
	(struct lto_file_struct): Remove vtable member.
	* lto-elf.c (lto_file_init): Remove vtable argument.
	(lto_elf_map_optional_lto_section): Remove.
	(lto_elf_unmap_section): Remove.
	(lto_elf_file_vtable): Remove.
	(lto_elf_file_open): Remove lto_elf_file_vtable argument from
	lto_file_init call.
	(lto_elf_find_section_data): Remove.

2008-06-11  Ollie Wild  <aaw@google.com>

	* lto.c (lto_file_read): Add const qualifier to data variable.

2008-06-11  Diego Novillo  <dnovillo@google.com>

	Merge from lto-streamber sub-branch.

	2008-06-04  Ollie Wild  <aaw@google.com>

		* lto.c: Remove inclusion of dwarf2.h and dwarf2out.h.
		* Make-lang.in (lto.o): Remove dependency on dwarf2.h.

	2008-05-28  Bill Maddox  <maddox@google.com>

		Replace the DWARF reader in the LTO front-end.

		* 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.

2008-06-07  Kenneth Zadeck <zadeck@naturalbridge.com>
	    Jan Hubicka  <jh@suse.cz>
	
	* lto.c (sys/mman.h, tree-pass.h): New includes.
	(lto_materialize_constructors_and_inits,
	lto_materialize_function): Keeps length of section.
	(lto_materialize_cgraph): Removed.
	(lto_read_decls): Initialize fd field.
	(lto_file_read): Different return type and removed much code to
	lto_main.
	(page_mask): New variable.
	(lto_read_section_data, get_section_data, free_section_data): New
	functions.
	(lto_main): Now calls pass manager, sets the hooks so that the ipa
	passes can get the section data. 
	
2008-05-27  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto.h (lto_read_decls): Made local.
	(lto_input_function_body, lto_input_constructors_and_inits, 
	lto_input_cgraph): Declarations moved to lto-section-in.h.
	* lto-section-in.c: Moved to .. .
	* lto-cgraph-in.c: Ditto.
	* lto-section-in.h: Ditto.
	* lto-function-in.c: Ditto.
	* lto-lang.c (lto_handle_option): Added ATTRIBUTE_UNUSED to parms.
	(lto_insert_block): Removed.
	(LANG_HOOKS_INSERT_BLOCK): Removed.
	* Make-lang.in (lto-cgraph-in.o, lto-function-in.o,
	lto-section-in.o): Rules moved to lto/Makefile.in.
	

2008-05-16  Ollie Wild  <aaw@google.com>

	* 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).

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.

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.

2008-05-09  Ollie Wild  <aaw@google.com>

	* 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.

2008-04-29  Ollie Wild  <aaw@google.com>

	* 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.

2008-04-16  Ollie Wild  <aaw@google.com>

	* lto-function-in.c (input_type_ref): Updated function description.

2008-04-16  Ollie Wild  <aaw@google.com>

	* lto-function-in.c (input_type_ref_1): New function.
	(input_type_ref): Split into two functions.
	(input_function): Add support for type contexts.

2008-04-16  Ollie Wild  <aaw@google.com>

	* lto.c (lto_materialize_function): Use DECL_ASSEMBLER_NAME to compute
	section name

2008-04-16  Ollie Wild  <aaw@google.com>

	* lto.c (lto_read_compile_unit_DIE): Add DW_LANG_C_plus_plus to the
	list of supported languages.

2008-03-25  Kenneth Zadeck <zadeck@naturalbridge.com>

	Merge with mainline @133491.

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.

	
2008-02-09  Kenneth Zadeck <zadeck@naturalbridge.com>

	* 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-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>

	* 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  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-elf.c (lto_elf_lookup_sym): Remove unused function.
	(lto_elf_free_sym): Likewise.

	* lto-elf.c (lto_elf_read_var_init): Remove unused function.
	(lto_elf_build_init): Likewise.

2008-01-14  Kenneth Zadeck <zadeck@naturalbridge.com>

	* 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.
	
2007-12-29  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_expr_operand): Mark static and external
	VAR_DECLs as needed.

2007-12-29  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_integer): Use the correct shift amount.

2007-12-29  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (lto_pushdecl): Do nothing instead of aborting.
	(LANG_HOOKS_NAME): Define.

2007-12-27  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_find_integral_type): Define as a macro.  Rename the
	original function to...
	(lto_find_integral_type_1): ...this.  Consult UNSIGNEDP if we
	don't have a base type.
	(lto_read_enumeration_type_DIE): Examine the values of the
	enumeration to determine whether we can use an unsigned type for
	the base type of the enumeration.

2007-12-24  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_structure_union_class_type_DIE): Set TYPE_MODE
	and TYPE_ALIGN on UNION_TYPEs as soon as possible.

2007-12-22  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (lto_types_compatible_p): New function.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Define.

2007-12-22  Nathan Froyd  <froydnj@codesourcery.com>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Fixed uninitialize var warning.
	(input_local_vars): Read in DECL_INITIAL and context for local
	statics that need to be put in unexpanded_vars_list.

2007-12-21  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_real): Use a separate null-terminated buffer
	for calling real_from_string.
	(input_expr_operand): If we take the address of a FUNCTION_DECL,
	tell cgraph that it's needed.

2007-12-19  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_read_base_type_DIE): Handle complex integer types.

2007-12-18  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_DIE): Call lto_read_only_for_child_DIEs instead.
	(lto_file_read): Reset the members of 'context' every time we read
	a toplevel DIE, with special attention to last_param_type.

2007-12-18  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_subroutine_type_subprogram_DIE): Initialize
	'declaration'.  Set the assembler name for non-public functions.

2007-12-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto_read.c (data_in.unexpanded_indexes): New array.
	(input_local_var): Added code to read in unexpanded_var_list
	indexes for variables.  Only read in DECL_CHAIN field for
	parameters.
	(input_local_vars): Added code to rebuild unexpanded_var_list in
	order using unexpanded_indexes.
	(input_function): Added code to set DECL_CONTEXT for functions.

2007-12-13  Doug Kwan  <dougkwan@google.com>

	* lto.c (lto_read_pointer_reference_type_DIE): Handle optional name
	in pointer and reference types.

2007-12-13  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_expr_operand): Use DECL_RESULT when reading a
	RESULT_DECL.

2007-12-13  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_array_type_DIE): Return the cached DIE if we've
	already read the DIE.
	(lto_get_body): New function, split out from...
	(lto_materialize_function): ...here.  Call it.
	(lto_read_subroutine_type_subprogram_DIE): Call lto_get_body to
	determine DECL_EXTERNAL.
	* lto-symtab.c (lto_symtab_merge_decl): Merge the DECL_RESULTs of
	FUNCTION_DECLs when necessary.  Use the type of the actual
	function definition if we are unable to easily merge types.  Ignore
	spurious DECL_MODE mismatches on VAR_DECLs.  Merge DECL_MODEs when
	necessary.

2007-12-13  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.

2007-12-12  Bill Maddox  <maddox@google.com>

	Revert
	2007-12-07  Bill Maddox  <maddox@google.com>

	* lto.c (lto_str_fd_init): New function.
	(lto_str_fd_close): New function.
	(lto_file_init): Call lto_str_fd_init.
	(lto_file_close): Call lto_str_fd_close.
	(lto_str_read): New function. Read debug string table.
	(lto_str_lookup): New function. Get string for debug
	string table offset.
	(lto_read_form): Recognize DW_FORM_strp.
	(lto_file_read): Invoke lto_str_read.

	* lto-elf.c (lto_elf_file_open): Read raw section data
	for the .debug_str section, if present.

	* lto.h (struct lto_str_fd_struct): New struct.
	(struct lto_file_struct): Added new field DEBUG_STR
	to hold the file descriptor for the debug string table.
	
2007-12-07  Bill Maddox  <maddox@google.com>

	* lto.c (lto_str_fd_init): New function.
	(lto_str_fd_close): New function.
	(lto_file_init): Call lto_str_fd_init.
	(lto_file_close): Call lto_str_fd_close.
	(lto_str_read): New function. Read debug string table.
	(lto_str_lookup): New function. Get string for debug
	string table offset.
	(lto_read_form): Recognize DW_FORM_strp.
	(lto_file_read): Invoke lto_str_read.

	* lto-elf.c (lto_elf_file_open): Read raw section data
	for the .debug_str section, if present.

	* lto.h (struct lto_str_fd_struct): New struct.
	(struct lto_file_struct): Added new field DEBUG_STR
	to hold the file descriptor for the debug string table.

2007-12-07  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_cfg): Call init_empty_tree_cfg_for_function.
	Grow the basic_block_info and label_to_block_map vectors if
	necessary.  Read in the block chain.

2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_DIE): Set TYPE_ALIAS_SET where necessary.

2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_form): Add DW_cl_address for DW_AT_const_value.

2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_expr_operand): Don't check for MTAGs.
	(lto_read_body): Don't declare PROP_alias.

2007-12-06  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-symtab.c (lto_symtab_merge_decl): Handle FUNCTION_DECLs without
	argument type information.

2007-12-03  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
	TREE_THIS_VOLATILE if the associated type is a volatile type.
	(lto_materialize_function): Remove call to init_ssa_operands.
	* lto-read.c (input_expr_operand): Add SSA_NAME_VAR as a referenced
	variable when reading an SSA_NAME.  Do the same when reading a
	RESULT_DECL, a RETURN_EXPR, or an MTAG.
	(input_cfg): Call init_ssa_operands.
	(input_ssa_names): Set the default def of an SSA_NAME if necessary.
	Move call to init_tree_ssa...
	(lto_read_body): ...here.  Use push_cfun and pop_cfun.  Call
	add_referenced_var on any variables referenced from the body of the
	function.  Inform the rest of the compiler we are in SSA form and
	inform later passes about the current properties.

2007-11-30  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_materialize_function): Add FIXME.

2007-11-29  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (enum built_in_attribute): New enum.
	(flag_no_builtin, flag_no_nonansi_builtin, flag_isoc94, flag_isoc99,
	built_in_attributes): New variables.
	(def_builtin_1): New function.
	(lto_define_builtins): #define DEF_BUILTIN and include builtins.def.

2007-11-28  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Set
	DECL_SOURCE_LOCATION for debugging purposes.
	(lto_read_member_DIE): Set DECL_SOURCE_LOCATION.  If we have read a
	bitfield, use the type specified by the DIE for TREE_TYPE and defer
	laying out the decl until later.
	(lto_read_subroutine_type_subprogram_DIE): Compare the function's
	name with DECL_ASSEMBLER_NAME.  Set DECL_SOURCE_LOCATION and
	TREE_ADDRESSABLE.
	* lto-read.c (input_expr_operand): Set TREE_ADDRESSABLE on the
	operand of an ADDR_EXPR.
	* lto-lang.c (enum lto_builtin_type): New enum.
	(builtin_type): New typedef.
	(builtin_types, string_type_node, const_string_type_node,
	wint_type_node, intmax_type_node, uintmax_type_node,
	signed_size_type_node): New variables.
	(def_fn_type, builtin_type_for_size, lto_define_builtins,
	lto_build_c_type_nodes): New functions.
	(lto_init): Initialize builtin types.
	(lto_set_decl_assembler_name): Let the target machine mangle the
	name if the decl is TREE_PUBLIC, otherwise uniquify it.

2007-11-21  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Don't
	set TREE_ADDRESSABLE.  Do set DECL_COMDAT.  Set TREE_READONLY if
	the type is a constant type.  Set the assembler name and inform
	the rest of the compiler about the new decl if the decl is not
	public.
	(lto_read_subroutine_type_subprogram_DIE): Don't check for equivalency
	of DECL_ASSEMBLER_NAME when determining if we have a builtin.  Don't
	try to read in function bodies for functions that already have bodies.
	* lto-symtab.c (lto_same_type_p): Check for unbounded array
	equivalency.
	(lto_symtab_merge_decl): Don't merge decls that aren't TREE_PUBLIC.
	Check for whether we matched a builtin function type before calling
	lto_same_type_p on the generated type.  Permit cases where the
	declaration of an array is unbounded, but the definition is bounded.
	Don't combine TREE_PUBLIC flags.  Copy over DECL_SIZE and
	DECL_SIZE_UNIT if necessary.

2007-11-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Get types right 
	for COMPLEX_CST.

2007-11-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (make_new_block, input_cfg): Properly set
	n_basic_blocks.
	
2007-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_array_type_DIE): Handle DIEs with DW_AT_GNU_vector
	set properly by building a VECTOR_TYPE instead of an ARRAY_TYPE.

2007-11-16  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_base_type_DIE): Use make_bitfield_integer_type to
	construct the integer type for bitfields.

2007-11-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (data_in.current_node_has_loc): Removed.
	(input_line_info): Returns true if node needs line set.
	(set_line_info): Always sets line if called.
	(clear_line_info): Removed reference to current_node_needs_loc.
	(input_expr_operand): Keeps track locally if current node needs a loc.
	(input_local_var): Added code to handle DECL_INITIAL for
	static local vars. Only set loc if necessary.
	
2007-11-15  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_subroutine_type_subprogram_DIE): Fix thinko'd
	DECL_CONTEXT.

2007-11-15  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c: Include langhooks.h.
	(lto_find_integral_type): Rework logic to handle the case where
	got_byte_size is true, but the bitsize requested and that of the
	base_type doesn't match.
	(lto_read_variable_formal_parameter_constant_DIE): Only check for
	asm_name if we are creating a VAR_DECL.
	(lto_materialize_function): Set DECL_EXTERNAL if we can't find a
	definition.
	(lto_read_subroutine_type_subprogram_DIE): Check for a builtin
	function reference and use the builtin's decl if so.  Set the
	DECL_CONTEXT of the RESULT_DECL for the function.
	* lto-lang.c (registered_builtin_fndecls): New variable.
	(lto_getdecls): Return it.
	(lto_builtin_function): Chain the new decl onto
	registered_builtin_fndecls.

2007-11-15  Kenneth Zadeck <zadeck@naturalbridge.com>
	    
	* lto-read.c (process_tree_flags, lto_static_init_local):
	Renamed to ADD_CLASS_EXPR_FLAG. ADD_CLASS_DECL_FLAG New Macro.
	(input_line_info, clear_line_info): Fixed new line number code.
	(input_expr_operand): Added type to SWITCH_EXPR.
	(lto_read_body): Properly initialized data_in.
	Clear line info when leaving.
	
2007-11-13  Diego Novillo  <dnovillo@google.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE):
	Initialize ARTIFICIAL.
	(lto_read_subroutine_type_subprogram_DIE): Initialize
	SAVED_SCOPE.
	* lto-read.c (set_line_info): Remove ; from calls to
	LINEMAP_POSITION_FOR_COLUMN.

2007-11-13  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_type_ref): Renamed from get_type_ref.
	(input_expr_operand, input_local_var): Renamed get_type_ref to 
	input_type_ref.
	(input_expr_operand): Get the types correct for 
	vector-cst.  Get SSA_NAME_DEF_STMT correct for return_exprs.
	
2007-11-13  Doug Kwan  <dougkwan@google.com>

	* lto-read.c (input_widest_uint_uleb128): New function.
	(input_tree_flags, process_tree_flags, input_line_info,
	input_expr_operand, input_local_var, input_phi, input_ssa_names):
	Change to use lto_flags_type and BITS_PER_LTO_FLAGS_TYPES instead of
	unsigned HOST_WIDE_INT and HOST_BITS_PER_WIDE_INT.
	(lto_static_init_local): Add code to assert that lto_flags_type is
	wide enough.

2007-11-13  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_array_type_DIE): Handle DW_AT_GNU_vector.
	(lto_read_subroutine_type_subprogram_DIE): Handle
	DW_AT_static_link and DW_AT_specification.  Return the
	specification if present.
	(lto_read_base_type_DIE): Handle DW_ATE_complex_float.
	
2007-11-13  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c: Include target.h.
	(registered_builtin_types): New variable.
	(lto_type_for_mode): Increase number of modes handled.
	(lto_builtin_function): Fix argument list and return the decl.
	(lto_register_builtin_type): New function.
	(lto_init): Initialize target builtins and language-independent
	nodes.
	(LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define.

2007-11-13  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Added code to properly handle
	index filed. Added new RANGE_EXPR case.
	
2007-11-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (ADD_FUNC_FLAG): Deleted macro.
	(data_in): Added current_node_has_loc field.
	(input_line_info, set_line_info, clear_line_info): Added a support
	for USE_MAPPED_LOCATION and not adding line numbers to nodes that
	did not have on on the source side.
	(input_expr_operand): Make sure that GIMPLE_MODIFY_STMTS get line
	numbers too.

2007-11-09  Doug Kwan  <dougkwan@google.com>

	* lto-read.c (input_expr_operand): Change type of operand 2 of
	BIT_FIELD_REF expression to be bitsizetype instead of sizetype.

2007-11-09  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c: Include lto-tree.h.  Effect small spaces->tabs cleanup.
	(lto_read_variable_formal_parameter_constant_DIE): Transfer bits
	from a DW_AT_specification or DW_AT_abstract_origin attribute to
	the new decl we are creating.  Move informing the middle end about
	the new decl to...
	(lto_main): ...here.  Inform the middle end about global variables
	after we have read in all the input files.
	* lto-symtab.c (lto_symtab_merge_decl): We really do need to merge
	variables with internal linkage, so delete the check for internal
	linkage.  Combine TREE_PUBLIC flags.

2007-11-08  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
	DW_AT_decl_line.
	* lto-symtab.c (lto_symtab_merge_decl): Handle redefinition of a
	builtin specially.  Move check for attribute compatibility
	earlier.

2007-11-07  Nathan Froyd  <froydnj@codesourcery.com>

	* Make-lang.in (lto/lto.o): Depend on gt-lto-lto.h.
	* config-lang.in (gtfiles): Add lto.h and lto.c.
	* lto-elf.c: Include ggc.h.
	(lto_elf_file_open): Allocate elf_file from GC memory.
	* lto.c: Include tree-ssa-operands.h and gt-lto-lto.h
	(lto_info_fd_init): Allocate the die_cache and unmaterialized_fndecls
	in GC memory.
	(lto_info_fd_close): Free unmaterialized_fndecls from GC memory.
	(lto_file_close): Free file from GC memory.
	(lto_cache_store_DIE): Allocate the new entry in GC memory.
	(lto_read_member_DIE): Fix declaration.
	(lto_read_subroutine_type_subprogram_DIE): unmaterialized_fndecls lives
	in GC memory.
	(current_lto_file): New variable.
	(lto_main): Use it.
	(DWARF2_attr, DWARF2_abbrev, lto_die_ptr, DWARF2_CompUnit,
	lto_die_cache_entry): Move to...
	* lto.h: ...here and add GTY markers as appropriate.  Delete forward
	declarations accordingly.
	(struct lto_file_struct): Declare.
	(lto_file_vtable): Use it instead of lto_file.

2007-11-06 Alon Dayan  <alond@il.ibm.com>
	   Kenneth Zadeck <zadeck@naturalbridge.com>

	 * lto-read.c (process_flags, lto_static_init_local):
	 read flags of VAR_DECL and FUNCTION_DECL of size>1.
	 change global array num_flags_for_code to flags_length_for_code.
	 (set_line_info): Make decls work in USE_MAPPED_LOCATION mode.
	
2007-11-05  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_structure_union_class_type_DIE): Use proper record
	layout functions to compute information about the newly constructed
	type.

2007-11-02  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_expr_operand): Change the LTO_return_expr1
	case to use DECL_RESULT if necessary.

2007-11-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_tree_list): Removed.
	(input_tree_flags): Added parameter to force flags no matter what
	tree code.
	(input_expr_operand): Added parameter to input_tree_flags.
	Added case for IDENTIFIER_NODE and TREE_LIST.  Changed ASM to call
	input_expr_operand rather than input_tree_lists.
	(input_local_var): Use input_expr_operand to read attributes
	rather then input_tree_list.
	(input_phi, input_ssa_names): Added parameter to input_tree_flags.

2007-10-31  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_typedef_DIE): Fix comment typo.
	(lto_resolve_typedecl_ref): Fetch the referred-to type and build a fake
	TYPE_DECL for it.
	* lto-read.c (lto_read_body): Use correct sizes for calculating
	type_decls_offset and types_offset.

2007-10-30  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-tree.h (union lang_tree_node): Change GTY description to chain
	with GENERIC_NEXT.
	* config-lang.in (gtfiles): Add lto-lang.c.
	* lto-lang.c: Include gt-lto-lto-lang.h.
	* Make-lang.in (lto/lto-lang.o): Add dependency on gt-lto-lto-lang.h
	(lto/lto-symtab.o): Depend on LTO_H instead of TREE_H.
	(lto/lto-read.o): Likewise.

2007-10-29  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (data_in): Added type_decls and current_col fields.
	(string_slot): New type to hold canonized file name.
	(hash_string_slot_node, eq_string_slot_node, canon_file_name, 
	input_line_info, set_line_info, clear_line_info): New functions.
	(file_name_hash_table): New hash table.
	(input_local_var, input_labels, input_local_vars_index, 
	input_local_var, input_local_vars, input_ssa_names): Reorganized parameters.
	(input_uleb128): Changed type of byte var.
	(input_expr_operand): Large number of changes to get line numbers
	correct.  Added TYPE_DECL case.
	(input_globals): Added code to get TYPE_DECLs processed.
	(input_local_var): Added code to process line numbers and
	TREE_CHAIN and DECL_CONTEXT.
	(input_function, input_constructor): Added call to
	clear_line_number.
	(lto_static_init_local): Added code to get line numbers correct.
	(lto_read_body): Added code to get TYPE_DECLS read and to change
	parameters to the calls above that had their parms reorganized.

	
2007-10-29  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.h (lto_resolve_typedecl_ref): Declare.
	* lto.c (lto_resolve_typedecl_ref): New function.

2007-10-29  Mark Mitchell  <mark@codesourcery.com>
	    Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_subroutine_type_subprogram_DIE): Read the child
	DIEs even if we find an abstract origin for this DIE.

2007-10-29  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_subroutine_type_subprogram_DIE): Build the
	RESULT_DECL slightly earlier.  Only remember the decl for later
	if we successfully merge declarations.

2007-10-24  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Give label_values the proper
	context and provide switch statements with a default type.
	
2007-10-23  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (lto_read_body): Move call to init_ssa_operands...
	* lto.c (lto_materialize_function): ...to here.

2007-10-22  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.h (struct lto_info_fd): Add field unmaterialized_fndecls.
	* lto.c (lto_info_fd_init): Initialize it.
	(lto_info_fd_close): Free it.
	(lto_materialize_function): New function.
	(lto_read_subroutine_type_subprogram_DIE): Save the result decl on
	unmaterialized_fndecls.
	(lto_file_read): Read in all the function bodies after we have read
	all of the DWARF info.
	* lto-read.c (lto_read_body): Call init_ssa_operands if we are
	reading a function body.

2007-10-20  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_tree_flags): Renamed from input_flags to be
	semetric with output_tree_flags.  Added call to log flags.
	(process_tree_flags): Renamed from process_flags.  Fixed a lot of
	type issues to make everything consistent with flags being
	unsigned HOST_WIDE_INTS.
	(input_expr_operand): Added call to
	recompute_tree_invariant_for_addr_expr.
	(input_local_var): Added debugging for tree_chains.  Now calls
	input_tree_flags.
	(input_phi): Made flags unsigned HOST_WIDE_INT.
	(input_ssa_names): Now calls input_tree_flags.
	(lto_read_body): Now sets cfun.
	(lto_read_function_body): Now sets current_function_pointer.
	
2007-10-19  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Check
	definitively whether SPECIFICATION or ABSTRACT_ORIGIN exist before
	inspecting fields within.
	(lto_read_DIE_at_ptr): Delete check for null result; let callers
	handle this appropriately.

2007-10-19  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Handle
	DW_AT_abstract_origin properly.  Ensure that we're not dealing with
	both DW_AT_abstract_origin and DW_AT_specification.
	(lto_read_subroutine_type_subprogram_DIE): Handle
	DW_AT_abstract_origin.
	(lto_read_DIE): Use lto_read_only_for_child_DIEs for labels.
	(lto_read_DIE_at_ptr): Define as static to match declaration.
	Lookup the PTR in the cache before reading it from the file.
	(lto_resolve_var_ref): Adjust accordingly.
	(lto_resolve_fn_ref): Adjust accordingly.  Tweak comment.
	(lto_resolve_field_ref): Adjust accordingly.  Tweak comment.

2007-10-19  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_DIE_at_ptr): New function.
	(lto_resolve_var_ref): Use it.
	(lto_resolve_fn_ref): Use it.
	(lto_resolve_field_ref): Use it.
	(lto_read_variable_formal_parameter_constant_DIE): Follow
	DW_AT_specification and return the associated decl when appropriate.

2007-10-18  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (lto_type_for_mode): Move after lto_type_for_size.
	Implement for scalar integer modes.
	(lto_init): Initialize size_type_node.

2007-10-18  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Remove ssa name asserts.
	(input_local_var): Add chaining for params.
	(input_ssa_names): Add cfun parameter.
	(input_function): Remove unnecessary else.

2007-10-17  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_only_for_child_DIEs): Mark die parameter as unused.
	(lto_resolve_var_ref): Use proper types.
	(lto_resolve_fn_ref): Likewise.
	(lto_resolve_field_ref): Likewise.

2007-10-17  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (input_expr_operand): Remove case.

2007-10-17  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_only_for_child_DIEs): New function.
	(lto_read_DIE): Use it for lexical_block and inlined_subroutine DIEs.
	* lto-elf.c (lto_elf_map_lto_section): Remove.
	(lto_elf_file_vtable): Use lto_elf_map_optional_lto_section instead.
	* lto-read.c (input_expr_operand): Assert that we never read a NULL
	SSA_NAME.  Add missing case for mechanical codes.
	(input_cfg): Use basic_block_info_for_function instead of
	basic_block_info.

2007-10-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_sleb128, input_integer): Use proper casts.
	(input_list): Renamed input_tree_list and modified to follow same
	protocol as lto-function-out.c:output_tree_list.
	(input_expr_operand): Make asm operands use input_tree_list.
	(input_local_var): Now uses input_tree_list.
	(lto_read_body): Change placement for setting context of debug_labels.
	
	
2007-10-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_real): Output debugging in proper order.
	(input_integer): Compute bit lengths properly.
	(input_list): Clean up declaration.
	(input_expr_operand): Change calls to input_real to match fix.
	Make reading of LTO_bit_field_ref1 match output.
	(input_local_var): Make reading of attributes match what is being
	written.
	(dump_debug_stream): Also print char in hex.
	(debug_out_fun): Fix signed unsigned mismatch.
	
2007-10-10  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c (lto_read_form): Handle DW_AT_MIPS_linkage_name and
	DW_AT_GNU_vector specially, as they are not contiguous with the
	specified set of attribute names.  Use class_mask to check for
	errors at the end of the function
	(lto_resolve_var_ref): Read the DIE if it is not cached.
	(lto_resolve_fn_ref): Likewise.
	(lto_resolve_field_ref): Likewise.

2007-10-05  Nathan Froyd  <froydnj@codesourcery.com>

	* lto.c: Include dwarf2out.h.
	(lto_cache_store_DIE): Assert that we never change the value.
	(LTO_BEGIN_READ_ATTRS): Print an informative error message.
	(lto_read_compile_unit_DIE): Handle DW_AT_entry_pc.
	(lto_read_array_type_DIE): Don't error on ndims == 0; build a
	sensible type instead.
	(lto_read_structure_union_class_type_DIE): Store the newly
	created type prior to reading the members of the structure to
	avoid infinite recursion.  Avoid computing types and alignments
	for structures whose sizes are unknown.
	(lto_read_variable_formal_parameter_const): Handle DW_AT_artificial
	and set DECL_ARTIFICIAL accordingly.  Ignore DW_AT_abstract_origin,
	DW_AT_const_value, and DW_AT_specification.
	(lto_read_subroutine_type_subprogram_DIE): Handle DW_AT_declaration.
	Return early if we have already constructed the function type.
	(lto_read_typedef_DIE): Check to see if the type has been cached
	already.  Cache the type before reading any children.
	(lto_read_const_volatile_restrict_type_DIE): Handle DW_AT_name.
	(lto_read_DIE): Unset context->skip_non_parameters around reading
	the DIE.
	(lto_resolve_fn_ref): Delete trailing whitespace.

2007-09-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Added type for STRING_CST.
	
2007-09-10  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-read.c (lto_read): Set the type of the newly created CALL_EXPR.

2007-09-07  Nathan Froyd  <froydnj@codesourcery.com>

	* lto-lang.c (signed_and_unsigned_types): New variable.
	(lto_type_for_size): Consult signed_and_unsigned_types to find
	an approprite type, creating it if necessary.
	(lto_set_decl_assembler_name): Add actual method body.

2007-09-06  Jim Blandy  <jimb@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): If we
	can't find a var init for this variable, leave its DECL_INITIAL.
	* lto-elf.c (lto_elf_map_optional_lto_section): Renamed from
	lto_elf_map_fn_body.
	(lto_map_lto_section): New function.
	(lto_elf_file_vtable): Use lto_elf_map_lto_section for function
	bodies, and lto_elf_map_optional_lto_section for variable
	initializers.
	(lto_elf_find_section_data): Quietly return NULL if the section is
	missing.
	(lto_elf_file_open): Check for a NULL from lto_elf_find_section_data.

	* lto-elf.c (lto_elf_find_section_data): Remove dead code.

	* lto-read.c (lto_read_body): Doc fix.

2007-08-29  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (fun_in): Renamed to data_in.
	(input_expr_operand, input_local_var, input_string_internal,
	input_string, input_real, input_list, get_label_decl, 
	get_type_ref, input_expr_operand, input_globals, input_labels,
	input_local_vars_index, input_local_var, input_local_vars, 
	input_cfg, input_phi, input_ssa_names, input_bb, ): Renamed fun_in to data_in.
	(input_constructor): New function.
	(lto_read_function_body): Renamed to lto_read_body and generalized
	to handle both functions and constructors.
	(lto_read_function_body, lto_read_var_init): New function.
	
	
2007-08-28  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Assert that there really is a
	FUNCTION_DECL.
	(input_globals): Removed checks on 0 section.
	
2007-08-28  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (fun_in): Added local_decls_index and
	local_decls_index_d.  
	(input_expr_operand): Changed inputting of PARM_DECLs and VAR_DECLs.
	(input_globals): Enabled code to handle FIELD_DECLs.
	(input_local_vars_index, input_local_vars): New function.
	(input_local_var): Changed to allow locals to be input randomly.
	(lto_read_function_body): Added code to input the
	local_decls_index and to free various structures.
	
2007-08-17  Jim Blandy  <jimb@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Remove
	ATTRIBUTE_UNUSED from 'die' formal.

	Use enum LTO_tags where appropriate, instead of 'unsigned int'.
	* lto-read.c (input_record_start): Fix return type, type of 'tag'.
	(input_list): Fix type of 'tag'.
	(input_expr_operand): Fix type of 'tag' argument.  Update
	declaration.  Fix type of 'ctag'.  Add default case to switch,
	since the type of the switched value is now an enum.
	(input_local_vars): Fix type of 'tag'.
	(input_bb): Fix type of 'tag' argument.
	(input_function): Fix type of 'tag' argument.

2007-08-16  Jim Blandy  <jimb@codesourcery.com>

	* lto.c (lto_read_member_DIE): Record the tree we create in
	fd->die_cache.  (Our 'die' argument is no longer unused.)
	(lto_resolve_field_ref): New function.
	* lto.h (lto_resolve_field_ref): New declaration.

2007-08-15  Jim Blandy  <jimb@codesourcery.com>

	* lto-read.c (lto_read_var_init): Mark arguments as unused.

2007-08-07  Jim Blandy  <jimb@codesourcery.com>

	* lto.c (lto_read_form): Complete attr_classes table.
	(DWARF2_form_data): Doc fix.
	
2007-08-05  Mark Mitchell  <mark@codesourcery.com>

	* lto.h (lto_file_vtable): Remove read_var_init.  Add map_var_init
	and unmap_var_init.
	(lto_read_var_init): Declare.
	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Use new
	interface for reading variable initializers.
	* lto-elf.c (lto_elf_read_var_init): Remove.
	(lto_elf_file_vtable): Update initializer.
	(lto_elf_read_var_init): Add comment about unused-ness.
	* lto-read.c (lto_read_var_init): New.

	* lto.c (lto_read_form): Add entry for DW_AT_inline.

2007-08-02  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (lto_read_function_body): Moved declaration of fn
	outside of ifdef.
	
2007-08-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_uleb128, input_string_internal, input_real,
	input_integer, input_record_start, input_list, get_type_ref,
	input_flags, input_expr_operand, input_expr_operand,
	input_expr_operand, input_local_vars, input_cfg, input_phi,
	input_ssa_names, input_bb, input_function): Added semicolons.

	
2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_globals): Remove debugging.
	(input_function): Set DECL_ARGUMENTS.

	
2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_expr_operand): Fixed code for COND_EXEC,
	RETURN_EXPR, MODIFY_EXPR and processing of flags.
	(input_phi): Made work with operands other than SSA_NAMES and
	fixed processing of flags.
	(input_ssa_names): Initialize SSA_NAME_DEF_STMT to empty stmt.
	(input_flags): New function.
	* lto-lang.c (lto_init): Changed state of in_lto_p.
	
	
2007-07-24  Mark Mitchell  <mark@codesourcery.com>

	* lto-tree.h (lto_varargs_cookie): Remove.
	* lto.c (lto_context): Add last_parm_type, varargs_p, skip_all,
	skip_non_parameters, skip_parameters.
	(lto_varargs_cookie): Remove.
	(lto_read_variable_formal_parameter_constant_DIE): Keep track of
	parameter types.
	(lto_read_abbrev): New function.
	(lto_read_subroutine_type_subprogram_DIE): Make two passes over
	child DIEs.
	(lto_read_unspecified_parameters_DIE): Set context->varargs_p.
	(lto_read_DIE): Use lto_read_abbrev.  Honor skip_* flags.
	(lto_file_read): Initialize new context fields.
	* lto-lang.c (lto_type_for_mode): Return NULL_TREE.
	(lto_unsigned_type): Remove.
	(lto_signed_type): Likewise.
	(lto_signed_or_unsigned_type): Likewise.
	(lto_init): Do not create lto_varargs_cookie.
	(LANG_HOOKS_UNSIGNED_TYPE): Do not define.
	(LANG_HOOKS_SIGNED_TYPE): Likewise.
	(LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Likewise.

2007-07-19  Jan Hubicka  <jh@suse.cz>

	* lto-read.c (lto_read_function_body): Produce empty scope block
	to avoid crash.

2007-07-18  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Do not
	process local variables.
	(lto_read_subroutine_type_subprogram_DIE): Read child DIEs.

2007-07-13  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read.c (input_list, input_expr_operand): Added struct
	function parameter.
	(init_cfg, finalize_cfg): Removed function.
	(input_expr_operand): Added SSA_NAME and GIMPLE_MODIFY_STMT cases.
	(input_labels, input_local_vars): Now takes input_block parameter rather than
	synthsyzing it.
	(input_cfg, input_phi, input_ssa_names): New functions.
	(input_bb): Now passes in input_blocks.  Does not construct cfg
	and processes the list of phi functions.
	(input_function): Now builds both the cfg and ssa_names table.
	(lto_read_function_body): Processes new header fields to construct
	streams for the ssa_names and cfg and their debugging.
	* lto/lto-lang.c (lto_init): Set in_lto_p.
	
	
2007-06-28  Mark Mitchell  <mark@codesourcery.com>

	* lto.h (lto_file_vtable): Add read_var_init.
	* lto.c (lto_read_variable_formal_parameter_constant_DIE): Read
	initializers.
	(lto_main): Remove bogus asserts.
	* lto-elf.c (tm.h): Include it.
	(libiberty.y): Likewise.
	(lto_elf_file): Add strtab and symtab.  Rename
	string_table_section_index to sec_strtab.
	(lto_elf_file_vtable): Add lto_elf_read_var_init.
	(lto_elf_get_shdr): New function.
	(lto_elf_free_shdr): Likewise.
	(lto_elf_find_section_data): Use them.
	(lto_elf_read_symtab): New function.
	(lto_elf_lookup_sym): Likewise.
	(lto_elf_free_sym): Likewise.
	(lto_elf_file_open): Tidy.  Call lto_elf_read_symtab.
	(lto_elf_built_init): New function.
	(lto_elf_read_var_init): Likewise.
	* Make-lang.in (lto/lto-elf.o): Depend on $(TM_H).

2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto-read (make_new_block): Initialize the stmt_list.
	(lto_static_init_local): Add debugging for missing codes.
	
2007-06-26  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (lto_read_subroutine_type_subprogram_DIE): Handle
	unprototyped functions. 

2007-06-23  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (lto_read_variable_formal_parameter_constant_DIE):
	Handle DW_AT_MIPS_linkage_name.
	(lto_read_subroutine_type_subprogram): Likewise.  Correct
	compilation errors.
	(lto_main): Remove incorrect assertions.
	* lto-symbtab.c: Build function types out of TREE_LISTs.

	* lto-elf.c (<libelf>): Check for HAVE_LIBELF_H.
	
	* Make-lang.in (LTO_OBJS): Depend on attribs.o.
	
2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lto/lto-tree.h (lang_decl, lang_type, language_function): Added
	dummy since ggc does not like empty structs.
	* lto/lto-elf.c (libelf.h): Changed to libelf/libelf.h.
	* lto/lto-read.c (ADD_CLASS_FLAG, ADD_EXPR_FLAG): Changed
	expr->common to expr->base.
	(make_new_block): Moved stmt_list to proper place.


2007-03-14 Robert Kennedy  <jimbob@google.com>

	Eliminate use of lang_hooks.set_decl_assembler_name from LTO
	* lto.c (lto_read_subroutine_type_subprogram_DIE) Get DECL
	assembler name from DWARF.
	* lto-lang.c (lto_set_decl_assembler_name) New function.

2006-09-10  Mark Mitchell  <mark@codesourcery.com>

	* lto.h (lto_file_vtable): New structure.
	(lto_file): Add vtable pointer.
	(lto_file_init): Add vtable paramter.
	(lto_read_function_body): New function.
	(lto_symtab_merge_fn): New function.
	* lto.c (lto_file_init): Add vtable parameter.
	(lto_read_form): Fill in entries for DW_AT_prototyped,
	DW_AT_frame_base.
	(lto_read_subroutine_type_subprogram_DIE): New function.
	(lto_read_DIE): Fill in entries for DW_TAG_subroutine_type and
	DW_TAG_subprogram.
	* lto-elf.c (lto_elf_vile_vtable): New variable.
	(lto_elf_file_open): Pass it to lto_file_init.
	(lto_elf_map_fn_body): New function.
	(lto_elf_unmap_fn_body): Likewise.
	* lto-read.c: New file.
	* lto-symtab.c (lto_symtab_merge_fn): New function.
	* lto-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define to
	tree_rest_of_compilation.
	* Make-lang.in (LTO_OBJS): Add lto-read.o
	(lto-read.o): New target.

2006-09-03  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (<inttypes.h>): Don't include it.
	(lto_context): Don't typedef it.
	(lto_resolve_reference): New function.
	(lto_read_form): Use it.
	(lto_resolve_type_ref): New function.
	(lto_resolve_var_ref): Likewise.
	(lto_resolve_fn_ref): Likewise.
	* lto.h (<inttypes.h>): Include it.
	(lto_context): New type.
	(lto_ref): New structure.
	(lto_resolve_type_ref): Declare.
	(lto_resolve_var_ref): Likewise.
	(lto_resolve_fn_ref): Likewise.

2006-08-18  Mark Mitchell  <mark@codesourcery.com>

	* lang-specs.h: New file.

2006-08-14  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (lto_info_fd_init): Allocate the DIE cache.
	(lto_info_fd_close): Deallocate it.
	(lto_die_cache_entry): New structure.
	(lto_cache_hash): New function.
	(lto_cache_eq): Likewise.
	(lto_cache_store_DIE): Likewise.
	(lto_cache_lookup_DIE): Likewise.
	(lto_read_referenced_type_DIE): Use the cache.
	(lto_read_pointer_type_DIE): Robustify.
	(lto_read_DIE): Use the cache.
	* lto.h (hashtab.h): Include.
	(lto_info_fd): Add DIE cache.
	* Make-lang.in (LTO_H): New variable.
	(lto/lto-lang.o): Use LTO_H.
	(lto/lto-elf.o): Likewise.
	(lto/lto-symtab.o): Likewise.

2006-07-09  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (lto_abi_mismatch_error): New function.
	(lto_abbrev_read): Initialize num_abbrevs.
	(lto_read_form): Specify allowed form classes for
	DW_AT_declaration.  Adjust for change to lto_set_cu_context.
	(lto_read_variable_formal_parameter_constant_DIE): Handle
	DW_AT_declaration.  Call lto_symtab_merge_var.
	(lto_read_pointer_type_DIE): New function.
	(lto_read_base_type_DIE): Use build_nonstandard_integer_type.  Do
	not creat TYPE_DECLs for types that already have them.
	(lto_read_DIE): Add lto_read_pointer_type_DIE.
	(lto_set_cu_context): Make cu_start point to the header, not the
	first DIE.
	(lto_file_read): Adjust for change to lto_set_cu_context.
	* Make-lang.in (LTO_OBJS): Add lto-symtab.o.
	(lto/lto-symtab.o): New rule.
	* lto-tree.h (lang_identifier): Add decl field.
	(LANG_IDENTIFIER_CAST): New macro.
	(LTO_IDENTIFIER_DECL): Likewise.
	(lto_symtab_merge_var): Declare.
	* lto-symtab.c: New file.

2006-07-02  Daniel Berlin  <dberlin@dberlin.org>

	* lto.c (lto_context): Add current_cu and info_fd members.
	(DWARF2_CompUnit): New structure.
	(lto_read_DIE): Take lto_info_fd *.
	(lto_read_child_DIEs): Ditto.
	(lto_file_corrupt_error): Constify argument.
	(lto_set_cu_context): New function
	(lto_info_fd_init): Ditto.
	(lto_info_fd_close): Ditto.
	(lto_file_init): Use lto_info_fd_init.
	(lto_file_close): Use lto_info_fd_close.
	(lto_read_initial_length): Pass in pointer to header size.
	(lto_read_comp_unit_header): Correct cu_length to
	real length from beginning of header.  Take lto_info_fd * as
	argument.
	(find_cu_for_offset): New function.
	(lto_read_form): Change first argument to lto_info_fd *.
	Add FORM_CONTEXT argument.
	Handle DW_FORM_ref_addr.
	(lto_read_tag_DIE): Change first argument to lto_info_fd *.	
	(LTO_BEGIN_READ_ATTRS_UNCHECKED): Save old context.
	Swap contexts if necessary for form.
	(LTO_BEGIN_READ_ATTRS): Cast fd to right type for
	lto_file_corrupt_error.
	(LTO_END_READ_ATTRS): Swap contexts back if it had changed.
	(lto_read_referenced_type_DIE): Change first argument to
	lto_info_fd *.  Access lto_fd fields through base pointer.
	(lto_read_compile_unit_DIE): Change first argument to an
	lto_info_fd *.
	(lto_read_variable_formal_parameter_constant_DIE): Ditto.
	(lto_read_base_type_DIE): Ditto.
	(lto_read_child_DIEs): Ditto.
	(lto_read_DIE): Ditto.  Change type of function pointer.
	(lto_info_read): New function.
	(lto_set_cu_context): Ditto.
	(lto_file_read): Use lto_info_read, walk resulting CU's
	(lto_main): Update for lto_info_fd change.
	* lto-elf.c (lto_elf_file_open): Cast lto_info_fd to lto_fd where
	necessary.
	* lto.h (DWARF2_CompUnit): New structure.
	(lto_info_fd): Ditto.
	(lto_file): Change debug_info to be an lto_info_fd.
	
2006-06-25  Mark Mitchell  <mark@codesourcery.com>

	* lto.c (toplev.h): Include it.
	(dwarf2.h): Likewise.
	(tree.h): Likewise.
	(tm.h): Likewise.
	(cgraph.h): Likewise.
	(ggc.h): Likewise.
	(inttypes.h): Likewise.
	(DWARF2_attr): New type.
	(DWARF2_abbrev): Likewise.
	(DWARF2_class): Likewise.
	(DWARF2_form_data): Likewise.
	(lto_context): Likewise.
	(lto_fd_init): New function.
	(lto_abbrev_fd_init): Likewise.
	(lto_abbrev_fd_close): Likewise.
	(lto_file_init): Use them.
	(lto_file_close): New function.
	(lto_file_corrupt_error): Likewise.
	(LTO_CHECK_INT_VAL): New macro.
	(lto_check_size_t_val): New function.
	(lto_check_int_val): Likewise.
	(LTO_READ_TYPE): New macro.
	(lto_read_ubyte): New function.
	(lto_read_uhalf): Likewise.
	(lto_read_uword): Likewise.
	(lto_read_uleb128): Likewise.
	(lto_read_initial_length): Likewise.
	(lto_abbrev_read_attrs): Likewise.
	(lto_abbrev_read): Likewise.
	(lto_abbrev_lookup): Likewise.
	(lto_read_section_offset): Likewise.
	(lto_read_comp_unit_header): Likewise.
	(lto_read_form): Likewise.
	(LTO_BEGIN_READ_ATTRS_UNCHECKED): New macro.
	(LTO_BEGIN_READ_ATTRS): Likewise.
	(LTO_END_READ_ATTRS): Likewise.
	(lto_unsupported_attr_error): New function.
	(lto_get_identifier): Likewise.
	(lto_read_referenced_type_DIE): Likewise.
	(lto_read_compile_unit_DIE): Likewise.
	(lto_read_variable_formal_parameter_constant_DIE): Likewise.
	(lto_read_base_type_DIE): Likewise.
	(lto_read_DIE): Likewise.
	(lto_read_child_DIEs): Likewise.
	(lto_file_read): Read DIEs.
	(lto_main): Ask middle end to emit entities.
	* lto-tree.h (lang_identifier): Inherit from tree_identifier.
	* lto-elf.c (lto_elf_file_open): Adjust for interface changes.
	(lto_elf_file_close): Likewise.
	* lto.h (lto_file): Declare.
	(DWARF2_abbrev): Likewise.
	(lto_fd): New type.
	(lto_abbrev_fd): Likewise.
	(lto_file): Use new types.
	(lto_file_close): Declare.
	* lto-lang.c (lto_init): Always use unit-at-a-time mode.
	
2006-06-18  Mark Mitchell  <mark@codesourcery.com>

	* lto.h: New file.
	* lto.c: New file.
	* lto-elf.c: New file.
	* lto-lang.c (flags.h): Include it.
	(lto.h): Likewise.
	(lto_init): New function.
	(lto_write_globals): Remove.
	(LANG_HOOKS_WRITE_GLOBALS): Define to lhd_do_nothing. 
	(LANG_HOOKS_INIT): Define.
	(LANG_HOOKS_PARSE_FILE): Likewise.
	* Make-lang.in (LTO_OBJS): Add lto.o and lto-elf.o.
	(LTO_EXE): Link with libelf.
	(lto/lto-lang.o): Update dependencies.
	(lto/lto.o): New target.
	(lto/lto-elf.o): Likewise.

2006-06-12  Mark Mitchell  <mark@codesourcery.com>

	* config-lang.in: New file.
	* Make-lang.in: Likewise.
	* lto-tree.h: Likewise.
	* lto-lang.c: Likewise.

