[PATCH] D107249: [GlobalOpt] Don't replace alias with aliasee if either alias/aliasee may be preemptible
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 16 15:06:27 PDT 2022
aeubanks added a comment.
the module I'm looking at has a huge RefSCC (>20000 SCCs)
this change is somehow causing us to hit the case where we optimize the RefSCC, cause a function in one of the contained SCCs to now be in a child SCC (perhaps because a call/reference to it was eliminated in another function), bail out from the current RefSCC to go and optimize the new child RefSCC/SCC (since the pipeline is bottom-up), then revisit the original now slightly smaller RefSCC, and repeat
commenting out https://github.com/llvm/llvm-project/blob/74cf8575f74ab6b0d9641e0e3acf3e9328a5e365/llvm/lib/Analysis/CGSCCPassManager.cpp#L233 (and the corresponding assert below) fixes the issue, although I'm not sure that's the proper fix
I looked at the RefSCC visit order without this patch and it actually does something similar, but nowhere near as bad as with this patch. I still haven't figured out which pass is causing the call graph to move around, investigating that
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107249/new/
https://reviews.llvm.org/D107249
More information about the llvm-commits
mailing list