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.