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) {}

Reply via email to