[PATCH] D29854: WholeProgramDevirt: Implement importing for uniform ret val opt.

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 8 16:22:33 PST 2017


tejohnson added inline comments.


================
Comment at: llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp:1078
+    auto &ResByArg = I->second;
+    // FIXME: We should figure out what to do about the "function name" argument
+    // to the apply* functions, as the function names are unavailable during the
----------------
pcc wrote:
> tejohnson wrote:
> > The function name should be available for each CallSite in each VirtualCallSite on the CSInfo.CallSites. But would the call sites be from more than one function?
> These are not the names of the functions containing the call sites but rather the names of the virtual functions being called.
> 
> I think we'll probably want to somehow move these remarks into the exporting phase as well.
Actually, looking at the code I don't understand why we wouldn't be emitting a remark during the exporting phase. DevirtModule::tryUniformRetValOpt will set WasDevirt to true for each Target. That in turn is invoked from tryVirtualConstProp in run() in the part executed on the Export & regular LTO paths, which should cause the function to be added to DevirtTargets for which remarks are emitted.

What's the difference between the remarks emitted for this case in run(), and the ones issued from within applyUniformRetValOpt?


https://reviews.llvm.org/D29854





More information about the llvm-commits mailing list