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