forked from OSchip/llvm-project
[docs] Coverage: Explain how to avoid static initializers
llvm-svn: 272067
This commit is contained in:
parent
f62faf6c48
commit
b06294da84
|
@ -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
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue