[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