[PATCH] D28331: Improve PGO support for the new inliner

Easwaran Raman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 19 14:58:19 PST 2017


eraman marked 4 inline comments as done.
eraman added a comment.

Thanks for the comments! Will update the diff in a bit.



================
Comment at: lib/Transforms/IPO/Inliner.cpp:769-773
+  auto GetBFILambda = [&](Function &F) -> BlockFrequencyInfo & {
+    return FAM.getResult<BlockFrequencyAnalysis>(F);
+  };
 
+  function_ref<BlockFrequencyInfo &(Function &)> GetBFI(GetBFILambda);
----------------
chandlerc wrote:
> I think you can name the lambda `GetBFI` and below pass it as `{GetBFI}` if `GetBFI` doesn't work. You shouldn't need to construct a variable for the function_ref.
{GetBFI} does the trick. Thanks.


================
Comment at: lib/Transforms/Utils/InlineFunction.cpp:2244-2246
+    // Copy original BB's block frequency to AfterCallBB
+    IFI.CallerBFI->setBlockFreq(
+        AfterCallBB, IFI.CallerBFI->getBlockFreq(OrigBB).getFrequency());
----------------
chandlerc wrote:
> The location of this makes it easy to completely miss...
> 
> I wonder, would it be better to just do this immediately when we create AfterCallBB even though we'll delete it in some cases?
I've moved it earlier as you prefer.


https://reviews.llvm.org/D28331





More information about the llvm-commits mailing list