https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89306
Bug ID: 89306 Summary: [8/9 regression] Hash based IPA summaries are too slow and consume up to 80% of IPA optimization time. Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: hubicka at gcc dot gnu.org CC: marxin at gcc dot gnu.org Target Milestone: --- IPA summaries was switches to new nice C++ API but while doing so the original array based scheme was replaced by hash tables. This is too slow for those summaries which are dense (i.e. defined for almost all functions or variables with a definition) and intensively used. These are: ipa-inline-analysis.c:call_summary<edge_growth_cache_entry *> *edge_growth_cache = NULL; ipa-fnsummary.c:call_summary <ipa_call_summary *> *ipa_call_summaries; ipa-fnsummary.c:function_summary <ipa_fn_summary *> *ipa_fn_summaries; ipa-pure-const.c:class funct_state_summary_t: public function_summary <funct_state_d *> ipa-pure-const.c: function_summary <funct_state_d *> (symtab) {} ipa-reference.c: function_summary <ipa_reference_vars_info_d *> (symtab) {} This one may not get too dense in all cases and at ltrans it is populated for non-definitions, but needs to be fast for alias oracle walks: ipa-reference.c: function_summary <ipa_reference_optimization_summary_d *> (symtab) {}