1f4341a5aSDimitry Andric //===- InstrProfilingRuntime.cpp - PGO runtime initialization -------------===//
2f4341a5aSDimitry Andric //
3f4341a5aSDimitry Andric //                     The LLVM Compiler Infrastructure
4f4341a5aSDimitry Andric //
5f4341a5aSDimitry Andric // This file is distributed under the University of Illinois Open Source
6f4341a5aSDimitry Andric // License. See LICENSE.TXT for details.
7f4341a5aSDimitry Andric //
8f4341a5aSDimitry Andric //===----------------------------------------------------------------------===//
9f4341a5aSDimitry Andric 
10f4341a5aSDimitry Andric extern "C" {
11f4341a5aSDimitry Andric 
12f4341a5aSDimitry Andric #include "InstrProfiling.h"
13f4341a5aSDimitry Andric 
14*f00b4812SDimitry Andric /* int __llvm_profile_runtime  */
15*f00b4812SDimitry Andric COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR;
16f4341a5aSDimitry Andric }
17f4341a5aSDimitry Andric 
18f4341a5aSDimitry Andric namespace {
19f4341a5aSDimitry Andric 
20f4341a5aSDimitry Andric class RegisterRuntime {
21f4341a5aSDimitry Andric public:
RegisterRuntime()22f4341a5aSDimitry Andric   RegisterRuntime() {
23f4341a5aSDimitry Andric     __llvm_profile_register_write_file_atexit();
24f4341a5aSDimitry Andric     __llvm_profile_initialize_file();
25f4341a5aSDimitry Andric   }
26f4341a5aSDimitry Andric };
27f4341a5aSDimitry Andric 
28f4341a5aSDimitry Andric RegisterRuntime Registration;
29f4341a5aSDimitry Andric 
30f4341a5aSDimitry Andric }
31