https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109983
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 55213 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55213&action=edit prototype patch Trying to fix that (again - I usually break correctness here :/) this would result in ipa points-to : 170.66 ( 99%) 0.28 ( 28%) 170.95 ( 98%) 1428k ( 1%) TOTAL : 173.10 0.99 174.12 253M so still slow but a lot faster. What the patch definitely misses is handling the graph node merging cases, properly merging new_edges[] for the merged nodes. Note it's also trading memory locality against the possibility of needing more solver iterations (it probably pays off for large working sets but might hurt small ones).