From b74d8dc4cf11da599b5c18d77a5039bc800d6871 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 30 Nov 2019 17:56:45 +0100 Subject: cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline. * cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline. * cgraph.h (cgraph_node): Add unit_id and merged_extern_inline. (symbol_table): Add max_unit. (symbol_table::symbol_table): Initialize it. * cgraphclones.c (duplicate_thunk_for_node): Copy unit_id. merged_comdat, merged_extern_inline. (cgraph_node::create_clone): Likewise. (cgraph_node::create_version_clone): Likewise. * ipa-fnsummary.c (dump_ipa_call_summary): Dump info about cross module calls. * ipa-fnsummary.h (cross_module_call_p): New inline function. * ipa-inline-analyssi.c (simple_edge_hints): Use it. * ipa-inline.c (inline_small_functions): Likewise. * lto-symtab.c (lto_cgraph_replace_node): Record merged_extern_inline; copy merged_comdat and merged_extern_inline. * lto-cgraph.c (lto_output_node): Stream out merged_comdat, merged_extern_inline and unit_id. (input_overwrite_node): Stream in these. (input_cgraph_1): Set unit_base. * lto-streamer.h (lto_file_decl_data): Add unit_base. * symtab.c (symtab_node::make_decl_local): Record former_comdat. * g++.dg/lto/inline-crossmodule-1.h: New testcase. * g++.dg/lto/inline-crossmodule-1_0.C: New testcase. * g++.dg/lto/inline-crossmodule-1_1.C: New testcase. From-SVN: r278876 --- gcc/cgraph.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gcc/cgraph.h') diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 0d2442c997c..2aedaaedd61 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -1433,6 +1433,8 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node int count_materialization_scale; /* ID assigned by the profiling. */ unsigned int profile_id; + /* ID of the translation unit. */ + int unit_id; /* Time profiler: first run of function. */ int tp_first_run; @@ -1469,6 +1471,8 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node unsigned nonfreeing_fn : 1; /* True if there was multiple COMDAT bodies merged by lto-symtab. */ unsigned merged_comdat : 1; + /* True if this def was merged with extern inlines. */ + unsigned merged_extern_inline : 1; /* True if function was created to be executed in parallel. */ unsigned parallelized_function : 1; /* True if function is part split out by ipa-split. */ @@ -2090,7 +2094,7 @@ public: edges_count (0), edges_max_uid (1), edges_max_summary_id (0), cgraph_released_summary_ids (), edge_released_summary_ids (), nodes (NULL), asmnodes (NULL), asm_last_node (NULL), - order (0), global_info_ready (false), state (PARSING), + order (0), max_unit (0), global_info_ready (false), state (PARSING), function_flags_ready (false), cpp_implicit_aliases_done (false), section_hash (NULL), assembler_name_hash (NULL), init_priority_hash (NULL), dump_file (NULL), ipa_clones_dump_file (NULL), cloned_nodes (), @@ -2355,6 +2359,9 @@ public: them, to support -fno-toplevel-reorder. */ int order; + /* Maximal unit ID used. */ + int max_unit; + /* Set when whole unit has been analyzed so we can access global info. */ bool global_info_ready; /* What state callgraph is in right now. */ -- cgit v1.2.3