diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-03-20 19:23:53 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-03-20 19:23:53 +0000 |
commit | 775c178a90d8859a5da939d738fad248fde6edcd (patch) | |
tree | d17e6c76c1c82ebde6a55a4d38537ebd90f279c7 /llvm/lib/Support/LockFileManager.cpp | |
parent | 5188e91cd4c7463029654119860e972541e8dd42 (diff) | |
download | llvm-775c178a90d8859a5da939d738fad248fde6edcd.zip llvm-775c178a90d8859a5da939d738fad248fde6edcd.tar.gz llvm-775c178a90d8859a5da939d738fad248fde6edcd.tar.bz2 |
PGO: Add explicit static initialization
Instead of relying on explicit static initialization from translation
units, create a new file, InstrProfilingRuntime.cc, with an
__llvm_pgo_runtime variable. After this commit (and its pair in clang),
the driver will create a use of this variable. Unless the user defines
their own version, the new object file will get pulled in, including
that C++ static initialization that calls
__llvm_pgo_register_write_atexit.
The result is that, at least on Darwin, static initialization typically
consists of a single function call, which registers a writeout functino
atexit. Furthermore, users can skip even this behaviour by defining
their own __llvm_pgo_runtime.
<rdar://problem/15943240>
llvm-svn: 204380
Diffstat (limited to 'llvm/lib/Support/LockFileManager.cpp')
0 files changed, 0 insertions, 0 deletions