[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