[PATCH] D109531: [CSSPGO] Enable pseudo probe instrumentation in O0 mode.

Wei Mi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 10 09:24:24 PDT 2021


wmi added a comment.

In D109531#2993484 <https://reviews.llvm.org/D109531#2993484>, @hoy wrote:

> In D109531#2993394 <https://reviews.llvm.org/D109531#2993394>, @wmi wrote:
>
>> In D109531#2992721 <https://reviews.llvm.org/D109531#2992721>, @hoy wrote:
>>
>>> In D109531#2992702 <https://reviews.llvm.org/D109531#2992702>, @wenlei wrote:
>>>
>>>> The change makes sense given instr PGO also happens for O0. But practically, if a file is being built with O0, do we care about its profile given we're not really optimizing it anyways? Functions from O0 modules are not supposed to be inlined into O1 <https://reviews.llvm.org/owners/package/1/>+ modules either.
>>>
>>> We probably don't care about performance for O0 build. The change is for consistency, also makes the compiler happy which otherwise will complain about "Pseudo-probe-based profile requires SampleProfileProbePass" for O0 modules that don't have probes.
>>
>> The complain message is emitted in SampleProfileLoader::doInitialization. llvm will not run SampleProfileLoader pass for O0 module. Why there is the complain?
>
> Good question. It could happen in lto postlink which by default optimizes in -O2 mode. More specifically, with the following command, both `cc1` and `lld` will run in default mode, which is -O0 for cc1 and -O2 for lld.
>
>   clang -flto 1.cpp -v -fuse-ld=lld

I see. It seems a problem only exposed in monolithic lto. Could you add some comment before the change in PassBuilder.cpp?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109531



More information about the llvm-commits mailing list