1. 03 Nov, 2011 1 commit
    • re PR lto/44965 (lto option code breaks file format with each added option) · 52a35ef7
      2011-11-03  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/44965
      	* lto-opts.c: Re-implement.
      	* lto-streamer.h (lto_register_user_option): Remove.
      	(lto_read_file_options): Likewise.
      	(lto_reissue_options): Likewise.
      	(lto_clear_user_options): Likewise.
      	(lto_clear_file_options): Likewise.
      	* opts-global.c (post_handling_callback): Remove.
      	(set_default_handlers): Do not set post_handling_callback.
      	(decode_options): Remove LTO specific code.
      	* lto-wrapper.c (merge_and_complain): New function.
      	(run_gcc): Read all input file options and
      	prepend a merged set before the linker driver options.
      	* gcc.c (driver_post_handling_callback): Remove.
      	(set_option_handlers): Do not set post_handling_callback.
      	* opts-common.c (handle_option): Do not call post_handling_callback.
      	* opts.h (struct cl_option_handlers): Remove post_handling_callback.
      
      	lto/
      	* 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.
      
      From-SVN: r180827
      Richard Guenther committed
  2. 04 Oct, 2011 1 commit
    • lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter. · 398f05da
      	* lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
      	* lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
      	* lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
      	* lto-cgraph.c (order_base): New static var.
      	(lto_output_node): Stream in order.
      	(lto_output_varpool_node): Stream out order.
      	(input_node): Stream in order.
      	(input_varpool_node): Stream out order.
      	(input_cgraph_1): Initialize order base; update call of
      	lto_input_toplevel_asms.
      
      From-SVN: r179496
      Jan Hubicka committed
  3. 30 Sep, 2011 1 commit
    • Split out LTO's writing of top level asm nodes in preparation of extending what... · 49f836ba
      Split out LTO's writing of top level asm nodes in preparation of extending
      what needs to be written out when top level asm-s get enhanced to accept a
      limited set of input operands.
      
      gcc/
      2011-09-30  Jan Beulich  <jbeulich@suse.com>
      
      	* lto-cgraph.c (output_cgraph): Remove processing of
      	'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
      	(input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
      	lto_input_toplevel_asms() instead.
      	* lto-section-in.c (lto_section_name): Add "asm" entry.
      	* lto-streamer-in.c (lto_input_toplevel_asms): New.
      	* lto-streamer-out.c (lto_output_toplevel_asms): New.
      	* lto-streamer.h (LTO_minor_version): Bump.
      	(enum lto_section_type): Add LTO_section_asm.
      	(struct lto_asm_header): New.
      	(lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
      	* tree-streamer.h (streamer_write_string_cst): Declare.
      	* tree-streamer-out.c (write_string_cst): Rename to
      	streamer_write_string_cst and make global. Handle incoming string
      	being NULL.
      	(streamer_write_tree_header): Adjust call to renamed function.
      
      From-SVN: r179386
      Jan Beulich committed
  4. 29 Sep, 2011 1 commit
    • Change random seeds to 64bit and drop re-crcing · dde8b360
      I had some trouble with random build failures in a large LTO project
      and it turned out to be random seed collisions in a highly parallel build
      (thanks to Honza for suggesting that)
      
      There were multiple problems:
      - The way to generate the random seed is not very random (milliseconds time plus pid)
      and prone to collisions on highly parallel builds
      - It's only 32bit
      - Several users take the existing ascii seed and re-CRC32 it again, which
      doesn't exactly improve it.
      
      This patch changes that to:
      - Always use 64bit seeds as numbers (no re-crcing)
      - Change all users to use HOST_WIDE_INT
      - When the user specifies a random seed it's still crc32ed, but only in
      this case.
      
      Passes bootstrap + testsuite on x86_64-linux.
      
      gcc/cp:
      
      2011-09-26   Andi Kleen <ak@linux.intel.com>
      
      	* repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.
      
      gcc/:
      
      2011-09-26   Andi Kleen <ak@linux.intel.com>
      
      	* hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
      	* lto-streamer.c (lto_get_section_name): Remove crc32_string.
       	Handle numerical random seed.
      	* lto-streamer.h (lto_file_decl_data): Change id to unsigned HOST_WIDE_INT.
      	* toplev.c (random_seed): Add.
      	(init_random_seed): Change for numerical random seed.
      	(get_random_seed): Return as HOST_WIDE_INT.
      	(set_random_seed): Crc32 existing string.
      	* toplev.h (get_random_seed): Change to numercal return.
      	* tree.c (get_file_function_name): Remove CRC. Handle numerical random seed.
      
      gcc/lto/:
      
      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.
      
      From-SVN: r179347
      Andi Kleen committed
  5. 12 Aug, 2011 1 commit
    • data-streamer.h (streamer_write_zero): Rename from output_zero. · 412288f1
      	* data-streamer.h (streamer_write_zero): Rename from output_zero.
       	(streamer_write_uhwi): Rename from lto_output_uleb128.
       	(streamer_write_hwi): Rename from output_sleb128.
       	(streamer_write_string): Rename from lto_output_string.
       	(streamer_string_index): Rename from lto_string_index.
       	(streamer_write_string_with_length): Rename from
       	lto_output_string_with_length.
       	(streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
       	(streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
       	(streamer_read_string): Rename from lto_input_string.
       	(streamer_read_indexed_string): Rename from input_string_internal.
       	(streamer_read_uhwi): Rename from lto_input_uleb128.
       	(streamer_read_hwi): Rename from lto_input_sleb128.
       	(streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
       	(streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
       	(streamer_write_enum): Rename from lto_output_enum.
       	(streamer_read_enum): Rename from lto_input_enum.
       	(streamer_write_record_start): Rename from output_record_start.
       	(streamer_read_record_start): Rename from input_record_start.
       	(streamer_write_bitpack): Rename from lto_output_bitpack.
       	(streamer_read_bitpack): Rename from lto_input_bitpack.
       	(streamer_write_char_stream): Rename from lto_output_1_stream.
       	(streamer_read_uchar): Rename from lto_input_1_unsigned.
       	* tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
       	(streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
       	(streamer_read_string_cst): Rename from input_string_cst.
       	(streamer_read_chain): Rename from lto_input_chain.
       	(streamer_alloc_tree): Rename from lto_materialize_tree.
       	(streamer_read_tree_body): Rename from lto_input_tree_pointers.
       	(streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
       	(streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
       	(streamer_read_integer_cst): Rename from lto_input_integer_cst.
       	(streamer_read_tree_bitfields): Rename from tree_read_bitfields.
       	(streamer_write_chain): Rename from lto_output_chain.
       	(streamer_write_tree_header): Rename from lto_output_tree_header.
       	(streamer_pack_tree_bitfields): Rename from pack_value_fields.
       	(streamer_write_tree_body): Rename from lto_output_tree_pointers.
       	(streamer_write_integer_cst): Rename from lto_output_integer_cst.
       	(streamer_write_builtin): Rename from lto_output_builtin_tree.
       	(streamer_check_handled_ts_structures): Rename from
       	check_handled_ts_structures.
       	(streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
       	(streamer_tree_cache_insert_at): Rename from
       	lto_streamer_cache_insert_at.
       	(streamer_tree_cache_append): Rename from lto_streamer_cache_append.
       	(streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
       	(streamer_tree_cache_get): Rename from lto_streamer_cache_get.
       	(streamer_tree_cache_create): Rename from lto_streamer_cache_create.
       	(streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
       	* tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
       	(write_identifier): Rename from output_identifier.
       	(write_ts_common_tree_pointers): Rename from
       	lto_output_ts_common_tree_pointers.
       	(write_ts_vector_tree_pointers): Rename from
       	lto_output_ts_vector_tree_pointers.
       	(write_ts_complex_tree_pointers): Rename from
       	lto_output_ts_complex_tree_pointers.
       	(write_ts_decl_minimal_tree_pointers): Rename from
       	lto_output_ts_decl_minimal_tree_pointers.
       	(write_ts_decl_common_tree_pointers): Rename from
       	lto_output_ts_decl_common_tree_pointers.
       	(write_ts_decl_non_common_tree_pointers): Rename from
       	lto_output_ts_decl_non_common_tree_pointers.
       	(write_ts_decl_with_vis_tree_pointers): Rename from
       	lto_output_ts_decl_with_vis_tree_pointers.
       	(write_ts_field_decl_tree_pointers): Rename from
       	lto_output_ts_field_decl_tree_pointers.
       	(write_ts_function_decl_tree_pointers): Rename from
       	lto_output_ts_function_decl_tree_pointers.
       	(write_ts_type_common_tree_pointers): Rename from
       	lto_output_ts_type_common_tree_pointers.
       	(write_ts_type_non_common_tree_pointers): Rename from
       	lto_output_ts_type_non_common_tree_pointers.
       	(write_ts_list_tree_pointers): Rename from
       	lto_output_ts_list_tree_pointers.
       	(write_ts_vec_tree_pointers): Rename from
       	lto_output_ts_vec_tree_pointers.
       	(write_ts_exp_tree_pointers): Rename from
       	lto_output_ts_exp_tree_pointers.
       	(write_ts_block_tree_pointers): Rename from
       	lto_output_ts_block_tree_pointers.
       	(write_ts_binfo_tree_pointers): Rename from
       	lto_output_ts_binfo_tree_pointers.
       	(write_ts_constructor_tree_pointers): Rename from
       	lto_output_ts_constructor_tree_pointers.
       	(write_ts_target_option): Rename from
       	lto_output_ts_target_option.
       	(write_ts_translation_unit_decl_tree_pointers): Rename from
       	lto_output_ts_translation_unit_decl_tree_pointers.
       	* tree-streamer.c (streamer_tree_cache_add_to_node_array):
       	Rename from lto_streamer_cache_add_to_node_array.
       	(streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
       	(record_common_node): Rename from lto_record_common_node.
      
      	* streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
      	declarations.
      	* data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
      	function.
      	* data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
      	unused function.
      	* Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
      	(ipa-reference.o): Likewise.
      	* lto-section-out.c: Include data-streamer.h.
      	* ipa-reference.c: Include data-streamer.h.
      
      From-SVN: r177704
      Diego Novillo committed
  6. 11 Aug, 2011 1 commit
    • tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call… · b9393656
      tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call stream_write_tree instead of output_record_start.
      
      	* tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
      	Call stream_write_tree instead of output_record_start.
      	(lto_output_ts_binfo_tree_pointers): Likewise.
      
      	* streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
      	Convert it to a macro.
      	(stream_read_tree): Likewise.
      
      	* lto-streamer.h (lto_stream_as_builtin_p): Move ...
      	* tree-streamer.h (lto_stream_as_builtin_p): ... here.
      
      	* lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
      	and tree_read_bitfields.
      	* lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
      	(lto_write_tree): Call it.
      	* lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
      	* streamer-hooks.h (struct streamer_hooks): Remove fields
      	name, is_streamable and alloc_tree. Update all users.
      	* tree-streamer-in.c (tree_read_bitfields): Factor out of ...
      	(lto_materialize_tree): ... here.
      	Handle CALL_EXPR codes.
      	Remove call to lto_streamer_cache_append.
      	* tree-streamer-out.c (lto_output_tree_header): Handle
      	CALL_EXPR nodes.
      	* tree-streamer.h (tree_read_bitfields): Declare.
      
      	* Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
      	(gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
      	* tree-streamer.h (stream_read_tree): New.  Replace all calls
      	to lto_input_tree with it.
      	(stream_write_tree): New.  Replace all calls to lto_output_tree,
      	lto_output_tree_ref and lto_output_tree_or_ref with it.
      	* lto-streamer-in.c (lto_read_tree): Inline code from
      	lto_streamer_read_tree.
      	(lto_input_tree): Move from tree-streamer-in.c.
      	* lto-streamer-out.c (lto_output_tree_ref): Make static.
      	Remove handling of NULL values for EXPR.
      	Do not handle EXPRs that are not indexable.
      	(lto_write_tree): Move from tree-streamer-out.c.
      	Inline lto_streamer_write_tree.
      	(lto_output_tree): Move from tree-streamer-out.c.
      	If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
      	* lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
      	(lto_preload_common_nodes): Likewise.
      	Remove assertions and adjustments for nodes
      	main_identifier_node, ptrdiff_type_node and fileptr_type_node.
      	(lto_streamer_hooks_init): Set streamer_hooks.write_tree to
      	lto_output_tree and streamer_hooks.read_tree to
      	lto_input_tree.
      	* lto-streamer.h (lto_input_tree): Declare.
      	(lto_output_tree_ref): Remove.
      	* streamer-hooks.h (struct streamer_hooks): Remove fields
      	preload_common_nodes, indexable_with_decls_p,
      	pack_value_fields, unpack_value_fields, output_tree_header and
      	has_unique_integer_csts_p.
      	Update all users.
      	* tree-streamer-in.c (lto_materialize_tree): Make extern.
      	(lto_input_tree_pointers): Likewise.
      	(lto_read_tree): Move to lto-streamer-in.c.
      	(lto_input_integer_cst): Make extern.
      	(lto_get_pickled_tree): Likewise.
      	(lto_get_builtin_tree): Likewise.
      	(lto_input_tree): Move to lto-streamer-in.c.
      	* tree-streamer-out.c (pack_value_fields): Make extern.
      	(lto_output_tree_or_ref): Remove.  Replace all callers with
      	calls to stream_write_tree.
      	(lto_output_builtin_tree): Make extern.
      	(lto_streamer_write_tree): Inline into lto_write_tree.
      	(lto_output_tree_pointers): Make extern.
      	(lto_output_tree_header): Likewise.
      	(lto_output_integer_cst): Likewise.
      	(lto_write_tree): Move to lto-streamer-out.c.
      	(lto_output_tree): Likewise.
      	* tree-streamer.c (lto_record_common_node): Move from
      	lto-streamer.c
      	(preload_common_nodes): Likewise.
      	(lto_streamer_cache_create): Call it.
      	* tree-streamer.h: Include streamer-hooks.h.
      	(stream_write_tree): New.
      	(stream_read_tree): New.
      	(lto_input_tree): Remove.
      	(lto_materialize_tree): Declare.
      	(lto_input_tree_pointers): Declare.
      	(lto_get_pickled_tree): Declare.
      	(lto_get_builtin_tree): Declare.
      	(lto_input_integer_cst): Declare.
      	(lto_output_tree_header): Declare.
      	(pack_value_fields): Declare.
      	(lto_output_tree_pointers): Declare.
      	(lto_output_integer_cst): Declare.
      	(lto_output_builtin_tree): Declare.
      
      From-SVN: r177661
      Diego Novillo committed
  7. 08 Aug, 2011 1 commit
  8. 06 Jun, 2011 1 commit
    • Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H. · 47c79d56
      	* Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
      	(cgraph.o): Likewise.
      	(cgraphunit.o): Likewise.
      	* cgraphunit.c: Include lto-streamer.h
      	(cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
      	if LTO is enabled.
      	* lto-streamer-in.c (unpack_value_fields): Call
      	streamer_hooks.unpack_value_fields if set.
      	(lto_materialize_tree): For unhandled nodes, first try to
      	call lto_streamer_hooks.alloc_tree, if it exists.
      	(lto_input_ts_decl_common_tree_pointers): Move reading of
      	DECL_INITIAL to lto_streamer_read_tree.
      	(lto_read_tree): Call lto_streamer_hooks.read_tree if set.
      	(lto_streamer_read_tree): New.
      	(lto_reader_init): Rename from lto_init_reader.
      	Move initialization code to lto/lto.c.
      	* lto-streamer-out.c (pack_value_fields): Call
      	streamer_hooks.pack_value_fields if set.
      	(lto_output_tree_ref): For tree nodes that are not
      	normally indexable, call streamer_hooks.indexable_with_decls_p
      	before giving up.
      	(lto_output_ts_decl_common_tree_pointers): Move handling
      	for FUNCTION_DECL and TRANSLATION_UNIT_DECL to
      	lto_streamer_write_tree.
      	(lto_output_tree_header): Call streamer_hooks.is_streamable
      	instead of lto_is_streamable.
      	Call lto_streamer_hooks.output_tree_header if set.
      	(lto_write_tree): Call lto_streamer_hooks.write_tree if
      	set.
      	(lto_streamer_write_tree): New.
      	(lto_output): Call lto_streamer_init directly.
      	(lto_writer_init): Remove.
      	* lto-streamer.c (streamer_hooks): New.
      	(lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
      	instead of lto_preload_common_nodes.
      	(lto_is_streamable): Move from lto-streamer.h
      	(lto_streamer_hooks_init): New.
      	(streamer_hooks): New.
      	(streamer_hooks_init): New.
      	* lto-streamer.h (struct output_block): Forward declare.
      	(struct lto_input_block): Likewise.
      	(struct data_in): Likewise.
      	(struct bitpack_d): Likewise.
      	(struct streamer_hooks): Declare.
      	(streamer_hooks): Declare.
      	(lto_streamer_hooks_init): Declare.
      	(lto_streamer_write_tree): Declare.
      	(lto_streamer_read_tree): Declare.
      	(streamer_hooks_init): Declare.
      	(lto_is_streamable): Move to lto-streamer.c
      
      lto/ChangeLog
      
      	* lto.c (lto_init): New.
      	(lto_main): Call it.
      
      From-SVN: r174709
      Diego Novillo committed
  9. 03 Jun, 2011 1 commit
  10. 01 Jun, 2011 1 commit
    • lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call… · 07233947
      lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call output_record_start with LTO_null instead of output_zero.
      
      	* lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
      	output_record_start with LTO_null instead of output_zero.
      	(lto_output_ts_binfo_tree_pointers): Likewise.
      	(lto_output_tree): Likewise.
      	(output_eh_try_list): Likewise.
      	(output_eh_region): Likewise.
      	(output_eh_lp): Likewise.
      	(output_eh_regions): Likewise.
      	(output_bb): Likewise.
      	(output_function): Likewise.
      	(output_unreferenced_globals): Likewise.
      	* lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
      	instead of NUM_TREE_CODES.
      	(lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
      	(lto_output_int_in_range): Change << to >> when shifting VAL.
      
      From-SVN: r174544
      Diego Novillo committed
  11. 29 May, 2011 2 commits
    • lto-streamer-out.c (hash_string_slot_node): Hash string based on its length. · fac009a8
      	* lto-streamer-out.c (hash_string_slot_node): Hash string based on its
      	length.
      	(string_slot_free): Remove
      	(create_output_block): Initialize obstack.
      	(destroy_output_block): Free obstack.
      	(lto_string_index): Add PERSISTENT parameter; do not duplicate
      	the string unless it needs to be added into the hash.
      	(lto_output_string_with_length): Add persistent attribute;
      	handle NULL strings.
      	(lto_output_string): Add PERSISTENT parameter.
      	(output_string_cst, output_identifier): Simplify.
      	(lto_output_location_bitpack): Update.
      	(lto_output_builtin_tree): Update.
      	* lto-streamer.h (struct output_block): Add obstack.
      	(lto_output_string, lto_output_string_with_length): Remove declarations;
      	functions are static now.
      
      From-SVN: r174397
      Jan Hubicka committed
    • lto-streamer-out.c (pack_ts_fixed_cst_value_fields, [...]): Use enum and variable length i/o. · fa766006
      	* lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
      	pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
      	pack_ts_function_decl_value_fields, lto_output_builtin_tree,
      	output_cfg, output_gimple_stmt): Use enum and variable length i/o.
      	* lto-streamer-in.c (input_cfg, input_gimple_stmt,
      	unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
      	unpack_ts_decl_with_vis_value_fields,
      	unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
      	lto_get_builtin_tree): Use enum and variable length i/o.
      	* basic-block.h (profile_status_d): Add PROFILE_LAST.
      	* lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
      	New functions.
      	(bp_pack_enum, bp_unpack_enum): New macros.
      
      From-SVN: r174394
      Jan Hubicka committed
  12. 27 May, 2011 1 commit
    • lto-streamer-out.c (lto_string_index): break out from...; offset by 1 so 0 means NULL string. · 51a9ed47
      	* lto-streamer-out.c (lto_string_index): break out from...; offset by 1
      	so 0 means NULL string.
      	(lto_output_string_with_length): ... here.
      	(lto_output_string, output_string_cst, output_identifier): Update handling
      	of NULL strings.
      	(lto_output_location_bitpack): New function.
      	(lto_output_location): Use it.
      	(lto_output_tree_ref): Use output_record_start.
      	(pack_ts_type_common_value_fields): Pack aliagn & alias set in var len values.
      	* lto-streamer-in.c (string_for_index): Break out from ...; offset values by 1.
      	(input_string_internal): ... here; 
      	(input_string_cst, input_identifier, lto_input_string): Update handling of
      	NULL strings.
      	(lto_input_location_bitpack): New function
      	(lto_input_location): Use it.
      	(unpack_ts_type_common_value_fields): Pack align & alias in var len values.
      	* lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
      	bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
      	(bp_pack_value): Sanity check the value range.
      	* lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
      	New functions.
      	* lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
      	New functions.
      
      From-SVN: r174325
      Jan Hubicka committed
  13. 25 May, 2011 1 commit
    • lto-streamer-out.c (output_record_start): Use lto_output_enum · f242c0a5
      	* lto-streamer-out.c (output_record_start): Use lto_output_enum
      	(lto_output_tree): Use output_record_start.
      	* lto-streamer-in.c (input_record_start): Use lto_input_enum
      	(lto_get_pickled_tree): Use input_record_start.
      	* lto-section-in.c (lto_section_overrun): Turn into fatal error.
      	(lto_value_range_error): New function.
      	* lto-streamer.h (lto_value_range_error): Declare.
      	(lto_output_int_in_range, lto_input_int_in_range): New functions.
      	(lto_output_enum, lto_input_enum): New macros.
      
      From-SVN: r174186
      Jan Hubicka committed
  14. 02 May, 2011 2 commits
  15. 14 Apr, 2011 1 commit
    • cgraph.c (dump_cgraph_node): Do not dump inline summaries. · 10a5dd5d
      	* cgraph.c (dump_cgraph_node): Do not dump inline summaries.
      	* cgraph.h (struct inline_summary): Move to ipa-inline.h
      	(cgraph_local_info): Remove inline_summary.
      	* ipa-cp.c: Include ipa-inline.h.
      	(ipcp_cloning_candidate_p, ipcp_estimate_growth,
      	ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
      	accesor.
      	* lto-cgraph.c (lto_output_node): Do not stream inline summary.
      	(input_overwrite_node): Do not set inline summary.
      	(input_node): Do not stream inline summary.
      	* ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
      	(cgraph_decide_inlining_incrementally): Do not try to estimate overall
      	growth; we do not have inline parameters computed for that anyway.
      	(cgraph_early_inlining): After inlining compute call_stmt_sizes.
      	* ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
      	(inline_summary_t): New type and VECtor.
      	(debug_inline_summary, dump_inline_summaries): Declare.
      	(inline_summary): Use VOCtor.
      	(estimate_edge_growth): Kill hack computing call stmt size directly.
      	* lto-section-in.c (lto_section_name): Add inline section.
      	* ipa-inline-analysis.c: Include lto-streamer.h
      	(node_removal_hook_holder, node_duplication_hook_holder): New holders
      	(inline_node_removal_hook, inline_node_duplication_hook): New functions.
      	(inline_summary_vec): Define.
      	(inline_summary_alloc, dump_inline_summary, debug_inline_summary,
      	dump_inline_summaries): New functions.
      	(estimate_function_body_sizes): Properly compute size/time of outgoing calls.
      	(compute_inline_parameters): Alloc inline_summary; do not compute size/time
      	of incomming calls.
      	(estimate_edge_time): Avoid missing time summary hack.
      	(inline_read_summary): Read inline summary info.
      	(inline_write_summary): Write inline summary info.
      	(inline_free_summary): Free all hooks and inline summary vector.
      	* lto-streamer.h: Add LTO_section_inline_summary section.
      	* Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
      	* ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
      
      	* 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.
      
      From-SVN: r172430
      Jan Hubicka committed
  16. 03 Apr, 2011 1 commit
    • lto-streamer.h (struct lto_streamer_cache_d): Remove offsets and next_slot members. · e89964e3
      	* lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
      	and next_slot members.
      	(lto_streamer_cache_insert, lto_streamer_cache_insert_at,
      	lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
      	(lto_streamer_cache_append): Declare.
      	* lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
      	unsigned index, remove offset parameter, ensure that we append
      	or update existing entries.
      	(lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
      	parameter, update next_slot for append.
      	(lto_streamer_cache_insert): Use unsigned index, remove offset_p
      	parameter.
      	(lto_streamer_cache_insert_at): Likewise.
      	(lto_streamer_cache_append): New function.
      	(lto_streamer_cache_lookup): Use unsigned index.
      	(lto_streamer_cache_get): Likewise.
      	(lto_record_common_node): Don't test tree_node_can_be_shared.
      	(preload_common_node): Adjust call to lto_streamer_cache_insert.
      	(lto_streamer_cache_delete): Don't free offsets member.
      	* lto-streamer-out.c (eq_string_slot_node): Use memcmp.
      	(lto_output_string_with_length): Use lto_output_data_stream.
      	(lto_output_tree_header): Remove ix parameter, don't write it.
      	(lto_output_builtin_tree): Likewise.
      	(lto_write_tree): Adjust callers to above, don't track and write
      	offset, write unsigned index.
      	(output_unreferenced_globals): Don't emit all global vars.
      	(write_global_references): Use unsigned indices.
      	(lto_output_decl_state_refs): Likewise.
      	(write_symbol): Likewise.
      	* lto-streamer-in.c (lto_input_chain): Move earlier.
      	(input_function): Use unsigned index.
      	(input_alias_pairs): Don't read and then ignore all global vars.
      	(lto_materialize_tree): Remove ix_p parameter, don't read index,
      	don't pass it back, use lto_streamer_cache_append.
      	(lto_register_var_decl_in_symtab): Use unsigned index.
      	(lto_register_function_decl_in_symtab): Likewise.
      	(lto_get_pickled_tree): Don't read in or handle offset, read unsigned
      	index.
      	(lto_get_builtin_tree): Don't read index, use
      	lto_streamer_cache_append.
      	(lto_read_tree): Adjust call to lto_materialize_tree.
      
      	* ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
      	don't use function calls in arguments to MIN.
      
      	* varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
      	twice.
      
      	* gimple.c (gimple_type_leader_entry): Mark deletable.
      
      lto/
      	* 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.
      
      From-SVN: r171906
      Michael Matz committed
  17. 29 Mar, 2011 1 commit
    • lto-opts.c (register_user_option_p, [...]): Make type argument unsigned. · eb50f63a
      	* lto-opts.c (register_user_option_p, lto_register_user_option):
      	Make type argument unsigned.
      	* lto-streamer.h (lto_register_user_option): Make type argument
      	unsigned.
      	* opth-gen.awk: Make CL_* macros unsigned.
      	* opts-common.c (find_opt): Make lang_mask argument unsigned.
      	* opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
      	CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
      	CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
      	CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
      	CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
      	(find_opt): Make lang_mask argument unsigned.
      
      From-SVN: r171701
      Joseph Myers committed
  18. 24 Mar, 2011 1 commit
    • lto-opts.c (input_data_block): Move to lto-streamer-in.c. · a183b5c7
      	* lto-opts.c (input_data_block): Move to lto-streamer-in.c.
      	* lto-streamer-in.c (input_string_internal): Add clarifying
      	comments.
      	(lto_input_data_block): Move from lto-opts.c.  Make extern.
      	Update all users.
      	(lto_input_string): Rename from input_string.  Make extern.
      	Update all users.
      	* lto-streamer-out.c (lto_output_string_with_length): Rename from
      	output_string_with_length.
      	Output 0 to indicate a non-NULL string.  Update all callers to
      	not emit 0.
      	(lto_output_string): Rename from output_string.  Make extern.
      	Update all users.
      	(lto_output_decl_state_streams): Make extern.
      	(lto_output_decl_state_refs): Make extern.
      	* lto-streamer.h (lto_input_string): Declare.
      	(lto_input_data_block): Declare.
      	(lto_output_string): Declare.
      	(lto_output_string_with_length): Declare.
      	(lto_output_decl_state_streams): Declare.
      	(lto_output_decl_state_refs): Declare.
      
      From-SVN: r171387
      Diego Novillo committed
  19. 18 Feb, 2011 1 commit
    • re PR lto/47798 (LTO debuginfo for globals wrong) · 237d6259
      2011-02-18  Richard Guenther  <rguenther@suse.de>
      
      	PR lto/47798
      	* lto-streamer.h (lto_global_var_decls): Declare.
      	* lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
      	statics for global var processing.
      
      	lto/
      	* 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.
      
      From-SVN: r170274
      Richard Guenther committed
  20. 04 Dec, 2010 1 commit
    • re PR driver/46760 (LTO bootstrap doesn't work with FDO) · db0bf14f
      	PR tree-optimization/46760
      	* cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
      	* cgraph.h (struct cgraph_node): Add count_materialization_scale.
      	* lto-cgraph.c (lto_output_edge): Fix assert.
      	(lto_output_node): Output count_materialization_scale.
      	(output_profile_summary): Output only runs and sum_max.
      	(input_node): Input count_materialization_scale.
      	(input_profile_summary): Read data into file specific gcov summary.
      	(merge_profile_summaries): New function.
      	(input_cgraph): Update call of input_profile_summary;
      	call merge_profile_summaries.
      	* lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
      	rescale counts at read in.
      	(intput_bb): Likewise.
      	(input_function): Update call of input_bb.
      	(lto_read_body): Update call of input_cfg.
      	* lto-streamer.h: Inlclude gcov-io.h
      	(lto_file_decl_data): Add gcov_ctr_summary.
      
      From-SVN: r167458
      Jan Hubicka committed
  21. 02 Dec, 2010 1 commit
  22. 16 Sep, 2010 1 commit
    • tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL is TS_TRANSLATION_UNIT_DECL. · 6be14c0e
      2010-09-16  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
      	is TS_TRANSLATION_UNIT_DECL.
      	(initialize_tree_contains_struct): Adjust.
      	(all_translation_units): New global vector.
      	(build_translation_unit_decl): New function.
      	* tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
      	(struct tree_translation_unit_decl): New.
      	(all_translation_units): Declare.
      	(union tree_node): Add translation_unit_decl member.
      	(build_translation_unit_decl): Declare.
      	* treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
      	* lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
      	New function.
      	(pack_value_fields): Call it.
      	(lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
      	(lto_output_ts_translation_unit_decl_tree_pointers): New function.
      	(lto_output_tree_pointers): Call it.
      	* lto-streamer-in.c (lto_input_tree_ref): Handle references
      	to TRANSLATION_UNIT_DECL.
      	(unpack_ts_translation_unit_decl_value_fields): New function.
      	(unpack_value_fields): Call it.
      	(lto_input_ts_translation_unit_decl_tree_pointers): New function.
      	(lto_input_tree_pointers): Call it.
      	* lto-streamer.c (check_handled_ts_structures): Adjust.
      	* lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
      	* c-decl.c (all_translation_units): Remove.
      	(pop_scope): Use build_translation_unit_decl.
      	(collect_all_refs): Adjust.
      	(for_each_global_decl): Likewise.
      	(c_write_global_declarations): Likewise.
      
      	java/
      	* jcf-parse.c (current_file_list): Remove.
      	(java_parse_file): Use build_translation_unit_decl.  Adjust.
      
      From-SVN: r164331
      Richard Guenther committed
  23. 26 Jul, 2010 1 commit
  24. 23 Jul, 2010 1 commit
    • re PR lto/44992 (ld -r breaks LTO) · 73ce4d1e
      gcc:
      
      2010-07-10   Andi Kleen <ak@linux.intel.com>
      
              PR lto/44992
              * lto-opts.c (lto_write_options): Add NULL file_data argument to 
      	lto_get_section_name.
      	* lto-section-out.c (lto_destroy_simple_output_block): Likewise.
      	* lto-streamer-out.c (produce_asm): Likewise.
      	(copy_function): Likewise.
      	(produce_symtab): Likewise.
      	(produce_asm_for_decls): Likewise.
      	* lto-streamer.c (lto_get_section_name): Add file_data argument.	
      	Rewrite to add random postfix to LTO sections.
      	* lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
      	(lto_get_section_name): Add file_data argument to prototype.
      	
      
      lto:
      
      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.
      	
      lto-plugin:
      
      2010-07-10   Andi Kleen <ak@linux.intel.com>
      
              PR lto/44992
              * lto-plugin.c (sym_aux): Add.
      	(plugin_symtab): Remove slots. Add aux and id.
      	(parse_table_entry): Change to use aux instead of slots.
      	(LTO_SECTION_PREFIX): Add.
      	(translate): Improve buffer allocation. Change to append
      	symbols to existing out buffer.
      	(get_section): Remove.
      	(process_symtab): Add. 
      	(free_2): Free symtab->aux.
      	(write_resolution): Handle aux instead of slots.
      	Print sub id to resolution file.
      	(claim_file_handler): Clear lto_file. Replace get_symtab/translate
      	calls with call to process_symtab.
      
      From-SVN: r162443
      Andi Kleen committed
  25. 14 Jun, 2010 1 commit
    • lto-streamer.c (cached_bp): Remove. · 2465dcc2
      2010-06-14  Richard Guenther  <rguenther@suse.de>
      
      	* lto-streamer.c (cached_bp): Remove.
      	(bitpack_delete): Likewise.
      	(bitpack_create): Likewise.
      	(bp_get_next_word): Likewise.
      	(bp_pack_value, bp_unpack_value): Move ...
      	* lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
      	Re-implement.
      	(struct bitpack_d): Likewise.
      	(bitpack_create, lto_output_bitpack, lto_input_bitpack):
      	New inline functions.
      	* lto-streamer-out.c (lto_output_bitpack): Remove.
      	(pack_ts_base_value_fields): Adjust.  Avoid conditional
      	bitpacking.
      	(pack_value_fields): Adjust.
      	(lto_write_tree): Likewise.
      	(output_gimple_stmt): Likewise.
      	(output_function): Likewise.
      	* lto-streamer-in.c (input_gimple_stmt): Adjust.
      	(input_function): Likewise.
      	(unpack_ts_base_value_fields): Adjust.  Avoid conditional
      	bitpacking.
      	(lto_input_bitpack): Remove.
      	(lto_materialize_tree): Adjust.
      	* Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
      	* lto-cgraph.c (lto_output_edge): Adjust.
      	(lto_output_node): Likewise.
      	(lto_output_varpool_node): Likewise.
      	(lto_output_ref): Likewise.
      	(input_node): Likewise.
      	(input_varpool_node): Likewise.
      	(input_ref): Likewise.
      	(input_edge): Likewise.
      	(output_node_opt_summary): Likewise.
      	(input_node_opt_summary): Likewise.
      	* ipa-pure-const.c (pure_const_write_summary): Likewise.
      	(pure_const_read_summary): Likewise.
      	* ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
      	(ipa_read_indirect_edge_info): Likewise.
      	(ipa_write_node_info): Likewise.
      	(ipa_read_node_info): Likewise.
      
      From-SVN: r160760
      Richard Guenther committed
  26. 08 Jun, 2010 1 commit
    • utils.c (init_gnat_to_gnu): Use typed GC allocation. · a9429e29
      gcc/ada:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC
      	allocation.
      	(init_dummy_type): Likewise.
      	(gnat_pushlevel): Likewise.
      
      	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(start_stmt_group): Likewise.
      	(extract_encoding): Likewise.
      	(decode_name): Likewise.
      
      	* gcc-interface/misc.c (gnat_printable_name): Likewise.
      
      	* gcc-interface/decl.c (annotate_value): Likewise.
      
      	* gcc-interface/ada-tree.h (struct lang_type): Add variable_size
      	GTY option.
      	(struct lang_decl): Likewise.
      	(SET_TYPE_LANG_SPECIFIC): Use typed GC allocation.
      	(SET_DECL_LANG_SPECIFIC): Likewise.
      
      gcc/c-family:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* c-pragma.c (push_alignment): Use typed GC allocation.
      	(handle_pragma_push_options): Likewise.
      
      	* c-common.c (parse_optimize_options): Likewise.
      
      	* c-common.h (struct sorted_fields_type): Add variable_size GTY
      	option.
      
      gcc/cp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* typeck2.c (abstract_virtuals_error): Likewise.
      
      	* pt.c (maybe_process_partial_specialization): Likewise.
      	(register_specialization): Likewise.
      	(add_pending_template): Likewise.
      	(lookup_template_class): Likewise.
      	(push_tinst_level): Likewise.
      
      	* parser.c (cp_lexer_new_main): Likewise.
      	(cp_lexer_new_from_tokens): Likewise.
      	(cp_token_cache_new): Likewise.
      	(cp_parser_context_new): Likewise.
      	(cp_parser_new): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_template_id): Likewise.
      
      	* name-lookup.c (binding_entry_make): Likewise.
      	(binding_table_construct): Likewise.
      	(binding_table_new): Likewise.
      	(cxx_binding_make): Likewise.
      	(pushdecl_maybe_friend): Likewise.
      	(begin_scope): Likewise.
      	(push_to_top_level): Likewise.
      
      	* lex.c (init_reswords): Likewise.
      	(retrofit_lang_decl): Likewise.
      	(cxx_dup_lang_specific_decl): Likewise.
      	(copy_lang_type): Likewise.
      	(cxx_make_type): Likewise.
      
      	* decl.c (make_label_decl): Likewise.
      	(check_goto): Likewise.
      	(start_preparsed_function): Likewise.
      	(save_function_data): Likewise.
      
      	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
      
      	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
      
      	* class.c (finish_struct_1): Likewise.
      
      	* cp-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* parser.c (cp_parser_new): Update comment to not reference
      	ggc_alloc.
      
      gcc/fortran:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
      	allocation.
      	(gfc_get_array_type_bounds): Likewise.
      
      	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
      	(gfc_find_module): Likewise.
      
      	* f95-lang.c (pushlevel): Likewise.
      
      	* trans.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      gcc/java:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
      
      	* jcf-parse.c (java_parse_file): Likewise.
      	(process_zip_dir): Likewise.
      
      	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
      	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
      
      	* expr.c (add_type_assertion): Likewise.
      
      	* decl.c (make_binding_level): Likewise.
      	(java_dup_lang_specific_decl): Likewise.
      
      	* constants.c (set_constant_entry): Likewise.
      	(cpool_for_class): Likewise.
      
      	* class.c (add_method_1): Likewise.
      	(java_treetreehash_new): Likewise.
      
      	* java-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* jch.h (struct cpool_entry): Likewise.
      
      	* java-tree.h (java_treetreehash_create): Remove parameter ggc.
      
      	* except.c (prepare_eh_table_type): Update
      	java_treetreehash_create call.
      
      	* class.c (add_method_1): Update java_treetreehash_create call.
      	(java_treetreehash_create): Remove parameter gc.  Use
      	htab_create_ggc.
      
      gcc/lto:
      
      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.
      
      gcc/objc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      	* objc-act.c (objc_volatilize_decl): Likewise.
      	(objc_build_string_object): Likewise.
      	(hash_init): Likewise.
      	(hash_enter): Likewise.
      	(hash_add_attr): Likewise.
      	(add_class): Likewise.
      	(start_class): Likewise.
      
      gcc/objcp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objcp-decl.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      gcc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
      
      	* doc/gty.texi (GTY Options): Document typed GC allocation and
      	variable_size GTY option.
      
      	* ggc-internal.h: New.
      
      	* ggc.h: Update copyright year.
      	(digit_string): Move to stringpool.c.
      	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
      	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
      	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
      	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
      	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
      	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
      	(ggc_force_collect, ggc_get_size, ggc_statistics)
      	(ggc_print_common_statistics): Move to ggc-internal.h.
      	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
      	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
      	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
      	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
      	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
      	(ggc_alloc_zone_pass_stat): Remove.
      	(ggc_internal_alloc_stat, ggc_internal_alloc)
      	(ggc_internal_cleared_alloc_stat): New.
      	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
      	(ggc_internal_vec_alloc_stat)
      	(ggc_internal_cleared_vec_alloc_stat)
      	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
      	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
      	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(htab_create_ggc, splay_tree_new_ggc): Redefine.
      	(ggc_splay_alloc): Change the type of the first argument to
      	enum gt_types_enum.
      	(ggc_alloc_string): Make macro.
      	(ggc_alloc_string_stat): New.
      	(ggc_strdup): Redefine.
      	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
      	(ggc_alloc_rtvec_sized): New.
      	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
      	(ggc_internal_cleared_alloc_zone_stat)
      	(ggc_internal_zone_alloc_stat)
      	(ggc_internal_zone_cleared_alloc_stat)
      	(ggc_internal_zone_vec_alloc_stat)
      	(ggc_alloc_zone_rtx_def_stat)
      	(ggc_alloc_zone_tree_node_stat)
      	(ggc_alloc_zone_cleared_tree_node_stat)
      	(ggc_alloc_cleared_gimple_statement_d_stat): New.
      
      	* ggc-common.c: Include ggc-internal.h.
      	(ggc_internal_cleared_alloc_stat): Rename from
      	ggc_alloc_cleared_stat.
      	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
      	(ggc_calloc): Remove.
      	(ggc_cleared_alloc_htab_ignore_args): New.
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(ggc_splay_alloc): Add obj_type parameter.
      	(init_ggc_heuristics): Formatting fixes.
      
      	* ggc-none.c: Update copyright year.
      	(ggc_alloc_stat): Rename to ggc_alloc_stat.
      	(ggc_alloc_cleared_stat): Rename to
      	ggc_internal_cleared_alloc_stat.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
      	Remove references to ggc_alloc in comments.
      	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
      	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-zone.c: Include ggc-internal.h.  Remove references to
      	ggc_alloc in comments.
      	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat): New.
      	(ggc_internal_cleared_alloc_zone_stat): New.
      	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
      	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      
      	* stringpool.c: Update copyright year.  Include ggc-internal.h
      	(digit_vector): Make static.
      	(digit_string): Moved from ggc.h.
      	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
      	(ggc_alloc_string): Rename to ggc_alloc_string_stat.
      
      	* Makefile.in (GGC_INTERNAL_H): New.
      	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
      	$(GGC_INTERNAL_H) to dependencies.
      
      	* gentype.c: Update copyright year.
      	(walk_type): Accept variable_size GTY option.
      	(USED_BY_TYPED_GC_P): New macro.
      	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
      	whitespace at the end of strings.
      	(get_type_specifier, variable_size_p): New functions.
      	(alloc_quantity, alloc_zone): New enums.
      	(write_typed_alloc_def): New function.
      	(write_typed_struct_alloc_def): Likewise.
      	(write_typed_typed_typedef_alloc_def): Likewise.
      	(write_typed_alloc_defns): Likewise.
      	(output_typename, write_splay_tree_allocator_def): Likewise.
      	(write_splay_tree_allocators): Likewise.
      	(main): Call write_typed_alloc_defns and
      	write_splay_tree_allocators.
      
      	* lto-streamer.h (lto_file_decl_data_ptr): New.
      
      	* passes.c (order): Define using cgraph_node_ptr.
      
      	* strinpool.c (struct string_pool_data): Declare nested_ptr using
      	ht_identifier_ptr.
      
      	* gimple.h (union gimple_statement_d): Likewise.
      
      	* rtl.h (struct rtx_def): Likewise.
      	(struct rtvec_def): Likewise.
      
      	* tree.h (union tree_node): Likewise.
      
      	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
      
      	* cfgloop.c (record_loop_exits): Use htab_create_ggc.
      
      	* tree-scalar-evolution.c (scev_initialize): Likewise.
      
      	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.
      
      	* dwarf2asm.c (dw2_force_const_mem): Likewise.
      
      	* omp-low.c (lower_omp_critical): Likewise.
      
      	* bitmap.h (struct bitmap_head_def): Update comment to not
      	reference ggc_alloc.
      
      	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
      
      	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
      
      	* ipa-prop.c (duplicate_ggc_array): Rename to
      	duplicate_ipa_jump_func_array.  Use typed GC allocation.
      	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
      
      	* gimple.c (gimple_alloc_stat): Use
      	ggc_alloc_cleared_gimple_statement_d_stat.
      
      	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
      
      	* tree.c (make_node_stat): Use
      	ggc_alloc_zone_cleared_tree_node_stat.
      	(make_tree_vec_stat): Likewise.
      	(build_vl_exp_stat): Likewise.
      	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
      	(make_tree_binfo_stat): Likewise.
      	(tree_cons_stat): Likewise.
      
      	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
      	(shallow_copy_rtx_stat): Likewise.
      	(make_node_stat): Likewise.
      
      	* lto-symtab.c: Fix comment.
      
      	* tree-cfg.c (create_bb): Update comment to not reference
      	ggc_alloc_cleared.
      	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
      	value.
      
      	* varpool.c (varpool_node): Use typed GC allocation.
      	(varpool_extra_name_alias): Likewise.
      
      	* varasm.c (emutls_decl): Likewise.
      	(get_unnamed_section): Likewise.
      	(get_noswitch_section): Likewise.
      	(get_section): Likewise.
      	(get_block_for_section): Likewise.
      	(build_constant_desc): Likewise.
      	(create_constant_pool): Likewise.
      	(force_const_mem): Likewise.
      
      	* tree.c (build_vl_exp_stat): Likewise.
      	(build_real): Likewise.
      	(build_string): Likewise.
      	(decl_debug_expr_insert): Likewise.
      	(decl_value_expr_insert): Likewise.
      	(type_hash_add): Likewise.
      	(build_omp_clause): Likewise.
      
      	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
      
      	* tree-ssa.c (init_tree_ssa): Likewise.
      
      	* tree-ssa-structalias.c (heapvar_insert): Likewise.
      
      	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
      
      	* tree-ssa-loop-niter.c (record_estimate): Likewise.
      
      	* tree-ssa-alias.c (get_ptr_info): Likewise.
      
      	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
      
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      
      	* tree-iterator.c (tsi_link_before): Likewise.
      	(tsi_link_after): Likewise.
      
      	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
      
      	* tree-dfa.c (create_var_ann): Likewise.
      
      	* tree-cfg.c (create_bb): Likewise.
      
      	* toplev.c (alloc_for_identifier_to_locale): Likewise.
      	(general_init): Likewise.
      
      	* stringpool.c (stringpool_ggc_alloc): Likewise.
      	(gt_pch_save_stringpool): Likewise.
      
      	* sese.c (if_region_set_false_region): Likewise.
      
      	* passes.c (do_per_function_toporder): Likewise.
      
      	* optabs.c (set_optab_libfunc): Likewise.
      	(set_conv_libfunc): Likewise.
      
      	* lto-symtab.c (lto_symtab_register_decl): Likewise.
      
      	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
      	(input_eh_region): Likewise.
      	(input_eh_lp): Likewise.
      	(make_new_block): Likewise.
      	(unpack_ts_real_cst_value_fields): Likewise.
      
      	* lto-section-in.c (lto_new_in_decl_state): Likewise.
      
      	* lto-cgraph.c (input_node_opt_summary): Likewise.
      
      	* loop-init.c (loop_optimizer_init): Likewise.
      
      	* lambda.h (lambda_vector_new): Likewise.
      
      	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
      
      	* ira.c (update_equiv_regs): Likewise.
      
      	* ipa.c (cgraph_node_set_new): Likewise.
      	(cgraph_node_set_add): Likewise.
      	(varpool_node_set_new): Likewise.
      	(varpool_node_set_add): Likewise.
      
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
      	(duplicate_ipa_jump_func_array): Likewise.
      	(ipa_read_node_info): Likewise.
      
      	* ipa-cp.c (ipcp_create_replace_map): Likewise.
      
      	* integrate.c (get_hard_reg_initial_val): Likewise.
      
      	* gimple.c (gimple_alloc_stat): Likewise.
      	(gimple_build_omp_for): Likewise.
      	(gimple_seq_alloc): Likewise.
      	(gimple_copy): Likewise.
      
      	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
      	(gsi_insert_after_without_update): Likewise.
      
      	* function.c (add_frame_space): Likewise.
      	(insert_temp_slot_address): Likewise.
      	(assign_stack_temp_for_type): Likewise.
      	(allocate_struct_function): Likewise.
      	(types_used_by_var_decl_insert): Likewise.
      
      	* except.c (init_eh_for_function): Likewise.
      	(gen_eh_region): Likewise.
      	(gen_eh_region_catch): Likewise.
      	(gen_eh_landing_pad): Likewise.
      	(add_call_site): Likewise.
      
      	* emit-rtl.c (get_mem_attrs): Likewise.
      	(get_reg_attrs): Likewise.
      	(start_sequence): Likewise.
      	(init_emit): Likewise.
      
      	* dwarf2out.c (new_cfi): Likewise.
      	(queue_reg_save): Likewise.
      	(dwarf2out_frame_init): Likewise.
      	(new_loc_descr): Likewise.
      	(find_AT_string): Likewise.
      	(new_die): Likewise.
      	(add_var_loc_to_decl): Likewise.
      	(clone_die): Likewise.
      	(clone_as_declaration): Likewise.
      	(break_out_comdat_types): Likewise.
      	(new_loc_list): Likewise.
      	(loc_descriptor): Likewise.
      	(add_loc_descr_to_each): Likewise.
      	(add_const_value_attribute): Likewise.
      	(tree_add_const_value_attribute): Likewise.
      	(add_comp_dir_attribute): Likewise.
      	(add_name_and_src_coords_attributes): Likewise.
      	(lookup_filename): Likewise.
      	(store_vcall_insn): Likewise.
      	(dwarf2out_init): Likewise.
      
      	* dbxout.c (dbxout_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
      
      	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
      
      	* config/score/score7.c (score7_output_external): Likewise.
      
      	* config/score/score3.c (score3_output_external): Likewise.
      
      	* config/s390/s390.c (s390_init_machine_status): Likewise.
      
      	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
      	(rs6000_init_machine_status): Likewise.
      	(output_toc): Likewise.
      
      	* config/pa/pa.c (pa_init_machine_status): Likewise.
      	(get_deferred_plabel): Likewise.
      
      	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
      
      	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
      
      	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
      
      	* config/mep/mep.c (mep_init_machine_status): Likewise.
      	(mep_note_pragma_flag): Likewise.
      
      	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
      
      	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
      
      	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
      	(i386_pe_maybe_record_exported_symbol): Likewise.
      
      	* config/i386/i386.c (get_dllimport_decl): Likewise.
      	(ix86_init_machine_status): Likewise.
      	(assign_386_stack_local): Likewise.
      
      	* config/frv/frv.c (frv_init_machine_status): Likewise.
      
      	* config/darwin.c (machopic_indirection_name): Likewise.
      
      	* config/cris/cris.c (cris_init_machine_status): Likewise.
      
      	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
      
      	* config/avr/avr.c (avr_init_machine_status): Likewise.
      
      	* config/arm/arm.c (arm_init_machine_status): Likewise.
      
      	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
      	(alpha_need_linkage): Likewise.
      	(alpha_use_linkage): Likewise.
      
      	* cgraph.c (cgraph_allocate_node): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_create_indirect_edge): Likewise.
      	(cgraph_add_asm_node): Likewise.
      
      	* cfgrtl.c (init_rtl_bb_info): Likewise.
      
      	* cfgloop.c (alloc_loop): Likewise.
      	(rescan_loop_exit): Likewise.
      
      	* cfg.c (init_flow): Likewise.
      	(alloc_block): Likewise.
      	(unchecked_make_edge): Likewise.
      
      	* c-parser.c (c_parse_init): Likewise.
      	(c_parse_file): Likewise.
      
      	* c-decl.c (bind): Likewise.
      	(record_inline_static): Likewise.
      	(push_scope): Likewise.
      	(make_label): Likewise.
      	(lookup_label_for_goto): Likewise.
      	(finish_struct): Likewise.
      	(finish_enum): Likewise.
      	(c_push_function_context): Likewise.
      
      	* bitmap.c (bitmap_element_allocate): Likewise.
      	(bitmap_gc_alloc_stat): Likewise.
      
      	* alias.c (record_alias_subset): Likewise.
      	(init_alias_analysis): Likewise.
      
      include:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.h: Update copyright years.
      	(splay_tree_s): Document fields.
      	(splay_tree_new_typed_alloc): New.
      
      	* hashtab.h: Update copyright years.
      	(htab_create_typed_alloc): New.
      
      libcpp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/symtab.h (ht_identifier_ptr): New.
      
      libiberty:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.c: Update copyright years.
      	(splay_tree_new_typed_alloc): New.
      	(splay_tree_new_with_allocator): Use it.
      
      	* hashtab.c: Update copyright years.
      	(htab_create_typed_alloc): New.
      	(htab_create_alloc): Use it.
      
      	* functions.texi: Regenerate.
      
      From-SVN: r160425
      Laurynas Biveinis committed
  27. 03 Jun, 2010 1 commit
  28. 17 May, 2010 1 commit
    • cgraph.h (struct ipa_replace_map): Add parm_num parameter. · 922f15c2
      	* cgraph.h (struct ipa_replace_map): Add parm_num parameter.
      	* lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
      	New functions.
      	(output_cgraph): Call output_cgraph_opt_summary.
      	(input_cgrpah): Call input_cgraph_opt_summary.
      	(output_cgraph_opt_summary_p, output_node_opt_summary,
      	input_node_opt_summary, input_cgraph_opt_section): New functions.
      	* lto-section-in.c (lto_section_name): Add cgraphopt.
      	* tree-inline.c (tree_function_versioning): Handle parm_num.
      	* lto-streamer.c (lto_get_section_name): Handle cgraphopt.
      	* lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
      
      From-SVN: r159517
      Jan Hubicka committed
  29. 16 May, 2010 1 commit
    • cgraph.c (cgraph_clone_node): Take decl argument and insert clone into hash when… · 91fbf0c7
      cgraph.c (cgraph_clone_node): Take decl argument and insert clone into hash when it is different from orig.
      
      	* cgraph.c (cgraph_clone_node): Take decl argument and insert
      	clone into hash when it is different from orig.
      	(cgraph_create_virtual_clone): Update use of cgraph_clone_node.
      	* cgraph.h (cgraph_clone_node): Update prototype.
      	* lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
      	(lto_cgraph_encoder_delete): Delete body map.
      	(lto_cgraph_encoder_size): Move to header.
      	(lto_cgraph_encoder_encode_body_p, lto_set_cgraph_encoder_encode_body): New.
      	(lto_output_node): Do not take written_decls argument; output clone_of
      	pointer.
      	(add_node_to): Add include_body_argument; call
      	lto_set_cgraph_encoder_encode_body on master of the clone.
      	(add_references): Update use of add_node_to.
      	(compute_ltrans_boundary): Likewise.
      	(output_cgraph): Do not create written_decls bitmap.
      	(input_node): Take nodes argument; stream in clone_of correctly.
      	(input_cgraph_1): Update use of input_node.
      	* lto-streamer-out.c (lto_output): Use encoder info to decide
      	what bodies to output.
      	* ipa-inline.c (cgraph_clone_inlined_nodes,
      	cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
      	* lto-streamer.h (lto_cgraph_encoder_d): Add body.
      	(lto_cgraph_encoder_size): Define here.
      	(lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
      	Declare.
      
      From-SVN: r159466
      Jan Hubicka committed
  30. 15 May, 2010 1 commit
    • ipa-reference.c: Include toplev.h · f3380641
      	* ipa-reference.c: Include toplev.h
      	(is_proper_for_analysis): Only add to all_module_statics
      	if it is allocated.
      	(write_node_summary_p, stream_out_bitmap,
      	ipa_reference_write_optimization_summary,
      	ipa_reference_read_optimization_summary): New.
      	(struct ipa_opt_pass_d pass_ipa_reference): Add
      	optimization summary streaming.
      	* lto-cgraph.c (referenced_from_this_partition_p, 
      	reachable_from_this_partition_p): New functions.
      	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
      	call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
      	* opts.c (decode_options): Enable ipa_reference.
      	* Makefile.in (ipa-reference.o): Add toplev.h dependency.
      	* lto-streamer.h (referenced_from_this_partition_p,
      	reachable_from_this_partition_p): Declare.
      
      	* gcc.dg/lto/ipareference_1.c: New file.
      	* gcc.dg/lto/ipareference_2.c: New file.
      
      From-SVN: r159435
      Jan Hubicka committed
  31. 11 May, 2010 2 commits
    • lto-symtab.c (lto_symtab_free): New function. · 9a809897
      	* lto-symtab.c (lto_symtab_free): New function.
      	* lto-streamer.h (lto_symtab_free): Declare.
      
      	* lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
      	that if function is needed it is reachable.
      	(lto_output_node): See if it the function is reachable or referenced.
      	(output_cgraph): Update call of lto_output_node.
      	* lto-streamer.h (reachable_from_other_partition_p): Declare.
      
      	* lto.c (lto_fixup_decls): Free no longer needed lto_global_var_decls
      	vector.
      
      	* 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.
      
      From-SVN: r159280
      Jan Hubicka committed
    • lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in heap. · 979aeb33
      	* lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
      	heap.
      
      From-SVN: r159262
      Jan Hubicka committed
  32. 10 May, 2010 1 commit
    • passes.c (ipa_write_summaries_1, [...]): Allocate encoders. · 5c4f225f
      	* passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries): Allocate
      	encoders.
      	* lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
      	* lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
      	(lto_streamer_cache_create): Init alloc pool.
      	(lto_streamer_cache_delete): Free alloc pool.
      	* lto-streamer.h: Include alloc pool.
      	(lto_streamer_cache_d): Use alloc pool.
      	* lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
      
      From-SVN: r159230
      Jan Hubicka committed
  33. 06 May, 2010 1 commit
    • cgraphbuild.c (record_reference_ctx): Add varpool_node. · 369451ec
      	* cgraphbuild.c (record_reference_ctx): Add varpool_node.
      	(record_reference, mark_address, mark_load, mark_store): Record
      	references.
      	(record_references_in_initializer): Update call of record_references.
      	(rebuild_cgraph_edges): Remove all references before rebuiding.
      	* cgraph.c (cgraph_create_node): Clear ref list.
      	(cgraph_remove_node): Remove references.
      	(dump_cgraph_node): Dump references.
      	(cgraph_clone_node): Clone references.
      	* cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
      	(struct cgraph_node, varpool_node): Add ref_lst.
      	* ipa-ref.c: New file.
      	* ipa-ref.h: New file.
      	* ipa-ref-inline.h: New file.
      	* lto-cgraph.c (output_varpool): Take cgrag node set argument.
      	(referenced_from_other_partition_p): New function.
      	(lto_output_varpool_node): Take set arugment; call
      	referenced_from_other_partition.
      	(lto_output_ref): New.
      	(add_references): New.
      	(output_refs): New.
      	(output_cgraph): Compute boundary based on references;
      	output refs.
      	(output_varpool): Accept cgraph_node_set argument.
      	(input_ref): New.
      	(input_refs): New.
      	(input_cgraph): Call input_refs.
      	* lto-section-in.c (lto_section_name): Add refs.
      	* Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
      	(ipa-ref.o): New file.
      	* varpool.c (varpool_node): Clear ipa ref list.
      	(varpool_remove_node): Remove references.
      	(dump_varpool_node): Dump references.
      	(varpool_assemble_decl): Only compile finalized ones.
      	(varpool_extra_name_alias): Initialize ref list.
      	* lto-streamer.c (lto-get_section_name): Add .refs section.
      	* lto-streamer.h (lto_section_type): Add LTO_section_refs.
      	(referenced_from_other_partition_p): Declared.
      
      From-SVN: r159097
      Jan Hubicka committed
  34. 05 May, 2010 1 commit
    • lto-cgraph.c (output_varpool): Forward declare; work on encoder. · 2f41ecf5
      	* lto-cgraph.c (output_varpool): Forward declare; work on encoder.
      	(lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
      	lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
      	lto_varpool_encoder_encode_initializer_p,
      	lto_set_varpool_encoder_encode_initializer): New functions.
      	(lto_output_cgraph): Take vset parameter too; compute varpool encoder;
      	call output_varpool.
      	(input_varpool_node): Do not always set analyzed.
      	(input_cgraph_1): Return vector of cgraph nodes.
      	(input_varpool_1): Return vector of varpools.
      	(input_cgraph): Free the vectors.
      	* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
      	output only initializers needed.
      	(lto_output): Only call output_cgraph.
      	(produce_asm_for_decls): Call lto_varpool_encoder_delete.
      	* lto-section-out.c (lto_new_out_decl_state): Initialize
      	state->varpool_node_encoder.
      	* lto-streamer.h (lto_varpool_encoder_d): New.
      	(lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.	
      	(lto_cgraph_encoder_delete, output_cgraph): Update prototype.
      	(lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
      	lto_varpool_encoder_encode, lto_varpool_encoder_delete,
      	lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
      	Declare.
      	(output_varpool, input_varpool): Remove declarations.
      
      	* lto.c (lto_1_to_1_map): Partition only needed nodes.
      
      From-SVN: r159062
      Jan Hubicka committed
  35. 30 Apr, 2010 1 commit
    • lto.c (get_filename_for_set): Look for cgraph node and if none found, use default name. · ace72c88
      	* 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.
      
      	* cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): New.
      	* lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
      	* lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
      	(lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
      	cgraph_node_set_needs_ltrans_p): Remove.
      
      From-SVN: r158943
      Jan Hubicka committed
  36. 29 Apr, 2010 2 commits
    • gengtype.c (open_base_files): Add lto-streamer.h · 49ba8180
      	* gengtype.c (open_base_files): Add lto-streamer.h
      	* cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
      	(pass_ipa_cp): GGC collect.
      	* toplev. (compile_file): Do not output symbols.
      	* ipa-inline.c (pass_ipa_inline): Add ggc collect.
      	* timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
      	TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
      	* lto-section-in.c: Include ggc.h
      	(lto_new_in_decl_state): Alloc in GGC.
      	(lto_delete_in_decl_state): Likewise.
      	* ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program): Collect.
      
      	* lto/lto.c (lto_read_in_decl_state): Use GGC.
      	(lto_wpa_write_files): Announce what we are writting.
      	(all_file_decl_data): New.
      	(read_cgraph_and_symbols): Use GGC; correct timevars.
      	(do_whole_program_analysis): Collect.
      	* lto/Make-lang.in (lto.o): Fix dependency.
      	* Makefile.in (GTFILES): Add lto-streamer.h.
      	* varpool.c (varpool_analyze_pending_decls): Use TV_VARPOOL.
      	(varpool_assemble_pending_decls): Use VAROUT.
      	* lto-streamer.h (lto_tree_ref_table): Annotate.
      	(lto_in_decl_state): Annotate.
      	(lto_file_decl_data): Annotate.
      
      From-SVN: r158912
      Jan Hubicka committed
    • * lto-symtab.c (lto_symtab_entry_def) Add vnode. · 2942c502
      	(lto_varpool_replace_node): New.
      	(lto_symtab_resolve_symbols): Resolve varpool nodes.
      	(lto_symtab_merge_decls_1): Prefer decls with varpool node.
      	(lto_symtab_merge_cgraph_nodes_1): Merge varpools.
      	* cgraph.h (varpool_node_ptr): New type.
      	(varpool_node_ptr): New vector.
      	(varpool_node_set_def): New structure.
      	(varpool_node_set): New type.
      	(varpool_node_set): New vector.
      	(varpool_node_set_element_def): New structure.
      	(varpool_node_set_element, const_varpool_node_set_element): New types.
      	(varpool_node_set_iterator): New type.
      	(varpool_node): Add prev pointers, add used_from_other_partition,
      	in_other_partition.
      	(varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
      	varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
      	varpool_get_node, varpool_remove_node): Declare.
      	(vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
      	varpool_node_set_size): New inlines.
      	* cgraph.c (dump_cgraph_node): Dump asm names of aliases.
      	* tree-pass.h (varpool_node_set_def): Forward declare.
      	(ipa_opt_pass_d): Summary writting takes vnode sets too.
      	(ipa_write_optimization_summaries): Update prototype.
      	* ipa-cp.c (ipcp_write_summary): Update.
      	* ipa-reference.c (ipa_reference_write_summary): Update.
      	* lto-cgraph.c (lto_output_varpool_node): New static function.
      	(output_varpool): New function.
      	(input_varpool_node): New static function.
      	(input_varpool_1): New function.
      	(input_cgraph): Input varpool.
      	* ipa-pure-const.c (pure_const_write_summary): Update.
      	* lto-streamer-out.c (lto_output): Update, output varpool too.
      	(write_global_stream): Kill WPA hack.
      	(produce_asm_for_decls): Update.
      	(output_alias_pair_p): Handle variables.
      	(output_unreferenced_globals): Output only needed partition of varpool.
      	* ipa-inline.c (inline_write_summary): Update.
      	* lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build cgraph.
      	* lto-section-in.c (lto_section_name): Add varpool and jump funcs.
      	* ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
      	varpool_node_set_new, varpool_node_set_add,
      	varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
      	debug_varpool_node_set): New functions.
      	* passes.c (rest_of_decl_compilation): when in LTO do not finalize.
      	(execute_one_pass): Process new decls too.
      	(ipa_write_summaries_2): Pass around vsets.
      	(ipa_write_summaries_1): Likewise.
      	(ipa_write_summaries): Build vset; be more selective about cgraph nodes
      	to add.
      	(ipa_write_optimization_summaries_1): Pass around vsets.
      	(ipa_write_optimization_summaries): Likewise.
      	* varpool.c (varpool_get_node): New.
      	(varpool_node): Update doubly linked lists.
      	(varpool_remove_node): New.
      	(dump_varpool_node): More dumping.
      	(varpool_enqueue_needed_node): Update doubly linked lists.
      	(decide_is_variable_needed): Kill ltrans hack.
      	(varpool_finalize_decl): Kill lto hack.
      	(varpool_assemble_decl): Skip decls in other partitions.
      	(varpool_assemble_pending_decls): Update doubly linkes lists.
      	(varpool_empty_needed_queue): Likewise.
      	(varpool_extra_name_alias): Likewise.
      	* lto-streamer.c (lto_get_section_name): Add vars section.
      	* lto-streamer.h (lto_section_type): Update.
      	(output_varpool, input_varpool): Declare.
      
      	* 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.
      
      From-SVN: r158854
      Jan Hubicka committed