| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (input_cgraph_opt_section): Use 'int' for offsets.
* lto-streamer-in.c (lto_read_body): Likewise.
(lto_input_toplevel_asms): Likewise.
* lto-section-in.c (lto_create_simple_input_block): Likewise.
* ipa-inline-analysis.c (inline_read_section): Likewise.
* ipa-prop.c (ipa_prop_read_section): Likewise.
* df.h (DF_NOTE): Fix typo in comment.
lto/
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182310 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* gimple-streamer-out.c (output_gimple_stmt): Handle GIMPLE_TRANSACTION.
* gimple-streamer-in.c (input_gimple_stmt): Same.
* lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
(lto_output_node): Write tm_clone bit.
lto/
* lto-lang.c (lto_attribute_table): Handle transaction_pure.
(handle_transaction_pure_attribute): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181629 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* cgraphunit.c (handle_alias_pairs): Handle weakrefs with no destination.
(get_alias_symbol): New function.
(output_weakrefs): Output also weakrefs with no destinatoin.
(lto_output_node): Output weakref alias flag when at function boundary.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180292 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179496 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-plugin.c (get_symbols_v2): New variable.
(write_resolution): Use V2 API when available.
(onload): Handle LDPT_GET_SYMBOLS_V2.
* lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
when resolution is already availbale from plugin.
(lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
* cgraph.c (ld_plugin_symbol_resolution): Add prevailing_def_ironly_exp.
* lto-cgraph.c (LDPR_NUM_KNOWN): Update.
* ipa.c (varpool_externally_visible_p): IRONLY variables are never
externally visible.
* varasm.c (resolution_to_local_definition_p): Add
LDPR_PREVAILING_DEF_IRONLY_EXP.
(resolution_local_p): Likewise.
* common.c (lto_resolution_str): Add new resolution.
* common.h (lto_resolution_str): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179424 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179386 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ipa-inline.h (struct inline_summary): Move versionable flag...
* cgraph.h (struct cgraph_local_info): ...here
* ipa-cp.c (determine_versionability): Use the new versionable flag.
(determine_versionability): Likewise.
(ipcp_versionable_function_p): Likewise.
(ipcp_generate_summary): Likewise.
* ipa-inline-analysis.c (dump_inline_summary): Do not dump the
versionable flag.
(compute_inline_parameters): Do not clear the versionable flag.
(inline_read_section): Do not stream the versionable flag.
(inline_write_summary): Likewise.
* lto-cgraph.c (lto_output_node): Stream the versionable flag.
(input_overwrite_node): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178598 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
* gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
BINFO_VTABLE. Parameter delta removed, all callers updated.
* tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
BINFO_VTABLE.
* cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
all calls.
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
handling of thunk_delta.
* ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
(devirtualization_time_bonus): Do not handle thunk deltas.
(ipcp_discover_new_direct_edges): Likewise.
* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
(try_make_edge_direct_simple_call): Likewise.
(try_make_edge_direct_virtual_call): Likewise.
* lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
parameter set as unused.
(output_edge_opt_summary): Likewise. Mark both parameters as unused.
* lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
parameter set as unused.
(output_edge_opt_summary): Likewise. Mark both parameters as unused.
(input_edge_opt_summary): Likewise.
* lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
BINFO_VIRTUALS at all.
* lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
* testsuite/g++.dg/ipa/devirt-3.C: Added a distraction method.
* testsuite/g++.dg/ipa/ivinline-7.C: Added a test for direct call
discovery, xfailed test for inlining.
* testsuite/g++.dg/ipa/ivinline-9.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178472 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177704 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (input_node): Use DECL_BUILT_IN.
* tree-vrp.c (stmt_interesting_for_vrp): Likewise.
(vrp_visit_stmt): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177668 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177661 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177571 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
extra name aliases.
(lto_symtab_resolve_can_prevail_p): Likewise.
(lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
* cgraphbuild.c (record_reference): Remove extra body alias code.
(mark_load): Likewise.
(mark_store): Likewise.
* cgraph.h (varpool_node): Remove extra_name filed;
add alias_of and extraname_alias.
(varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
(varpool_alias_aliased_node): New inline function.
(varpool_variable_node): New function.
* cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
* ipa-ref.c (ipa_record_reference): Allow aliases on variables.
* lto-cgraph.c (lto_output_varpool_node): Update streaming.
(input_varpool_node): Likewise.
* lto-streamer-out.c (produce_symtab): Remove extra name aliases.
(varpool_externally_visible_p): Remove extra body alias code.
(function_and_variable_visibility): Likewise.
* tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
(ipa_pta_execute): Use it.
* varpool.c (varpool_remove_node): Remove extra name alias code.
(varpool_mark_needed_node): Likewise.
(varpool_analyze_pending_decls): Analyze aliases.
(assemble_aliases): New functoin.
(varpool_assemble_decl): Use it.
(varpool_create_variable_alias): New function.
(varpool_extra_name_alias): Rewrite.
(varpool_for_node_and_aliases): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175167 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(lto_symtab_resolve_can_prevail_p): Likewise.
(lto_symtab_merge_cgraph_nodes): Update merging of aliases.
* cgraph.c (same_body_aliases_done): New global var.
(cgraph_same_body_alias_1): Rename to ...
(cgraph_create_function_alias): ... this one; reorg to new
representation.
(cgraph_same_body_alias): Use cgraph_create_function_alias;
record references when asked to.
(cgraph_add_thunk): Fix formating.
(cgraph_get_node): Kill same body alias code.
(cgraph_node_for_asm): Likewise.
(cgraph_remove_same_body_alias): Remove.
(cgraph_remove_node): Kill same body alias code.
(cgraph_mark_address_taken_node): Mark also the aliased function
as having address taken.
(dump_cgraph_node): Dump same body aliases.
(cgraph_for_node_thunks_and_aliases): Update for new alias
representation.
(cgraph_for_node_and_aliases): Likewise.
* cgraph.h (same_body): Kll pointer.
(same_body_alias): Update comment.
(same_body_aliases_done): Declare.
(cgraph_remove_same_body_alias): Remove declaration.
(cgraph_create_function_alias): Declare.
(cgraph_process_same_body_aliases): Declare.
(cgraph_function_with_gimple_body_p): Check for alias.
(cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
(cgraph_alias_aliased_node): New function.
(cgraph_function_node): Update for new aliases.
(cgraph_function_or_thunk_node): Likewise.
* ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
(inline_call): Remove dead aliases.
* cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler name
hack for same body aliases.
(clone_of_p): Look through aliases.
(verify_cgraph_node): Verify aliases.
(cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
(cgraph_process_same_body_aliases): New function.
(process_function_and_variable_attributes): Disable weakref warning on
alias.
(cgraph_analyze_functions): Handle aliases.
(cgraph_mark_functions_to_output): Handle aliases same way as thunks.
(assemble_thunks): Rename to ...
(assemble_thunks_and_aliases): ... this one; handle aliases, too.
(cgraph_expand_function): Remove alias output code.
(cgraph_output_in_order): Skip aliases.
(cgraph_preserve_function_body_p): Aliases don't need preserving.
* ipa-ref.c (ipa_ref_use_name): Add alias reference.
(ipa_record_reference): Do not assert on alias references.
(ipa_ref_has_aliases_p): New function.
* ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
(ipa_ref_has_aliases_p): Declare.
* lto-cgraph.c (lto_output_node): Handle aliases.
(input_node): Likewise.
* lto-streamer-out.c (lto_output): Skip aliases.
(produce_symtab): Kill same_body_alias code.
* ipa-utils.c (ipa_reverse_postorder): Add FIXME.
(ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
* ipa-inline.c (update_caller_keys): Walk aliases.
(inline_small_functions): Fix thinko in previous patch.
* ipa.c (cgraph_externally_visible_p): Do not walk aliases.
(function_and_variable_visibility): Do not walk same body aliases.
* tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
(ipa_pta_execute): Use it.
* 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.
* decl2.c (cp_write_global_declarations): Process aliases; look trhough
same body aliases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174952 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (output_node_opt_summary): Handle NULL skip args bitmaps.
* g++.dg/torture/pr48954.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174644 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
(LTO_cgraph_tags): Add LTO_cgraph_last_tag.
(lto_output_edge): Use output_enum and var_len_unsigned.
(lto_output_varpool_node): Likewise.
(input_overwrite_node): Do not take resolution parameter;
extract it from a bitpack.
(input_node): Do not read resolution; use input_enum and
var_len_unsigned.
(input_varpool_node): Likewise.
(input_edge): Likewise.
(input_cgraph_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174487 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(cgraph_create_virtual_clone): Call hooks once virtual clone is finished.
* cgraph.h (cgraph_clone_node): Update prototype.
* ipa-cp.c (ipcp_estimate_growth): Use estimate_ipcp_clone_size_and_time.
* ipa-inline-transform.c (clone_inlined_nodes): Update.
* lto-cgraph.c (input_node): Update.
* ipa-inline.c (recursive_inlining): Update.
* ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
(evaluate_conditions_for_known_args): Break out from ...
(evaluate_conditions_for_edge): ... here.
(evaluate_conditions_for_ipcp_clone): New function.
(inline_node_duplication_hook): Update clone summary based
on parameter map.
(estimate_callee_size_and_time): Rename to ...
(estimate_node_size_and_time): take NODE instead of EDGE;
take POSSIBLE_TRUTHS as argument.
(estimate_callee_size_and_time): Update.
(estimate_ipcp_clone_size_and_time): New function.
(do_estimate_edge_time): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173551 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of alias node; finalize it and mark needed/reachale; arrange visibility
to be right and add it into the corresponding same comdat group list.
(dump_cgraph_node): Dump thunks.
* cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
cgraph_function_with_gimple_body_p, cgraph_first_function_with_gimple_body,
cgraph_next_function_with_gimple_body): New functions.
(FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
New macros.
* ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
(ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
* cgraphunit.c (cgraph_finalize_function): Only look into possible
devirtualization when optimizing.
(verify_cgraph_node): Verify thunks.
(cgraph_analyze_function): Analyze thunks.
(cgraph_mark_functions_to_output): Output thunks only in combination
with function they are assigned to.
(assemble_thunk): Turn thunk into non-thunk; don't try to turn
alias into normal node.
(assemble_thunks): New functoin.
(cgraph_expand_function): Use it.
* lto-cgraph.c (lto_output_node): Stream thunks.
(input_overwrite_node): Stream in thunks.
* ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
* lto-streamer-out.c (lto_output): Do not try to output thunk's body.
* ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
* ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
(inline_analyze_function): Do not care about thunk jump functions.
(inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
* ipa-prop.c (ipa_prop_write_jump_functions): Use cgraph_function_with_gimple_body_p.
* passes.c (do_per_function_toporder): Use cgraph_function_with_gimple_body_p.
(execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
(ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
(function_called_by_processed_nodes_p): Likewise.
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173517 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of cgraph_create_edge and cgraph_create_indirect_edge.
* cgraph.c (cgraph_create_edge_including_clones,
cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
cgraph_update_edges_for_call_stmt_node): Do not take nest
argument; do not initialize call_stmt_size/time.
(dump_cgraph_node): Do not dump nest.
(cgraph_clone_edge): Do not take loop_nest argument;
do not propagate it; do not clone call_stmt_size/time.
(cgraph_clone_node): Likewise.
(cgraph_create_virtual_clone): Update.
* cgraph.h (struct cgraph_edge): Remove
call_stmt_size/call_stmt_time/loop_nest.
(cgraph_create_edge, cgraph_create_indirect_edge,
cgraph_create_edge_including_clones, cgraph_clone_node): Update
prototype.
* tree-emutls.c (gen_emutls_addr): Update.
* ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
loop_nest; handle indirect calls, too.
(clone_inlined_nodes): Do not care about updating inline summaries.
* cgraphunit.c (cgraph_copy_node_for_versioning): Update.
* lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
stream call_stmt_size/call_stmt_time/loop_nest.
* ipa-inline.c (edge_badness): Update.
(ipa_inline): dump summaries after inlining.
* ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
new.
(inline_edge_summary): New function.
* ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
(inline_edge_removal_hook): Handle edge summaries.
(inline_edge_duplication_hook): New hook.
(inline_summary_alloc): Alloc hooks.
(initialize_growth_caches): Do not register removal hooks.
(free_growth_caches); Do not free removal hook.
(dump_inline_edge_summary): New function.
(dump_inline_summary): Use it.
(estimate_function_body_sizes, estimate_edge_size_and_time): Update.
(inline_update_callee_summaries): New function.
(inline_merge_summary): Use it.
(do_estimate_edge_time, do_estimate_edge_growth): Update.
(read_inline_edge_summary): New function.
(inline_read_section): Use it.
(write_inline_edge_summary): New function.
(inline_write_summary): Use it.
(inline_free_summary): Free edge new holders.
* tree-inline.c (copy_bb): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172989 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* cgrpahunit.c (cgraph_finalize_function): Do not set finalized_by_frontend.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
finalized_by_frontend.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172614 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (struct cgraph_local_info): Drop vtable_method.
* cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable method.
* gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
gimple-fold.c
* varasm.c (mark_decl_referenced): Drop vtable_method handling code.
* cp/class.c (cp_fold_obj_type_ref): Drop vtable_method.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172613 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
is non-null before accessing it.
(input_cgraph): Remove trailing spaces.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172611 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(reset_inline_failed): Use initialize_inline_failed.
* cgraph.c: Include ipa-inline.h.
(cgraph_create_node_1): Do not initialize estimated_growth.
(initialize_inline_failed): More to ipa-inline-analysis.c
(dump_cgraph_node): Do not dump inline flags.
* cgraph.h (cgraph_local_info): Remove inlineable, versionable
and disregard_inline_limits flags.
(cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
time, size, estimated_growth.
* ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary): Update.
* cgraphunit.c (cgraph_decide_is_function_needed): Use
DECL_DISREGARD_INLINE_LIMITS.
(cgraph_analyze_function): Do not initialize
node->local.disregard_inline_limits.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
inlinable, versionable and disregard_inline_limits.
* ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
cgraph_check_inline_limits, cgraph_default_inline_p, cgraph_edge_badness,
update_caller_keys, update_callee_keys, add_new_edges_to_heap): Update.
(cgraph_decide_inlining_of_small_function): Update; set CIF_FUNCTION_NOT_INLINABLE
for uninlinable functions.
(cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
cgraph_decide_inlining_incrementally): Update.
* ipa-inline.h (inline_summary): Add inlinable, versionable, disregard_inline_limits,
estimated_stack_size, stack_frame_offset, time, size and estimated_growth
parameters.
(estimate_edge_growth): Update.
(initialize_inline_failed): Declare.
* ipa-split.c: Include ipa-inline.h
(execute_split_functions): Update.
* ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
(cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
(record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
* ipa-inline-analysis.c (inline_node_removal_hook): Update; set
estimated_growth to INT_MIN.
(inline_node_duplication_hook): Likewise.
(dump_inline_summary): Dump new fields.
(compute_inline_parameters): Update.
(estimate_edge_time, estimate_time_after_inlining,
estimate_size_after_inlining, estimate_growth, inline_read_summary,
inline_write_summary):
(initialize_inline_failed): Move here from cgraph.c.
* tree-sra.c: Include ipa-inline.h.
(ipa_sra_preliminary_function_checks): Update.
* lto/lto.c (lto_balanced_map): Update.
Update.
* Makefile.in: (cgraph.o, cgraphbuild.o): Add dependency on
ipa-inline.h
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172581 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172430 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (cgraph_node): Remove function declaration.
(cgraph_create_node): Declare.
(cgraph_get_create_node): Likewise.
* cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
Updated all callers.
(cgraph_node): Renamed to cgraph_create_node, assert that a node for
the decl does not already exist. Call cgraph_get_create_node instead
of cgraph_node.
(cgraph_get_create_node): New function.
(cgraph_same_body_alias): Update comment.
(cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
assert it does not return NULL.
(cgraph_update_edges_for_call_stmt): Likewise.
(cgraph_clone_edge): Likewise.
(cgraph_create_virtual_clone): Likewise.
(cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
instead of cgraph_node.
(cgraph_add_new_function): Call cgraph_create_node or
cgraph_get_create_node instead of cgraph_node.
* cgraphbuild.c (record_reference): Call cgraph_get_create_node
instead of cgraph_node.
(record_eh_tables): Likewise.
(mark_address): Likewise.
(mark_load): Likewise.
(build_cgraph_edges): Call cgraph_get_create_node instead
of cgraph_node.
(rebuild_cgraph_edges): Likewise.
* cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
instead of cgraph_node.
(cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
cgraph_node.
* lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
cgraph_create_node instead of cgraph_node.
* c-decl.c (finish_function): Call cgraph_get_create_node instead
of cgraph_node.
* lto-cgraph.c (input_node): Likewise.
* lto-streamer-in.c (input_function): Likewise.
* varasm.c (mark_decl_referenced): Likewise.
(assemble_alias): Likewise.
gcc/c-family/
* c-gimplify.c (c_genericize): Call cgraph_get_create_node instead
of cgraph_node.
gcc/cp/
* cp/class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
instead of cgraph_node.
* cp/decl2.c (cxx_callgraph_analyze_expr): Likewise.
(cp_write_global_declarations): Likewise.
* cp/optimize.c (maybe_clone_body): Likewise.
* cp/semantics.c (maybe_add_lambda_conv_op): Likewise.
* cp/mangle.c (mangle_decl): Likewise.
* cp/method.c (make_alias_for_thunk): Likewise.
(use_thunk): Likewise.
gcc/ada/
* gcc-interface/utils.c (end_subprog_body): Call
cgraph_get_create_node instead of cgraph_node.
gcc/fortran/
* trans-decl.c (gfc_generate_function_code): Call
cgraph_get_create_node instead of cgraph_node.
gcc/objc/
* objc-act.c (mark_referenced_methods): Call cgraph_get_create_node
instead of cgraph_node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172307 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/47663
* cgraph.h (struct cgraph_edge): Add call_stmt_size and
call_stmt_time fields.
(cgraph_edge_inlinable_p): Declare.
(cgraph_edge_recursive_p): New inline function.
* cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
(cgraph_clone_edge): Copy it.
* ipa-inline.c (cgraph_estimate_edge_time): New function.
Account for call stmt time.
(cgraph_estimate_time_after_inlining): Take edge argument.
(cgraph_estimate_edge_growth): Account call stmt size.
(cgraph_estimate_size_after_inlining): Take edge argument.
(cgraph_mark_inline_edge): Adjust.
(cgraph_check_inline_limits): Likewise.
(cgraph_recursive_inlining_p): Remove.
(cgraph_edge_badness): Use cgraph_edge_recursive_p.
(cgraph_decide_recursive_inlining): Take edge argument and
adjust.
(cgraph_decide_inlining_of_small_functions): Do not avoid
diags for recursive inlining here.
(cgraph_flatten): Adjust.
(cgraph_decide_inlining_incrementally): Likewise.
(estimate_function_body_sizes): Remove call cost handling.
(compute_inline_parameters): Initialize caller edge call costs.
(cgraph_estimate_edge_growth): New function.
(cgraph_estimate_growth): Use it.
(cgraph_edge_badness): Likewise.
(cgraph_check_inline_limits): Take an edge argument.
(cgraph_decide_inlining_of_small_functions): Adjust.
(cgraph_decide_inlining): Likewise.
* tree-inline.c (estimate_num_insns): Only account for call
return value if it is used.
(expand_call_inline): Avoid diagnostics on recursive inline
functions here.
* lto-cgraph.c (lto_output_edge): Output edge call costs.
(input_edge): Input edge call costs.
* gcc.dg/tree-ssa/inline-8.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172023 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* dwarf2out.c (resolve_addr): Don't call force_decl_die
if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
Revert:
2011-03-17 Richard Guenther <rguenther@suse.de>
PR bootstrap/48148
* lto-cgraph.c (input_overwrite_node): Clear the abstract
origin for decls in other ltrans units.
(input_varpool_node): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171856 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
PR bootstrap/48148
* lto-cgraph.c (input_overwrite_node): Clear the abstract
origin for decls in other ltrans units.
(input_varpool_node): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171094 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
(lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
* cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): Add node pointers.
* cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
cgraph_add_thunk): Add node pointers.
* lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
associated to right node.
(input_node): Update use of cgraph_same_body_alias
and cgraph_add_thunk.
* optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
and cgraph_add_thunk.
* method.c (make_alias_for_thunk, use_thunk): Likewise.
* mangle.c (mangle_decl): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170682 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (cgraph_local_info): New field can_change_signature.
* ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
signature can change.
(ipcp_estimate_growth): Call sequence simplify only if calle signature
can change.
(ipcp_insert_stage): Only compute args_to_skip if signature can change.
(cgraph_function_versioning): We can not change signature of functions
that don't allow that.
* lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
(lto_input_node): Likewise.
* ipa-inline.c (compute_inline_parameters): Compute local.can_change_signature.
* ipa-split.c (visit_bb): Never split away APPLY_ARGS.
* tree-sra.c (ipa_sra_preliminary_function_checks): Give up on functions
that can not change signature.
* i386.c (ix86_function_regparm, ix86_function_sseregparm,
init_cumulative_args): Do not use local calling conventions for functions
that can not change signature.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169290 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* g++.dg/lto/pr47333.C: New file.
* lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169137 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168644 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2011-01-05 Martin Jambor <mjambor@suse.cz>
PR lto/47162
* lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
deltas on streamed outgoing edges.
(output_node_opt_summary): Output info for outgoing edges only when
the node is in new parameter set.
(output_cgraph_opt_summary): New parameter set, passed to the two
aforementioned functions. Update its forward declaration and its
callee too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168515 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168424 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR tree-optimization/46984
* cgraph.h (cgraph_indirect_call_info): make field thunk_delta
HOST_WIDE_INT.
(cgraph_create_indirect_edge): Fixed line length.
(cgraph_indirect_call_info): Declare.
(cgraph_make_edge_direct) Update declaration.
* cgraph.c (cgraph_allocate_init_indirect_info): New function.
(cgraph_create_indirect_edge): Use it.
(cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
callees.
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
the new thunk_delta representation.
* ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
HOST_WIDE_INT.
(ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
(ipa_read_indirect_edge_info): Likewise.
* lto-cgraph.c (output_edge_opt_summary): New function.
(output_node_opt_summary): Call it on all outgoing edges.
(input_edge_opt_summary): New function.
(input_node_opt_summary): Call it on all outgoing edges.
* testsuite/g++.dg/ipa/pr46984.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168420 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* lto-cgraph.c (merge_profile_summaries): Fix thinko.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167459 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167458 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* toplev.h: Don't include input.h or bversion.h.
(parse_optimize_options): Don't declare here.
* alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
config/host-darwin.c, config/i386/host-cygwin.c,
config/i386/host-mingw32.c, config/i386/msformat-c.c,
config/i386/netware.c, config/i386/nwld.c,
config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
config/score/score3.c, config/score/score7.c,
config/sh/symbian-base.c, config/sh/symbian-c.c,
config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
graphite-blocking.c, graphite-clast-to-gimple.c,
graphite-dependences.c, graphite-flattening.c,
graphite-interchange.c, graphite-poly.c,
graphite-scop-detection.c, graphite.c, haifa-sched.c,
implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
lto-opts.c, lto-section-in.c, lto-section-out.c,
lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
include toplev.h.
* Makefile.in (TOPLEV_H): Remove. All uses changed to use
toplev.h. Dependencies for above files and c-family files changed
to remove $(TOPLEV_H) or toplev.h.
(C_TREE_H): Don't include $(TOPLEV_H).
(DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h. Add
bversion.h.
* config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
config/t-darwin, config/t-sol2,
config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
Dependencies for above files changed to remove $(TOPLEV_H) or
toplev.h.
c-family:
* c-common.h (parse_optimize_options): Declare.
* c-cppbuiltin.c, c-format.c, c-gimplify.c, c-lex.c, c-omp.c,
c-pch.c, c-pragma.c, c-semantics.c: Don't include toplev.h.
cp:
* cp-gimplify.c, cp-lang.c, cvt.c, cxx-pretty-print.c, error.c,
except.c, expr.c, friend.c, init.c, mangle.c, name-lookup.c,
optimize.c, parser.c, rtti.c, tree.c, typeck2.c: Don't include
toplev.h.
* Make-lang.in: Dependencies for above files changed to remove
toplev.h.
java:
* expr.c, lang.c, mangle.c, mangle_name.c, typeck.c,
verify-glue.c: Don't include toplev.h.
* Make-lang.in: Dependencies for above files changed to remove
toplev.h.
lto:
* Make-lang.in (lto/lto-object.o): Depend on toplev.h instead of
$(TOPLEV_H).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167293 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
diagnostics with lowercase letters.
* cgraphunit.c (verify_cgraph_node): Start diagnostics with
lowercase letters.
* collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
diagnostic.
* config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
lowercase letters.
* config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
Remove trailing ' ' from diagnostic.
* config/avr/avr.c (print_operand_address): Start diagnostic with
a lowercase letter and remove trailing '.'.
* config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
* config/bfin/bfin.c (bfin_option_override): Start diagnostics
with lowercase letters. Use %' in diagnostics. Remove trailing
'.' from diagnostics.
(bfin_handle_longcall_attribute): Use %' in diagnostic.
* config/cris/cris.c (cris_split_movdx,
cris_expand_pic_call_address): Start diagnostics with lowercase
letters.
(cris_asm_output_label_ref): Use %' in diagnostic.
* config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
letter.
* config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
lowercase letter.
* config/darwin-c.c (version_as_macro): Start diagnostic with a
lowercase letter.
* config/darwin-driver.c (darwin_default_min_version): Use %' in
diagnostic.
* config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
diagnostic.
* config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
diagnostics.
* config/i386/i386.c (ix86_option_override_internal): Write
diagnostic as a single sentence without trailing '.'. Use %' in
diagnostics.
(ix86_function_sseregparm, classify_argument): Start diagnostics
with lowercase letters.
(ix86_expand_prologue): Use %' in diagnostic.
* config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
diagnostic.
* config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
lowercase letter.
* config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
diagnostic.
* config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
'`' in help text.
* config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
lowercase letter.
* config/mep/mep.c (mep_validate_vliw): Start diagnostics with
lowercase letters.
* config/microblaze/microblaze.c (microblaze_handle_option):
Remove trailing '.' from diagnostic.
(print_operand): Start diagnostic with a lowercase letter.
* config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
lowercase letters. Avoid '`' in diagnostics.
* config/picochip/picochip.c (picochip_option_override,
picochip_emit_save_register, picochip_function_arg,
picochip_output_label, picochip_output_internal_label,
picochip_asm_output_opcode, picochip_output_cbranch,
picochip_output_compare, picochip_output_branch,
picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
diagnostics. Start diagnostics with lowercase letters. Use %' in
diagnostics.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Use
"SPE" capitalization. Start diagnostic with a lowercase letter.
(rs6000_handle_option): Start diagnostics with lowercase letters.
(def_builtin): Remove trailing '.' from diagnostic.
(rs6000_savres_routine_name): Start diagnostic with a lowercase
letter.
* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
diagnostic.
* config/rx/rx.c (rx_handle_option): Start diagnostic with a
lowercase letter.
* config/s390/s390.c (s390_option_override) Start diagnostics with
lowercase letters. Use %' in diagnostic.
* config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
lowercase letters.
* config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
diagnostic.
* config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
diagnostic.
* config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
diagnostic.
* config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
* config/spu/spu.c (spu_option_override): Start diagnostics with
lowercase letters. Use %qs for quoting in diagnostics.
(spu_check_builtin_parm): Remove trailing '.' from diagnostics.
Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
* config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
from diagnostic.
* convert.c (convert_to_integer, convert_to_vector): Use %' in
diagnostics.
* dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
letter and use "cannot" spelling.
* expmed.c (extract_fixed_bit_field): Start diagnostic with
lowercase letter and format as a single sentence without '.'.
* ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
Use %' in diagnostics.
* ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
Use %' in diagnostics.
* ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
Use %' in diagnostics.
* graph.c (clean_graph_dump_file): Use %' in diagnostic.
* graphite-poly.c (graphite_read_scop_file): Start diagnostics
with lowercase letters and remove tailing '.' and '\n'.
* lto-cgraph.c (input_profile_summary): Start diagnostic with
lowercase letter and remove trailing '.'.
(input_cgraph): Start diagnostics with lowercase letters and
remove trailing '\n'.
* opts.c (finish_options, common_handle_option): Start diagnostics
with lowercase letters and remove trailing '.'. Fix typo in
diagnostic.
* passes.c (position_pass): Start diagnostic with lowercase
letter.
* plugin.c (add_new_plugin, parse_plugin_arg_opt,
register_callback, try_init_one_plugin): Start diagnostics with
lowercase letters.
* reload1.c (spill_failure): Use %' in diagnostic.
(gen_reload): Start diagnostic with a lowercase letter.
* stor-layout.c (place_field): Start diagnostic with a lowercase
letter.
* toplev.c (open_auxiliary_file): Use %' in diagnostic.
* tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
Start diagnostics with lowercase letters, remove trailing '.' and
use %' in diagnostics.
* tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
(verify_ssa): Don't split diagnostic across two error calls.
Spell out "number" and use %' in diagnostic.
* value-prof.c (visit_hist, check_counter): Start diagnostics with
lowercase letters.
c-family:
* c-common.c (handle_mode_attribute): Use %' and word "signedness"
in diagnostic.
* c-opts.c (c_common_parse_file): Start diagnostics with lowercase
letter.
* c-pragma.c (handle_pragma_target, handle_pragma_optimize):
Remove trailing '.' from diagnostics.
* c.opt (Wwrite-strings_: Avoid '`' in help text.
cp:
* cvt.c (cp_convert_to_pointer): Use %' in diagnostic.
* decl.c (layout_var_decl, maybe_commonize_var, grokdeclarator):
Use %' in diagnostics.
* decl2.c (check_classfn): Use %' in diagnostic.
* init.c (build_java_class_ref): Use %' in diagnostic.
(build_delete): Remove trailing '.' from diagnostic.
* method.c (do_build_copy_assign, walk_field_subobs): Use %' in
diagnostics.
* name-lookup.c (pushdecl_maybe_friend): Use %' in diagnostic.
* parser.c (cp_parser_exception_specification_opt): Remove
trailing '.' from diagnostic.
(cp_parser_objc_interstitial_code): Use %qs for quoting in
diagnostic.
* pt.c (check_valid_ptrmem_cst_expr): Use %< and %> for quoting in
diagnostic.
* repo.c (reopen_repo_file_for_write): Use %' in diagnostic.
fortran:
* trans-array.c (gfc_trans_deferred_array): Use "front-end"
spelling in diagnostic.
* trans.c (gfc_allocate_array_with_status): Add missing space in
diagnostic.
java:
* expr.c (expand_java_field_op): Use %' in diagnostic.
* jcf-parse.c (java_parse_file): Use %' in diagnostics.
* jvspec.c (lang_specific_driver): Use %' in diagnostic.
* lang.c (java_post_options): Use %' in diagnostics.
lto:
* lto.c (lto_resolution_read): Start diagnostics with lowercase
letters and remove trailing '.'.
(lto_file_finalize): Start diagnostic with a lowercase letter.
objc:
* objc-act.c (objc_init): Use %' in diagnostic.
(objc_set_method_opt): Remove trailing '.' from diagnostic.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166570 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
only_called_at_startup and only_called_at_exit.
(cgraph_propagate_frequency): Compute only_called_at_startup and
only_called_at_exit.
* cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
only_called_at_exit.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
flags.
* predict.c (compute_function_frequency): Initialize the new flags.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165560 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2010-10-03 Andi Kleen <ak@linux.intel.com>
* lto-cgraph.c (input_cgraph): Check for missing sections.
gcc/lto/
2010-10-03 Andi Kleen <ak@linux.intel.com>
* lto.c (lto_file_finalize): Replace gcc_assert for missing section
with fatal_error.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164916 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(lto_symtab_resolve_symbols): Set it.
(lto_symtab_merge_decls_1): Do not compute used_from_object_file;
store resolution field in cgraph/varpool.
* cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
(cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
(cgraph_dump_node): Drop used_from_object_file.
(cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
(cgraph_function_body_availability): Use decl_replaceable_p.
(cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
(cgraph_can_remove_if_no_direct_calls_and_refs): Use
cgraph_used_from_object_file_p.
(cgraph_will_be_removed_from_program_if_no_direct_calls): Use
cgraph_used_from_object_file_p.
(resolution_used_from_other_file_p): New functoin.
(cgraph_used_from_object_file_p): New predicate.
* cgraph.h: Include plugin-api.h
(struct cgraph_local_info): Remove used_from_object_file.
(struct cgraph_node): Add resolution field.
(struct varpool_node): Likewise; remove used_from_object_file;
reove const_value_known.
(cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
(resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
varpool_used_from_object_file_p): Declare.
(varpool_get_node, varpool_extra_name_alias): Update prototype.
* tree.h (DECL_REPLACEABLE_P): Remove.
(decl_replaceable_p, decl_binds_to_current_def_p): Declare.
* final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
input_overwrite_node, input_node, input_varpool_node): Stream
resolution.
* expr.c (expand_expr_real_1): Use const_value_known_p
* ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
const_value_known.
(cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
(function_and_variable_visibility): Set resolution for local vars
and functions.
use varpool_used_from_object_file_p.
* varasm.c (resolution_to_local_definition_p, resolution_local_p): New
static functions.
(default_binds_local_p_1): Use resolutoin info.
(decl_binds_to_current_def_p, decl_replaceable_p): New functions.
* varpool.c (varpool_get_node): Constify.
(const_value_known_p): Do not use vnode->const_value_known;
use decl_replaceable_p.
(varpool_finalize_decl): Do not set const_value_known.
(cgraph_variable_initializer_availability): Use decl_replaceable_p
(varpool_extra_name_alias): Return new node.
(varpool_used_from_object_file_p): New function.
* decl.c (finish_function): Use decl_replaceable_p
* method.c (make_alias_for_thunk): Update call of cgraph_same_body_alias.
* lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164610 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cgraph.h (const_value_known_p): Declare.
(varpool_decide_const_value_known): Remove.
* tree-ssa-ccp.c (get_base_constructor): Use it.
* lto-cgraph.c (compute_ltrans_boundary): Likewise.
* expr.c (string_constant): Likewise.
* tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
* ipa.c (ipa_discover_readonly_nonaddressable_var,
function_and_variable_visibility): Likewise.
* gimplify.c (gimplify_call_expr): Likewise.
* gimple-fold.c (get_symbol_constant_value): Likewise.
* varpool.c (varpool_decide_const_value_known): Replace by...
(const_value_known_p): ... this one; handle other kinds of DECLs
too and work for automatic vars.
(varpool_finalize_decl): Use const_value_known_p.
* lto.c (lto_promote_cross_file_statics): Use const_value_known_p.
* g++.dg/tree-ssa/pr45605.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164438 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
processing same node twice.
* gcc.c-torture/compile/pr44246.c:New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164425 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* lto.c (lto_promote_cross_file_statics): Use const_value_known.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164366 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
processing clone.
* lto.c (lto_materialize_function): Do not tamper with STATIC and
EXTERNAL flags.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164354 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* g++.dg/lto/pr45679-1_1.C: New file.
* g++.dg/lto/pr45679-0_0.C: New file.
* g++.dg/lto/pr45679-0_1.C: New file.
* lto-cgraph.c (lto_output_node): Fix handling of clones.
* ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
unreachable clones with reachable clones.
* tree-inline.c (copy_bb): Fix sanity checking when producing
unreachable clone.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164344 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
* lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
on functions/variables in other partition.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163811 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(varpool_decide_const_value_known): Declare.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
* lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
(input_varpool_node): Restore const_value_known.
* tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
initializer folding.
* ipa.c (ipa_discover_readonly_nonaddressable_var,
function_and_variable_visibility): Compute const_value_known.
* gimple-fold.c (get_symbol_constant_value): Use varpool for initializer
folding.
* varpool.c (varpool_decide_const_value_known): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163808 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* lto-streamer-out.c (lto_output): Likewise.
* passes.c (ipa_write_optimization_summaries): Initialize statement uids.
* lto.c (lto_1_to_1_map): Be prepared for node to have no file data.
(lto_wpa_write_files): Update comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163438 138bc75d-0d04-0410-961f-82ee72b054a4
|