https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109143

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Last reconfirmed|                            |2023-03-15

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Created attachment 54671
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54671&action=edit
unincluded preprocessed source

Here's the testcase unincluded, it can at least build with GCC 12 and 13.

The main issue is the ESCAPED set leaking into many sets, but not directly
but rather sets getting bigger and eventually also get ESCAPED but common
members are not pruned, so ESCAPED isn't optimally used as representative
for its contents.

GCC 12.2.1 shows

 tree PTA                           : 227.39 ( 93%)   0.40 ( 23%) 227.78 ( 92%)
 7617k (  1%)
 TOTAL                              : 245.51          1.72        247.33       
 1128M

while recent trunk is improved to around 70s for tree PTA.  Forcefully
pruning ESCAPED bits from sets containing ESCAPED gets it down to 3s.

Reply via email to