We can and should remove deleted nodes from their respective SCCs. We
did not do this before and this was a potential problem even though I
couldn't locally trigger an issue. Since the DeleteNode would assert
if the node was not in the SCC, we know we only remove nodes from their
SCC and only once (when run on all the Attributor tests).
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
LGTM
llvm/lib/Transforms/Utils/CallGraphUpdater.cpp | ||
---|---|---|
115 | I realize that this probably doesn't matter, but I wonder if the code would be clearer here if you wrote: if (CG && ...) because you've dereferencing CG here and use of CGSCC is guarded below by GC (instead of directly by checking CGSCC). Keeping the guarding conditions the same should make the code more readable by eliminating potential questions about why they're different. |
llvm/lib/Analysis/CallGraphSCCPass.cpp | ||
---|---|---|
566 | clang-format prefers /*New=*/nullptr |
clang-format prefers /*New=*/nullptr