https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104203
--- Comment #9 from Martin Sebor <msebor at gcc dot gnu.org> --- The underlying problem is that when the pointer_query class fails to determine the pointer provenance for an SSA variable it doesn't update the cache, matter how laborious the computation was. The next time the same SSA variable is seen, the query goes through the same computation only to eventually fail again. Caching a permissive result instead of failing short-circuits this process and avoids the bottleneck.