[PATCH] D145688: [StructurizeCFG] Use UniformityAnalysis instead of DivergenceAnalysis
Jay Foad via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 10 02:06:24 PST 2023
foad accepted this revision.
foad added inline comments.
================
Comment at: llvm/lib/Transforms/Scalar/StructurizeCFG.cpp:802
- if (DA)
- DA->removeValue(Term);
Term->eraseFromParent();
----------------
sameerds wrote:
> Pierre-vh wrote:
> > foad wrote:
> > > Does UA need something like removeValue? I see it was added by @nhaehnle in D43743 "to avoid dangling pointers as a matter of defensive programming".
> > I'm not too familiar with UA's implementation so I can't answer this, @sameerds does UA need anything like this?
> Yeah, given the defensive nature of the comment, I thought we should put this in UA. But turns out that we don't really need to, because UA does not store pointers to terminator instructions. The side-effect of the structurizer is to delete and recreate terminators, but in the UA, a query on a terminator is actually done by looking up its parent basic block.
>
> Also noteable is that only LegacyDA implemented this "remove" API. Although legacy DA acts as a wrapper to the newer DA, this particular function was never implemented in the latter.
>
> In short, I think we don't need to implement this in UA.
Sounds good, thanks for explaining!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D145688/new/
https://reviews.llvm.org/D145688
More information about the llvm-commits
mailing list