xref: /freebsd/contrib/llvm-project/compiler-rt/lib/profile/InstrProfilingRuntime.cpp (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
1 //===- InstrProfilingRuntime.cpp - PGO runtime initialization -------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 extern "C" {
10 
11 #include "InstrProfiling.h"
12 
RegisterRuntime()13 static int RegisterRuntime() {
14   __llvm_profile_initialize();
15 #ifdef _AIX
16   extern COMPILER_RT_VISIBILITY void *__llvm_profile_keep[];
17   (void)*(void *volatile *)__llvm_profile_keep;
18 #endif
19   return 0;
20 }
21 
22 /* int __llvm_profile_runtime  */
23 COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR = RegisterRuntime();
24 }
25