2021-06-01  Release Manager

	* GCC 9.4.0 released.

2020-03-12  Release Manager

	* GCC 9.3.0 released.

2020-01-20  Martin Liska  <mliska@suse.cz>

	Backport from mainline
	2020-01-16  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (lto_balanced_map): Remember
	best_noreorder_pos and then restore to it
	when we revert.

2019-11-08  Jakub Jelinek  <jakub@redhat.com>

	Backported from mainline
	2019-10-31  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/92231
	* lto-lang.c (handle_const_attribute): Don't call fndecl_built_in_p
	on *node that is not FUNCTION_DECL.

2019-10-26  Jan Hubicka  <hubicka@ucw.cz>

	Backport from mainline

	2019-10-12  Jan Hubicka  <hubicka@ucw.cz>
	* lto.c (lto_wpa_write_files): Do not update bodies of clones.

	2019-10-11  Jan Hubicka  <hubicka@ucw.cz>
	* lto.c (lto_wpa_write_files): Prepare all bodies for streaming.

2019-10-25  Jan Hubicka  <hubicka@ucw.cz>

	Backport from mainline
	* lto-partition.c (add_symbol_to_partition_1): Update.
	(undo_parittion): Update.

2019-08-12  Release Manager

	* GCC 9.2.0 released.

2019-05-03  Release Manager

	* GCC 9.1.0 released.

2019-04-12  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (do_stream_out): rename to ...
	(stream_out): ... this one; move original code to ...
	(stream_out_partitions_1, stream_out_partitions): ... these new
	functions.
	(lto_wpa_write_files): Honnor lto_parallelism

2019-03-26  Martin Liska  <mliska@suse.cz>

	* lto-symtab.c (lto_symtab_merge_decls_2): Fix option name
	wrapping.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* lto-lang.c (lto_post_options): Wrap an option name
	in a string format message and fix GNU coding style.
	* lto-symtab.c (lto_symtab_merge_decls_2): Likewise.

2019-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/79645
	* lang.opt: Terminate description text with a dot.

2019-02-28  Jason Merrill  <jason@redhat.com>

	PR c++/88049 - ICE with undefined destructor and anon namespace.
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Return early
	for a type in an anonymous namespace.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615

	* lto-partition.c: Mechanically replace "can not" with "cannot".
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2019-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2018-12-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations
	for method whose basetype was already reported.

2018-11-30  Michael Ploujnikov  <michael.ploujnikov@oracle.com>

	Minimize clone counter memory usage in LTO.
	* lto-partition.c (privatize_symbol_name_1): Keep track of
	non-unique symbol counters in the lto_clone_numbers hash
	map.
	(lto_promote_cross_file_statics): Allocate and free the
	lto_clone_numbers hash map.
	(lto_promote_statics_nonwpa): Free the lto_clone_numbers hash
	map.

2018-11-28  Jan Hubicka  <jh@suse.cz>

	* lto.c (lto_read_decls): Fix handling of INTEGER_CST.

2018-11-22  Jan Hubicka  <jh@suse.cz>

	* lto.c (cmp_type_location): Remove.
	(lto_read_decls): Do not allocate odr_types.

2018-11-19  Martin Liska  <mliska@suse.cz>

	PR lto/88077
	* lto-symtab.c (lto_symtab_merge): Transform the
	condition before r256989.

2018-11-16  Martin Liska  <mliska@suse.cz>

	PR lto/88004
	* lto-symtab.c (lto_symtab_merge_symbols_1): Do not call
	lto_symtab_symbol_p as it does checking of transparent alias.
	These needs to be also merged in the function.

2018-10-30  Michael Ploujnikov  <michael.ploujnikov@oracle.com>

	* lto-partition.c (privatize_symbol_name_1): Use
	  clone_function_name_numbered.

2018-10-26  Jan Hubicka  <jh@suse.cz>

	* lto/lto-symtab.c (lto_symtab_merge_decls_2): Fix extra space.

2018-10-17  David Malcolm  <dmalcolm@redhat.com>

	* Make-lang.in (selftest-lto): New.

2018-08-29  Martin Liska  <mliska@suse.cz>

	PR bootstrap/87130
	* lto.c (read_cgraph_and_symbols): Fix thinko, revert
	to behavior before r263887.

2018-08-27  Martin Liska  <mliska@suse.cz>

	* lto-lang.c (handle_const_attribute): Use new function
	fndecl_built_in_p and remove check for FUNCTION_DECL if
	possible.
	* lto-symtab.c (lto_symtab_merge_p): Likewise.
	(lto_symtab_merge_decls_1): Likewise.
	(lto_symtab_merge_symbols): Likewise.
	* lto.c (lto_maybe_register_decl): Likewise.
	(read_cgraph_and_symbols): Likewise.

2018-08-21  Tom de Vries  <tdevries@suse.de>

	* lto.c (lto_main):  Call debuginfo_early_start and
	debuginfo_early_stop.

2018-07-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/82063
	* lto-lang.c (lto_handle_option): Change function argument
	to HOST_WIDE_INT.

2018-07-20  Richard Biener  <rguenther@suse.de>

	PR debug/86585
	* lto.c (unify_scc): Before we throw away an SCC see if we
	can amend prevailing single-entry SCC with debug refs.

2018-07-13  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (do_stream_out): Add PART parameter; open dump file.
	(stream_out): Add PART parameter; pass it to do_stream_out.
	(lto_wpa_write_files): Update call of stream_out.

2018-07-04  Martin Liska  <mliska@suse.cz>

	PR middle-end/66240
	PR target/45996
	PR c/84100
	* lto.c (compare_tree_sccs_1): Use cl_optimization_option_eq
	instead of memcmp.

2018-06-20  Martin Liska  <mliska@suse.cz>

	* lto-symtab.c (lto_symtab_merge_p): Remove not valid
	FIXME comment.

2018-06-19  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): Use symbol_summary::get instead
	of get_create.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.

2018-06-19  Martin Liska  <mliska@suse.cz>

	* config-lang.in: Remove stagestuff.

2018-06-08  Jan Hubicka  <hubicka@ucw.cz>

	* lto-lang.c (lto_link_dump_id, decl_merge_dump_id, partition_dump_id):
	New global vars.
	(lto_register_dumps): New hook.
	(LANG_HOOKS_REGISTER_DUMPS): New.
	* lto-partition.c: Dump into dump_file instead of symtab->dump_file.
	* lto-symtab.c: Include lto.h; dump into dump_file instead of
	symtab->dump_file.
	(lto_symtab_merge_decls): Initialize dump file.
	* lto.c (read_cgraph_and_symbols): Initialize dump file.
	(do_whole_program_analysis): Likewise.

2018-06-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (lto_balanced_map): Use cgraph_node::uid
	instead of summary_uid.

2018-06-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): Use get_create instead
	of get.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.

2018-06-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_references_to_partition): Remove support
	for MPX (macros, related functions, fields in cgraph_node, ...).
	(add_symbol_to_partition_1): Likewise.
	(privatize_symbol_name): Likewise.
	* lto-symtab.c (lto_cgraph_replace_node): Likewise.

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

	* lto.c (cmp_type_location): Expand locations only once.

2018-05-30  Jan Hubicka  <hubicka@ucw.cz>

	* lang.opt (lto_linker_output): Add nolto-rel.
	* lto-lang.c (lto_post_options): Handle LTO_LINKER_OUTPUT_REL
	and LTO_LINKER_OUTPUT_NOLTOREL.
	(lto_init): Generate lto when doing incremental link.
	* lto.c (lto_precess_name): Add lto1-inclink.

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

	PR lto/85583
	* lto-partition.c (account_reference_p): Do not account
	references from aliases; do not account refernces from
	external initializers.

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

	* lto.c (cmp_partitions_size): Remove.
	(lto_wpa_write_files): Also output priorities; do not sort partitions.
	(cmp_partition_order): Move to ...
	* lto-partition.c (cmp_partition_order): ...
	(lto_1_to_1_map): Sort partitions.

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

	* lto-partition.c (lto_balanced_map): Fix sanity check.

2018-04-19  Jan Hubicka  <jh@suse.cz>

	* lto-partition.c: Include sreal.h
	(add_symbol_to_partition_1): Use size instead of self_size
	for size estimate.
	(account_reference_p): New.
	(lto_balanced_map): Use 64bit arithmetics for size calculatoins; cleanup;
	fix accounting errors in boundary size; add debug output; combine cost
	as cost/size instead of cost/internal; reduce the partitioning error to
	+- 1/8 of the parttion size.

2018-04-19  Martin Liska  <mliska@suse.cz>

	* lto-symtab.c (lto_symtab_resolve_symbols): Do not bail out
	for multiple PREVAILING_DEF_IRONLY for common symbols.

2018-04-18  Martin Liska  <mliska@suse.cz>

	* lto.c (lto_read_decls): Fix GNU coding style and typos.

2018-04-18  Martin Liska  <mliska@suse.cz>

	PR ipa/83983
	PR ipa/85391
	* lto.c (cmp_type_location): New function.
	(lto_read_decls): First collect all types, then
	sort them according by location before register_odr_type
	is called.

2018-04-18  Jan Hubicka  <jh@suse.cz>
	    Martin Liska  <mliska@suse.cz>

	PR lto/85391
	* lto.c (lto_read_decls): Do not test TYPE_CANONICAL before registering odr
	types.

2018-04-11  Martin Liska  <mliska@suse.cz>

	* lto-symtab.c (lto_symtab_merge_p): Use attribute_value_equal
	function.

2018-04-10  Martin Liska  <mliska@suse.cz>

	PR lto/85248
	* lto-symtab.c (lto_symtab_merge_p): Do not check for
	TREE_VALUES of error attributes.

2018-04-10  Richard Biener  <rguenther@suse.de>
	    Martin Liska  <mliska@suse.cz>

	PR lto/85248
	* lto-symtab.c (lto_symtab_merge_p): Handle noreturn attribute.

2018-02-08  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (lto_balanced_map): Watch overflow.

2018-02-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/81360
	* lto.c (unify_scc): Register prevailing trees, not trees to be freed.
	(read_cgraph_and_symbols): Use
	symtab_node::output_to_lto_symbol_table_p.

2018-01-30  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (register_resolution): Remove forgotten sanity check.

2018-01-30  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/81004
	* lto.c: Include builtins.h
	(register_resolution): Merge resolutions in case trees was
	merged across units.
	(lto_maybe_register_decl): Break out from ...
	(lto_read_decls): ... here.
	(unify_scc): Also register decls here.
	(read_cgraph_and_symbols): Sanity check that all resolutions was
	read.

2018-02-02  Eric Botcazou  <ebotcazou@adacore.com>

	PR lto/83954
	* lto-symtab.c (warn_type_compatibility_p): Do not recurse into the
	component type of array types with non-aliased component.

2018-01-30  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/83954
	* lto-symtab.c (warn_type_compatibility_p): Silence false positive
	for type match warning on arrays of pointers.

2018-01-23  Martin Liska  <mliska@suse.cz>

	PR lto/81440
	* lto-symtab.c (lto_symtab_merge): Handle and do not warn about
	trailing arrays at the end of a struct.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* lto-lang.c (lto_type_for_mode): Handle MODE_VECTOR_BOOL.

2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* lto-lang.c (lto_type_for_mode): Check valid_vector_subparts_p.
	* lto.c (hash_canonical_type): Handle polynomial TYPE_VECTOR_SUBPARTS.

2018-01-03  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2017-12-15  Jakub Jelinek  <jakub@redhat.com>

	* lto-lang.c (lto_attribute_table, lto_format_attribute_table): Swap
	affects_type_identity and handler fields, adjust comments.

2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>

	* lto.c (compare_tree_sccs_1): Compare the new VECTOR_CST flags.

2017-12-07  Martin Sebor  <msebor@redhat.com>

	PR c/81544
	* lto-lang.c (lto_attribute_table): Initialize new member of struct
	attribute_spec.

2017-11-30  Jakub Jelinek  <jakub@redhat.com>

	* lto.c (create_subid_section_table): Use ; instead of ;;.

2017-11-22  Marek Polacek  <polacek@redhat.com>

	PR c++/60336
	PR middle-end/67239
	PR target/68355
	* lto.c (compare_tree_sccs_1): Compare TYPE_EMPTY_P and DECL_PADDING_P.

2017-11-10  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (lto_balanced_map): Use frequency accessor.

2017-10-13  Jan Hubicka  <hubicka@ucw.cz>

	* lto-lang.c (lto_post_options): Clean shlib flag when not doing PIC.

2017-10-11  Nathan Sidwell  <nathan@acm.org>

	* lto.c (mentions_vars_p_decl_with_vis): Use
	DECL_ASSEMBLER_NAME_RAW.
	(lto_fixup_prevailing_decls): Likewise.

2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>

	* lto.c (compare_tree_sccs_1): Use wi::to_wide when
	operating on trees as wide_ints.

2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* lto-lang.c (lto_type_for_mode): Use as_a <scalar_int_mode>.

2017-08-21  Richard Biener  <rguenther@suse.de>

	* lto.c (unify_scc): Truncate DIE reference queue for dropped SCCs.
	(lto_read_decls): Process TRANSLATION_UNIT_DECLs.  Remove
	TYPE_DECL debug processing, register DIE references from
	prevailing SCCs with the debug machinery.
	(lto_section_with_id): Handle LTO debug sections.

2017-08-16  Nathan Sidwell  <nathan@acm.org>

	* lto.c (mentions_vars_p_type): Use TYPE_LANG_SLOT_1.
	(compare_tree_sccs_1): No need to compare TYPE_BINFO directly.
	(lto_fixup_prevailing_decls): Use TYPE_LANG_SLOT_1.

2017-08-08  Tom de Vries  <tom@codesourcery.com>

	* lto.c: Include attribs.h.

2017-08-08  Martin Liska  <mliska@suse.cz>

	* lto-lang.c: Include header files.
	* lto-symtab.c: Likewise.

2017-08-03  Richard Biener  <rguenther@suse.de>

	* lto-symtab.h (lto_symtab_prevail_decl): Do not use
	DECL_ABSTRACT_ORIGIN as flag we can end up using that.  Instead
	use DECL_LANG_FLAG_0.
	(lto_symtab_prevail_decl): Likewise.

2017-07-07  Torsten Duwe  <duwe@suse.de>

	* lto-lang.c (lto_attribute_table): Add entry for
	"patchable_function_entry".

2017-07-19  Nathan Sidwell  <nathan@acm.org>

	* lto.c (mentions_vars_p_type): Use TYPE_{MIN,MAX}_VALUE_RAW.
	(compare_tree_sccs_1, lto_fixup_prevailing_decls): Likewise.

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

	* lto-partition.c (lto_balanced_map): Do not check
	flag_toplevel_reorder.

2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
	* lto-lang.c (lto_init): Use builtin_structptr_types.

2017-06-15  Jan Hubicka  <hubicka@ucw.cz>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	PR lto/69866
	* lto-symtab.c (lto_symtab_merge_symbols): Drop useless definitions
	that resolved externally.

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

	* lto.c (do_whole_program_analysis): Replace inline_free_summary
	by ipa_free_fn_summary.

2017-05-23  Martin Liska  <mliska@suse.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Use
	symtab_node::dump_{asm_,}name functions.
	* lto.c (read_cgraph_and_symbols): Likewise.
	(do_whole_program_analysis): Likewise.

2017-05-23  Martin Liska  <mliska@suse.cz>

	* lto.c (read_cgraph_and_symbols): Use the renamed function.
	(do_whole_program_analysis): Use the renamed function.

2017-05-22  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c: Replace ipa-inline.h by ipa-fnsummary.h
	* lto-partition.c: Replace ipa-inline.h by ipa-fnsummary.h

2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>

	PR c++/80038
	* lto-lang.c (lto_init): Set in_lto_p earlier.

2017-04-12  Richard Biener  <rguenther@suse.de>
	Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR middle-end/79671
	* lto.c (compare_tree_sccs_1): Compare TYPE_TYPELESS_STORAGE.

2017-02-14  Martin Liska  <mliska@suse.cz>

	* lto.c (do_stream_out): Free LTO file filename string.

2017-01-19  David Malcolm  <dmalcolm@redhat.com>

	* lto-lang.c (builtin_type_for_size): Convert call to
	lto_type_for_size to one through the langhook.
	(lto_type_for_size): Move to langhooks.c and rename to
	lhd_type_for_size.
	(LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.

2017-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/50199
	* lto-lang.c (lto_post_options): Force flag_merge_constants = 1
	if it was 0.

2017-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR translation/79019
	PR translation/79020
	* lto-symtab.c (lto_symtab_merge_symbols): Fix comment typo.

2017-01-06  Nathan Sidwell  <nathan@acm.org>

	* lto-partition.c (promote_symbol): Write to dump file sooner,
	include alias promoting too.

	* lto-partition.c (lto_balanced_map): Reformat/respell comment.
	(may_need_named_section_p): Likewise.
	(rename_statics): Likewise.
	(lto_promote_cross_file_statics): Likewise.

2017-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

2016-11-30  Georg-Johann Lay  <avr@gjlay.de>

	PR lto/78562
	* lto-symtab.c (lto_symtab_merge_decls_2): Don't diagnose type
	mismatch if the two types are built-in.

2016-11-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* lto-lang.c (lto_init): Remove initialization of ptrdiff_type_node.

2016-11-23  Richard Biener  <rguenther@suse.de>

	PR lto/78472
	* lto.c (hash_canonical_type): Ignore zero-sized fields.

2016-11-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR c++/71973
	* lto-lang.c (lto_init): Assert const_tm_ptr_type_node is sane.

2016-11-18  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* lto.c (offload_handle_link_vars): Use SET_DECL_MODE.

2016-10-31  Richard Biener  <rguenther@suse.de>

	PR lto/78129
	* lto.c (do_whole_program_analysis): Bail out after errors
	from WPA analysis.

2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* lto-partition.c: Include tree-vrp.h.
	* lto.c: Likewise.

2016-09-20  Richard Biener  <rguenther@suse.de>

	* lto.c (lto_main): Call early_finish with "<artificial>" as
	filename.

2016-09-19  Richard Biener  <rguenther@suse.de>

	* lto.c (lto_main): Invoke early_finish debug hook.

2016-07-25  Richard Biener  <rguenther@suse.de>

	* lto.c (compare_tree_sccs_1): Remove streamer_handle_as_builtin_p uses.
	(unify_scc): Likewise.
	(lto_read_decls): Likewise.

2016-06-28  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in: Don't cat ../stage_current if it does not exist.

2016-06-23  Andi Kleen  <ak@linux.intel.com>

	* Make-lang.in: Add support for autofdo (disabled for now)

2016-06-10  Martin Sebor  <msebor@redhat.com>

	PR c/71392
	* gcc/lto/lto-lang.c (handle_nonnull_attribute): Accept the nonnull
	attribute in type-generic builtins.

2016-05-16  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (add_symbol_to_partition_1): Likewise.

2016-05-03  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.

2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* lto-partition.h (lto_balanced_map): New parameter.
	* lto-partition.c (lto_balanced_map): New parameter
	max_partition_size.
	Check if partition size is greater than max_partition_size.
	* lto.c (do_whole_program_analysis): Adjust calls to
	lto_balanced_map() to pass 2nd argument.

2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>

	PR lto/70258
	* lto-lang.c (lto_post_options): Set flag_pic to flag_pie for
	PIE.

2016-03-08  Jakub Jelinek  <jakub@redhat.com>

	* lto-symtab.h (lto_symtab_prevail_decl): Fix spelling
	- becuase -> because.

2016-02-15  Tom de Vries  <tom@codesourcery.com>

	PR lto/69655
	* lto.c (read_cgraph_and_symbols): Call input_offload_tables with
	argument.

2016-01-27  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): Remove usage
	of hsa_summaries.

2016-01-19  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69136
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract
	decls have no assemblernames.

2016-01-19  Martin Liska  <mliska@suse.cz>
	    Martin Jambor  <mjambor@suse.cz>

	* lto-partition.c: Include "hsa.h"
	(add_symbol_to_partition_1): Put hsa implementations into the
	same partition as host implementations.

2016-01-12  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/69003
	* lto-partition.c (rename_statics): Fix pasto.

2016-01-18  Richard Biener  <rguenther@suse.de>

	PR lto/69337
	* lto-symtab.c (lto_symtab_merge): Return early for mismatched
	function vs. variable.

2016-01-12  Richard Biener  <rguenther@suse.de>

	PR lto/69077
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly
	merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags.

2016-01-04  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

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

	PR lto/68878
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): New function.
	* lto-symtab.h (lto_symtab_prevailing_virtual_decl): Declare.
	(lto_symtab_prevailing_decl): Use it.

2015-12-15  Ilya Verbin  <ilya.verbin@intel.com>

	* lto.c: Include stringpool.h and fold-const.h.
	(offload_handle_link_vars): New static function.
	(lto_main): Call offload_handle_link_vars.

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

	* lto.c (lto_read_in_decl_state): Unpickle compressed bit.

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

	PR ipa/61886
	* lto-symtab.c (lto_symtab_merge_p): Avoid merging across different
	values of error and warning attributes.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/68811
	* lto.c (lto_fixup_prevailing_decls): Do not check TREE_CHAIN of
	DECL.
	(LTO_NO_PREVAIL): Use gcc_checking_assert.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/68811
	* lto-symtab.c (lto_symtab_merge_decls_2): Decl can never be prevailed
	by itself.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* lto-symtab.c: Include lto-symtab.h.
	(lto_cgraph_replace_node): Do not merge profiles here.
	(lto_symtab_merge_p): New function.
	(lto_symtab_merge_decls_2): Honor lto_symtab_merge_p.
	(lto_symtab_merge_symbols_1): Turn unmerged decls into transparent
	aliases.
	(lto_symtab_merge_symbols): Do not clear node->aux; we no longer use it.
	(lto_symtab_prevailing_decl): Move to lto-symtab.h; rewrite.
	* lto.c: Include lto-symtab.h
	* lto-symtab.h: New.

2015-12-08  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/61886
	* lto-partition.c (add_symbol_to_partition_1): Transparent aliases
	are not part of the definition.
	(contained_in_symbol): Likewise.
	(promote_symbol): When promoting a symbol also promote all transparent
	aliases.
	(rename_statics): Weakref needs unique name, too.

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

	PR ipa/61886
	* lto-partition.c (add_symbol_to_partition_1, contained_in_symbol,
	rename_statics, rename_statics): Handle transparent aliases.

2015-12-04  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (lto_cgraph_replace_node): Update code computing
	merged_comdat.

2015-12-01  Jan Hubicka  <hubicka@ucw.cz>

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

2015-11-25  Jan Hubicka  <jh@suse.cz>

	* lto-lang.c (lto_post_options): Process flag_lto_linker_output.
	* lang.opt (lto_linker_output): New enum.
	(flinker_output): New flag.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c: Include alias.h
	(warn_type_compatibility_p): Replace types_compatible_p checks by
	TBAA and size checks; set bit 2 if locations are TBAA incompatible.
	(lto_symtab_merge): Compare DECL sizes.
	(lto_symtab_merge_decls_2): Warn about TBAA in compatibility.

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (iterative_hash_canonical_type): Recruse for all types
	which pass !canonical_type_used_p.
	(gimple_register_canonical_type_1): Sanity check we do not compute
	canonical type of anything with !canonical_type_used_p.
	(gimple_register_canonical_type): Skip all types that are
	!canonical_type_used_p

2015-11-24  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (unify_scc): Use free_node.

2015-11-21  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (iterative_hash_canonical_type): Always recurse for pointers.
	(gimple_register_canonical_type_1): Check that pointers do not get
	canonical types.
	(gimple_register_canonical_type): Do not register pointers.

2015-11-21  Jan Hubicka  <hubicka@ucw.cz>

	* lto-symtab.c (warn_type_compatibility_p): Do not set ODR mismatch
	flag for types that are not ODR; fix loop walking parameters.

2015-11-11  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Remove unused header files.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>

	* lto.c (compare_tree_sccs_1): Deal with TYPE_REVERSE_STORAGE_ORDER.

2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>

	* lto-lang.c: Don't undef DEF_BUILTIN.

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

	* lto-lang.c: Reorder #include's and remove duplicates.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>

	* lto.c (unify_scc): Use flag_checking and remove ENABLE_CHECKING
	conditionals.
	(lto_fixup_state): Likewise.
	(do_whole_program_analysis): Use
	symtab_node::checking_verify_symtab_nodes and remove ENABLE_CHECKING
	conditionals.

2015-10-13  Jakub Jelinek  <jakub@redhat.com>

	* lto-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
	DEF_FUNCTION_TYPE_11): Define.

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

	* lto.c (hash_canonical_type): Honor
	type_with_interoperable_signedness.

2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>

	* lto-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
	(DEF_FUNCTION_TYPE_VAR_11): Delete.

2015-08-31  Richard Biener  <rguenther@suse.de>

	* lto.c (compare_tree_sccs_1): Compare DECL_ABSTRACT_ORIGIN.
	* lto-symtab.c (lto_symtab_merge): Merge DECL_POSSIBLY_INLINED flag.
	(lto_symtab_prevailing_decl): Do not replace a decl that didn't
	participate in merging with something else.

2015-08-31  Richard Biener  <rguenther@suse.de>

	* lto-symtab.c (lto_symtab_prevailing_decl): Remove redundant
	test, do not replace a non-builtin with a builtin.
	* lto.c (compare_tree_sccs_1): Do not merge things we stream
	as builtins vs. non-builtins.

2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* lto.h: Remove useless typedefs.

2015-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* lto.c: Remove redundant includes.

2015-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* lto-lang.c: Fix double word typos.

2015-07-10  Andrew MacLeod  <amacleod@redhat.com>

	* lto.c: Include cfghooks.h rather than predict.h.

2015-07-09  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Adjust includes of target.h, alloc-pool.h and
	lto-streamer.h.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.

2015-07-09  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Adjust includes for flags.h changes.

2015-07-07  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Adjust includes.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.
	* lto-tree.h: Likewise.
	* lto.c: Likewise.

2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	* lto.c (tree_scc_hasher): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.

2015-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Do not include input.h, line-map.h or is-a.h.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2015-06-14  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/66181
	* lto.c (compare_tree_sccs_1): Do not compare TYPE_NO_FORCE_BLK.

2015-06-12  DJ Delorie  <dj@redhat.com>

	* lto-lang.c (lto_type_for_size): Include intN types.
	(lto_type_for_mode): Likewise.

2015-06-08  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (hash_canonical_type): Drop hashing of TYPE_STRING_FLAG.

2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

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

2015-06-06  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/65378
	* lto-symtab.c (warn_type_compatibility_p): Fix call of
	odr_or_derived_type_p.
	(lto_symtab_merge_decls_2): Update call of warn_types_mismatch.

2015-06-08  Jan Hubicka  <hubicka@ucw.cz>


	* lto.c (hash_canonical_type): Do not hash TREE_CODE of TREE_TYPE of
	pointers.

2015-06-05  Aldy Hernandez  <aldyh@redhat.com>

	* lto-lang.c (lto_write_globals): Remove.
	(LANG_HOOKS_WRITE_GLOBALS): Same.

2015-06-04  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c: Adjust includes for restructured coretypes.h.
	* lto-object.c: Likewise.
	* lto-partition.c: Likewise.
	* lto-symtab.c: Likewise.
	* lto.c: Likewise.

2015-06-04  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (hash_canonical_type): Use tree_code_for_canonical_type_merging.

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

	* lto.c (iterative_hash_canonical_type,
	gimple_register_canonical_type): only hash main variants of types

2015-05-27  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (new_partition): Reset number of symbols.
	(add_symbol_to_partition_1): Increment number of symbols.
	(undo_partition): Decrement number of symbols.
	(lto_balanced_map): Dump number of symbols and insns that
	belong to a partition.
	* lto-partition.h (struct ltrans_partition_def): Add symbol counter.

2015-05-22  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (hash_canonical_type): Be sure we hash only types that
	need alias set.
	(gimple_register_canonical_type_1): Do not produce canonical
	types for types that do not need alias sets.

2015-05-22  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (hash_canonical_type): Drop hashing of METHOD_BASETYPE.

2015-05-19  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (gimple_canonical_types_compatible_p): Move to tree.c

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

	* lto-symtab.c (warn_type_compatibility_p): Break out from ...;
	compare ODR types (if available) and function types.
	(lto_symtab_merge): ... here; output ODR violation warnings
	and call warn_types_mismatch.

2015-04-29  Jan Hubicka  <hubicka@ucw.cz>

	* lto.c (lto_fixup_state): Call verify_type.

2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>

	* lto.c: Adjust for hash_table changes.

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.

Copyright (C) 2006-2019 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
