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-2017 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.
