[PATCH] D109294: [Inline] Remove dead users before checking if function has one use (PR51667)

Mircea Trofin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 7 09:50:29 PDT 2021


mtrofin added inline comments.


================
Comment at: llvm/lib/Analysis/InlineCost.cpp:1862
 
+  F.removeDeadConstantUsers();
   bool OnlyOneCallAndLocalLinkage =
----------------
nikic wrote:
> aeubanks wrote:
> > mtrofin wrote:
> > > From a separation of concerns perspective, I think this should rather happen after a successful inline, rather than when computing cost.
> > +1, an analysis shouldn't be changing the IR
> This already happens after a successful inline. The problem is that we also need it to happen before the hasOneUse() check below. The operation could be move to the point where the cost model is queried though.
Hmm... IIUC, right now, after the first time a callee is inlined, removeDeadConstantUsers() is called, and next time its cost is computed it'll be accurate. The problem is the first time, correct? Does this feel like a normalization pass is missing, i.e. before inlining, we go over all functions in a module and removeDeadConstantUsers()?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109294/new/

https://reviews.llvm.org/D109294



More information about the llvm-commits mailing list