[docs] Coverage: Explain how to avoid static initializers

llvm-svn: 272067
This commit is contained in:
Vedant Kumar 2016-06-07 22:25:29 +00:00
parent f62faf6c48
commit b06294da84
1 changed files with 16 additions and 0 deletions

View File

@ -185,6 +185,22 @@ Format compatibility guarantees
into instrumented binaries. Tools must retain **backwards** compatibility into instrumented binaries. Tools must retain **backwards** compatibility
with these formats. These formats are not forwards-compatible. with these formats. These formats are not forwards-compatible.
Using the profiling runtime without static initializers
=======================================================
By default the compiler runtime uses a static initializer to determine the
profile output path and to register a writer function. To collect profiles
without using static initializers, do this manually:
* Export a ``int __llvm_profile_runtime`` symbol. The linker won't pull in the
object file containing the profiling runtime's static initializer if this
symbol is defined.
* Call ``__llvm_profile_initialize_file`` once. This parses
``LLVM_PROFILE_FILE`` and sets the output path.
* Call ``__llvm_profile_write_file`` to write out a profile.
Drawbacks and limitations Drawbacks and limitations
========================= =========================