[PATCH] D109860: profi - a flow-based profile inference algorithm: Part I (out of 3)

Sergey Pupyrev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 20 10:20:58 PDT 2021


spupyrev added a comment.

> 1. Is there a high level description of the 3 sub-patches and their relationship?

The split into 3 patches is pretty ad hoc; this is done just to simplify reviewing. In order to get good results, we really need all three pieces.
On a high level, the first part (D109860 <https://reviews.llvm.org/D109860>) implements a basic minimum-cost maximum flow algorithm and applies it to sampling-based profile. Two other diffs implement adjustments for the computed flow. 
The second part (D109903 <https://reviews.llvm.org/D109903>) makes the computed flow "connected" -- without it hot loops might be ignored by BFI.
The third part (D109980 <https://reviews.llvm.org/D109980>) applies a post-processing for "dangling" basic blocks (having no sample counts in the profile).

> 2. does it work without using pseudoprob? Is there a test case?

Yes, just added such a test.

> 3. the test case seems to disable new pm, why is that?

This is needed for `opt -analyze`. Otherwise I get the following exception: `Cannot specify -analyze under new pass manager, either specify '-enable-new-pm=0', or use the corresponding new pass manager pass, e.g. '-passes=print<scalar-evolution>'`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109860



More information about the llvm-commits mailing list