[PATCH] D103988: SampleFDO] place the discriminator flag variable into the used list.

Rong Xu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 9 13:02:27 PDT 2021


xur created this revision.
xur added reviewers: wmi, hoy, wenlei.
Herald added a subscriber: hiraditya.
xur requested review of this revision.
Herald added a project: LLVM.

We create flag variable "__llvm_fs_discriminator__" in the binary
to indicate that FSAFDO hierarchical discriminators are used.

This variable might be GC'ed by the linker since it is not explicitly
reference. I initially added the var to the use list in pass
MIRFSDiscriminator but it did not work. It turned out the used global
list is collected in lowering (before MIR pass) and then emitted in
the end of pass pipeline.

Here I add the variable to the use list in IR level's AddDiscriminators
pass. The machine level code is still keep in the case IR's
AddDiscriminators is not invoked. If this is the case, this just use
-Wl,--export-dynamic-symbol=__llvm_fs_discriminator__
to force the emit.


https://reviews.llvm.org/D103988

Files:
  llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseUtil.h
  llvm/lib/CodeGen/MIRFSDiscriminator.cpp
  llvm/lib/Transforms/Utils/AddDiscriminators.cpp
  llvm/lib/Transforms/Utils/SampleProfileLoaderBaseUtil.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103988.350983.patch
Type: text/x-patch
Size: 4226 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210609/2f9b1e68/attachment.bin>


More information about the llvm-commits mailing list