[PATCH] D129003: [WPD] Filter out intrinsics inserted from whole-program-vtables

David Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 6 09:36:11 PDT 2022


davidxl added a comment.

In D129003#3625953 <https://reviews.llvm.org/D129003#3625953>, @nikic wrote:

> This should be split into a patch for CallSiteSplitting and one for Loads. For CallSiteSplitting, you'll probably want to implement ephemeral value handling along the lines of https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Utils/SimplifyCFG.cpp#L2941. For Loads, we'd want something along the lines of D101553 <https://reviews.llvm.org/D101553>.

You may want to spell out the interface changes you think is right more clearly :)



================
Comment at: llvm/lib/Analysis/Loads.cpp:619
                                       ScanBB->rend())) {
-    if (Inst.isDebugOrPseudoInst())
+    if (Inst.isDebugOrPseudoInst() || Inst.isWholeProgramVTIntrinsic())
       continue;
----------------
aeubanks wrote:
> davidxl wrote:
> > Add a wrapper interface 'isNopInst()' instead?
> > 
> > These instructions should not be counted in inline size estimation either.
> the assume and type test should be already handled in `CallAnalyzer::analyzeBlock` by being ephemeral values (analyzed by AssumptionCache/`CodeMetrics::collectEphemeralValues`), but it'd be good to double check
It is probably better to unify the interface that does this though (an old comment -- forgot to  click the submit button).


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

https://reviews.llvm.org/D129003



More information about the llvm-commits mailing list