2022-10-29  Thomas Schwinge  <thomas@codesourcery.com>

	* lang.opt: Better separate 'LTO' vs. 'LTODump'.

2022-10-28  Joseph Myers  <joseph@codesourcery.com>

	* lto-common.cc (compare_tree_sccs_1): Compare
	TYPE_NO_NAMED_ARGS_STDARG_P.

2022-10-28  Martin Liska  <mliska@suse.cz>

	* lto-dump.cc (dump_list): Remove trailing return.
	(dump_symbol): Likewise.
	(dump_body): Filter name based on mangled name.
	(dump_tool_help): Use GIMPLE wording.
	(lto_main): Update wording.

2022-10-27  Martin Liska  <mliska@suse.cz>

	PR lto/107418
	* lto-dump.cc (lto_main): Do not load LTO stream for aliases.

2022-09-15  Richard Biener  <rguenther@suse.de>

	* lto-lang.cc (lto_build_c_type_nodes): Do not initialize
	void_list_node.

2022-08-22  Martin Liska  <mliska@suse.cz>

	PR lto/106700
	* lto.cc (wait_for_child): Ask if we are connected to jobserver.
	(stream_out_partitions): Likewise.

2022-08-10  Martin Liska  <mliska@suse.cz>

	PR lto/106328
	* lto.cc (wait_for_child): Decrement nruns once a process
	finishes.
	(stream_out_partitions): Use job server if active.
	(do_whole_program_analysis): Likewise.

2022-07-08  Martin Liska  <mliska@suse.cz>

	* lto-dump.cc (lto_main): Exit in the function
	as we don't want any LTO bytecode processing.

2022-06-27  David Malcolm  <dmalcolm@redhat.com>

	* lto-dump.cc: Add "final" and "override" to various vfunc
	implementations, removing redundant "virtual" as appropriate.

2022-05-16  Martin Liska  <mliska@suse.cz>

	* lto-common.cc (lto_resolution_read): Use ARRAY_SIZE.
	* lto-lang.cc (lto_init): Likewise.

2022-03-23  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/104285
	* lto-partition.cc (maybe_rewrite_identifier): Use get_identifier
	for the returned string to be usable as hash key.
	(validize_symbol_for_target): Hence, use return value directly.
	(privatize_symbol_name_1): Track maybe_rewrite_identifier renames.
	* lto.cc (offload_handle_link_vars): Move function up before ...
	(do_whole_program_analysis): Call it after static renamings.
	(lto_main): Move call after static renamings.

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

	PR middle-end/90348
	PR middle-end/104092
	* lto-common.cc (compare_tree_sccs_1): Compare CLOBBER_KIND.

2022-02-02  Martin Liska  <mliska@suse.cz>

	PR lto/104333
	* lto-common.cc (read_cgraph_and_symbols): Move resolution
	checking for number of files later and report a reasonable
	error message.
	* lto-object.cc (lto_obj_file_open): Make error fatal.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* config-lang.in: Rename .c names to .cc.
	* lang-specs.h: Likewise.
	* lto-common.cc (gimple_register_canonical_type_1): Likewise.
	* lto-common.h: Likewise.
	* lto-dump.cc (lto_main): Likewise.
	* lto-lang.cc (handle_fnspec_attribute): Likewise.
	(lto_getdecls): Likewise.
	(lto_init): Likewise.
	* lto.cc (lto_main): Likewise.
	* lto.h: Likewise.

2022-01-17  Martin Liska  <mliska@suse.cz>

	* common.c: Moved to...
	* common.cc: ...here.
	* lto-common.c: Moved to...
	* lto-common.cc: ...here.
	* lto-dump.c: Moved to...
	* lto-dump.cc: ...here.
	* lto-lang.c: Moved to...
	* lto-lang.cc: ...here.
	* lto-object.c: Moved to...
	* lto-object.cc: ...here.
	* lto-partition.c: Moved to...
	* lto-partition.cc: ...here.
	* lto-symtab.c: Moved to...
	* lto-symtab.cc: ...here.
	* lto.c: Moved to...
	* lto.cc: ...here.

2021-11-18  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (promote_symbol): Clear semantic_interposition flag.

2021-11-06  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/103070
	PR ipa/103058
	* lto-partition.c (must_not_rename): Update comment.
	(promote_symbol): Set resolution to LDPR_PREVAILING_DEF_IRONLY.

2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>

	PR other/102663
	* Make-lang.in: Add dummy lto.install-dvi target.

2021-09-27  Martin Liska  <mliska@suse.cz>

	* lto-lang.c (lto_init_options_struct): Set also
	x_flag_default_complex_method.

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

	PR target/102024
	* lto-common.c (compare_tree_sccs_1): Also compare
	DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD values.

2021-09-02  liuhongt  <hongtao.liu@intel.com>

	* lto-lang.c (lto_type_for_mode): Return float16_type_node
	when mode == TYPE_MODE (float16_type_node).

2021-05-31  Martin Liska  <mliska@suse.cz>

	* lto-common.c (compare_tree_sccs_1): Compare
	FUNCTION_DECL_DECL_TYPE.

2021-05-24  Wang Liushuai  <wangliushuai@bytedance.com>

	* lto-dump.c (get_size): Fix the NPD error about the thunk symbol.

2021-04-15  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/98599
	* lto.c (lto_wpa_write_files): Fix handling of clones.

2021-04-08  Martin Sebor  <msebor@redhat.com>

	PR middle-end/99883
	* lto-lang.c (lto_post_options): Correct spelling.

2021-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/99304
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Fix comment
	typos - refernced -> referenced and
	devirtualizaiton -> devirtualization.

2020-12-16  Martin Liska  <mliska@suse.cz>

	* lang.opt: Remove usage of Report.

2020-11-20  Jakub Jelinek  <jakub@redhat.com>

	PR other/97911
	* Make-lang.in (lto1.serial, lto2.serial): Change from goals to
	variables.
	(.PHONY): Drop lto1.serial, lto2.serial, lto1.prev and lto2.prev.
	($(LTO_EXE)): Depend on $(lto1.serial) rather than lto1.serial.
	($(LTO_DUMP_EXE)): Depend on $(lto2.serial) rather than lto2.serial.

2020-11-18  Jerry Clcanny  <a837940593@gmail.com>

	* lto-symtab.c (lto_symtab_merge_symbols): Fix typos in comment.

2020-11-18  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (lto, lto1.serial, lto2.serial): New goals.
	(.PHONY): Add lto lto1.serial lto1.prev lto2.serial lto2.prev.
	(lto.all.cross, lto.start.encap): Remove dependencies.
	($(LTO_EXE)): Depend on lto1.prev.  Call LINK_PROGRESS.
	($(LTO_DUMP_EXE)): Depend on lto2.prev.  Call LINK_PROGRESS.

2020-11-17  Jan Hubicka  <jh@suse.cz>

	PR bootstrap/97857
	* lto-common.c (gimple_register_canonical_type_1): Only
	register types with TYPE_CXX_ODR_P flag; sanity check that no
	conflict happens at ltrans time.

2020-11-06  Nathan Sidwell  <nathan@acm.org>

	* lto-symtab.c (lto_symtab_merge_decls_1): Rename
	DECL_IS_BUILTIN->DECL_IS_UNDECLARED_BUILTIN.

2020-10-28  Jakub Jelinek  <jakub@redhat.com>

	PR lto/96680
	* lto-common.c (lto_fixup_prevailing_decls): Don't use
	LTO_NO_PREVAIL on TREE_LIST's TREE_PURPOSE.
	* lto-partition.c (lto_balanced_map): Treat declare_variant_alt
	nodes like definitions.

2020-10-23  Jan Hubicka  <hubicka@ucw.cz>

	* lto-partition.c (add_symbol_to_partition_1): Update for new thunk
	api.

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

	* lto-common.c (lto_file_finalize): Set exact argument of a vector
	growth function to true.

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

	* lto-common.c (compare_tree_sccs_1): Do not compare TYPE_VALUES.

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

	* lto-common.c (lto_read_decls): Do not skip stray refs.

2020-05-20  Jan Hubicka  <hubicka@ucw.cz>

	* lto-common.c (compare_tree_sccs_1): Sanity check that we never
	read TRANSLATION_UNIT_DECL.
	(process_dref): Break out from ...
	(unify_scc): ... here.
	(process_new_tree): Break out from ...
	(lto_read_decls): ... here; handle streaming of singleton trees.
	(print_lto_report_1): Update statistics.

2020-05-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/94703
	* lto-common.c (compare_tree_sccs_1): Compare
	DECL_NOT_GIMPLE_REG_P.

2020-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/94707
	* lto-common.c (compare_tree_sccs_1): Handle DECL_FIELD_ABI_IGNORED.

2020-04-17  Martin Liska  <mliska@suse.cz>

	PR lto/94612
	* lto-common.c: Initialize file_data->lto_section_header
	before lto_mode_identity_table call.  It is needed because
	it decompresses a LTO section.

2020-04-08  Martin Liska  <mliska@suse.cz>

	PR c++/94314
	* lto-common.c (compare_tree_sccs_1): Compare also
	DECL_IS_REPLACEABLE_OPERATOR.

2020-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/94223
	* lto-lang.c (lto_set_decl_assembler_name): Use a static ulong
	counter instead of DECL_UID.

2020-03-24  Tobias Burnus  <tobias@codesourcery.com>

	PR libgomp/81689
	* lto.c (offload_handle_link_vars): Propagate TREE_PUBLIC state.

2020-01-29  Tobias Burnus  <tobias@codesourcery.com>

	* lto.c (offload_handle_link_vars): Reduce chance of
	naming clashes of generated linkptr variable.

2020-01-29  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/94233
	* lto.c (offload_handle_link_vars): Cleanup; call
	build_decl to ensure alignment is set.

2020-02-05  Martin Liska  <mliska@suse.cz>

	PR lto/93489
	* lto-dump.c (dump_list_functions): Do not
	load body for aliases.
	(dump_body): Likewise here.

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

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

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

	* lto-partition.c (add_symbol_to_partition_1): Use ::dump_name or
	::dump_asm_name instead of (::name or ::asm_name).
	(lto_balanced_map): Likewise.
	(promote_symbol): Likewise.
	(rename_statics): Likewise.
	* lto.c (lto_wpa_write_files): Likewise.

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

	* lto-partition.c (lto_balanced_map): Use symtab_node::dump_name.

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

	Update copyright years.

2019-12-19  Jan Hubicka  <hubicka@ucw.cz>
	    Xi Ruoyao  <xry111@mengyan1223.wang>

	* lto-common.c (read_cgraph_and_symbols): Work around binutils
	PR25424

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

	* lto-partition.c (lto_balanced_map): Fix printing of tp_first_run.

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

	* lto-partition.c (node_cmp): Turn into simple order comparsions.
	(varpool_node_cmp): Remove.
	(add_sorted_nodes): Use node_cmp.
	(lto_balanced_map): Use tp_first_run_node_cmp.

2019-11-25  Joseph Myers  <joseph@codesourcery.com>

	PR c/91985
	* lto-lang.c (lto_type_for_mode): Handle decimal floating-point
	types being NULL_TREE.

2019-11-22  Jan Hubicka  <jh@suse.cz>
	
	* lto.c (lto_wpa_write_files): Call memory_block_pool::trim.

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

	* Make-lang.in: Remove wrong dependency
	of LTO_DUMP_EXE on LTO_EXE.

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

	* lto-common.c: Do not include params.h.
	* lto-partition.c: Likewise.
	* lto.c: Likewise.

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

	* lto-partition.c (lto_balanced_map): Replace old parameter syntax
	with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
	macro.
	* lto.c (do_whole_program_analysis): Likewise.

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

	* Make-lang.in: Relax dependency of lto-dump.o to
	LTO_OBJS which will allow faster linking (mainly with LTO).

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

	* lto.c (do_whole_program_analysis): Call lto_free_file_name_hash.

2019-11-02  Jan Hubicka  <hubicka@ucw.cz>

	* lto-common.c (read_cgraph_and_symbols): Improve -Q reporting.
	* lto.c (lto_wpa_write_files): Likewise.

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

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

2019-10-30  Martin Liska  <mliska@suse.cz>

	PR lto/91393
	PR lto/88220
	* lto-common.c (lto_file_finalize): Use lto_get_summary_section_data.
	(get_section_data): Add order argument.

2019-10-29  Martin Liska  <mliska@suse.cz>

	* lto.c (do_whole_program_analysis): Pass
	title as dump_memory_report argument.

2019-10-29  Martin Liska  <mliska@suse.cz>

	* lto.c (do_whole_program_analysis): Remove argument.

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

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

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

	* lto-common.c (lto_file_finalize): Add order attribute.
	(lto_create_files_from_ids): Pass order.
	(lto_file_read): UPdate call of lto_create_files_from_ids.

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

	* lto-common.c (read_cgraph_and_symbols): Grow ggc memory use after
	summary streaming.

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

	* lto.c (lto_wpa_write_files): Do not update bodies of clones.

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

	* lto.c (lto_wpa_write_files): Call ggc_trim.

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

	* lto.c (lto_wpa_write_files): Prepare all bodies for streaming.

2019-10-10  Richard Biener  <rguenther@suse.de>

	* lto-common.c (unify_scc): Do not merge anonymous NAMESPACE_DECLs.

2019-10-04  Joseph Myers  <joseph@codesourcery.com>

	* lto-lang.c (flag_isoc2x): New variable.

2019-09-18  Richard Biener  <rguenther@suse.de>

	PR lto/91763
	* lto.c (lto_materialize_function): Initialize EH by looking
	at the function personality and flag_exceptions setting.

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

	PR middle-end/91283
	* lto-lang.c (lto_post_options): Set flag_excess_precision instead of
	flag_excess_precision_cmdline.  Remove comment.

2019-08-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/91421
	* lto-common.c (compare_tree_sccs_1): Use DECL_UNCHECKED_FUNCTION_CODE
	instead of DECL_FUNCTION_CODE.
	* lto-symtab.c (lto_symtab_merge_p): Likewise.

2019-08-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* Make-lang.in (lto.install-common): Remove unnecessary slash
	between $(DESTDIR) and $(bindir).

2019-07-25  Martin Liska  <mliska@suse.cz>

	* lto-common.c (compare_tree_sccs_1): Use new macros
	(e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).

2019-07-22  Giuliano Belinassi  <giuliano.belinassi@usp.br>

	* lang.opt (flag_dump_callgraph): New flag.
	* lto-dump.c (dump_symtab_graphviz): New function.
	(dump_tool_help): New option.
	(lto_main): Handle graphviz dumping.

2019-07-18  Jan Hubicka  <hubicka@ucw.cz>

	* lto-common.c (gimple_register_canonical_type_1): Do not look for
	non-ODR conflicts of types in anonymous namespaces.
	(unify_scc): Do not merge anonymous namespace types.

2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR c++/61339
	* lto-common.c (lto_splay_tree_new): : Change class-key of PODs
	to struct and others to class.
	(mentions_vars_p): Same.
	(register_resolution): Same.
	(lto_register_var_decl_in_symtab): Same.
	(lto_register_function_decl_in_symtab): Same.
	(cmp_tree): Same.
	(lto_read_decls): Same.

2019-07-09  Martin Sebor  <msebor@redhat.com>

	PR c++/61339
	* lto-dump.c: Change class-key from class to struct and vice versa
	to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.

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

	PR lto/91078
	* lto-common.c (lto_file_finalize): Use memcpy to set
	file_data->lto_section_header.

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

	* lto-common.c: Read LTO section and verify header.

2019-06-27  Jan Hubicka  <jh@suse.cz>

	* lto-common.c (lto_register_canonical_types_for_odr_types):
	Copy CXX_ODR_P from the main variant.

2019-06-27  Jan Hubicka  <jh@suse.cz>

	* lto-common.c: tree-pretty-print.h
	(type_streaming_finished): New static var.
	(gimple_register_canonical_type_1): Return updated hash; handle ODR
	types.
	(iterative_hash_canonical_type): Update use of
	gimple_register_canonical_type_1.

2019-06-27  Martin Liska  <mliska@suse.cz>

	* lto-dump.c (struct symbol_entry): Add default dtor.
	(struct variable_entry): Likewise.
	(struct function_entry): Likewise.
	(dump_list_functions): Release memory.
	(dump_list_variables): Likewise.

2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* lto-lang.c (lto_build_c_type_nodes): Accept "__intN__"
	format of "__intN" types for SIZE_TYPE.

2019-06-24  Jan Hubicka  <jh@suse.cz>

	* lto-common.c (compare_tree_sccs_1): Compare CXX_ODR_P;
	compare STRING_FLAG only for arrays and integers.

2019-06-05  Martin Sebor  <msebor@redhat.com>

	* lto-common.c (lto_file_finalize): Adjust quoting and hyphenation.

2019-05-16  Martin Sebor  <msebor@redhat.com>

	* lto-dump.c (lto_main): Same.
	* lto.c (stream_out): Same.

2019-05-10  Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Use program_transform_name for lto-dump.
	* config-lang.in: Do not mark lto-dump compiler as we don't
	want to have it installed at
	lib/gcc/x86_64-pc-linux-gnu/10.0.0/lto-dump.

2019-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* lto-common.c (lto_file_read): Print section->start as int64_t,
	section->len as uint64_t.
	* lto-dump.c (symbol_entry::dump): Print sz as uint64_t.

2019-05-06  Martin Liska  <mliska@suse.cz>

	* lto-common.c: Update coding style.
	* lto.c (materialize_cgraph): Likewise.

2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
	    Martin Liska  <mliska@suse.cz>

	* Make-lang.in: Add lto_dump-related definition.
	* config-lang.in: Likewise.
	* lang.opt: Add new language LTODump and options related
	to LTO dump tool.
	* lto-common.c (lto_read_decls): Support type statistics dump.
	(lto_file_read): Likewise for object files.
	* lto-dump.c: New file.
	* lto-lang.c (lto_option_lang_mask): Move from ..
	* lto.c (lto_option_lang_mask): .. here.
	* lto.h (lto_option_lang_mask): New declaration.

2019-05-06  Martin Liska  <mliska@suse.cz>
	    Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>

	* Make-lang.in: Add lto-common.o.
	* config-lang.in: Likewise for gtfiles.
	* lto-common.c: New file.
	* lto-common.h: New file.
	* lto-lang.c: Include lto-common.h.
	* lto.c: Move most of the functionality
	into lto-common.c file.

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

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

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

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

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

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

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

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

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

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

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

	PR other/16615

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

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

	Update copyright years.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* config-lang.in: Remove stagestuff.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Update copyright years.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* lto.c: Include attribs.h.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Update copyright years.

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

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

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

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

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

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

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

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

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

	* lto.c (offload_handle_link_vars): Use SET_DECL_MODE.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	PR c/71392
	* 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.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-partition.c (add_references_to_partition): New IPA REF function
	used.
	(add_symbol_to_partition_1): Likewise.
	(lto_balanced_map): Likewise.
	* 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-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-object.c: Add gimple.h to include list.
	* 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.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.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-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.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.
	* 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.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-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.
	* 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-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-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-tree.h (lang_decl, lang_type, language_function): Added
	dummy since ggc does not like empty structs.
	* lto-elf.c (libelf.h): Changed to libelf/libelf.h.
	* 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-2022 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.
