Hi. Following patch series finishes transition of IPA summary info that is assigned either to cgraph_node or to cgraph_edge. Instead of using a vector indexed with uid, we use summaries that are internally implemented as hash_map.
Doing the transition we can remove summary_uid and uid property finally happens unique identifier. There are still places where ::get_create can be replaced with ::get, but I made consensus with Honza that it can be done incrementally. The series can bootstrap and survives regression tests on ppc64le-linux-gnu and can build Libreoffice with LTO on x86_64-linux-gnu. Martin marxin (14): Code refactoring of symtab_summary. Code refactoring for call_summary. Rename get methods in symbol-summary.h to get_create. Add {symbol,call}_summary::get method and use it in HSA. Use summaries->get where possible. Small refactoring of multiple calls. Use symtab_summary in ipa-reference.c. Covert ipa-pure-const.c to symbol_summary. Convert IPA CP to symbol_summary. Remove cgraph_node::summary_uid and make cgraph_node::uid really unique. Add call_summary::get method and m_initialize_when_cloning. Port IPA CP to edge_clone_summaries. Port edge_growth_cache to call_summary. Make cgraph_edge::uid really unique. Come up with cgraph_node::get_uid and make cgraph_node::uid private. gcc/cgraph.c | 16 +- gcc/cgraph.h | 47 +++-- gcc/config/i386/i386.c | 2 +- gcc/hsa-common.c | 6 +- gcc/hsa-common.h | 12 +- gcc/hsa-gen.c | 12 +- gcc/ipa-cp.c | 116 ++++++------ gcc/ipa-fnsummary.c | 116 ++++++------ gcc/ipa-hsa.c | 14 +- gcc/ipa-icf.c | 2 +- gcc/ipa-inline-analysis.c | 76 +++----- gcc/ipa-inline-transform.c | 12 +- gcc/ipa-inline.c | 99 ++++++----- gcc/ipa-inline.h | 51 +++--- gcc/ipa-profile.c | 2 +- gcc/ipa-prop.c | 62 +++---- gcc/ipa-prop.h | 40 +++-- gcc/ipa-pure-const.c | 199 ++++++++------------- gcc/ipa-reference.c | 205 ++++++++++----------- gcc/ipa-split.c | 2 +- gcc/ipa-utils.c | 4 +- gcc/lto-cgraph.c | 2 +- gcc/lto/lto-partition.c | 32 ++-- gcc/passes.c | 39 ++-- gcc/symbol-summary.h | 431 ++++++++++++++++++++++++++++----------------- gcc/tree-pretty-print.c | 2 +- gcc/tree-sra.c | 4 +- 27 files changed, 810 insertions(+), 795 deletions(-) -- 2.16.3