summaryrefslogtreecommitdiff
path: root/lib/profile/InstrProfilingRuntime.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-10-23 17:52:22 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-10-23 17:52:22 +0000
commit3a1720af1d7f43edc5b214cde0be11bfb94d077e (patch)
tree029e0ff2d5e3c0eaf2405fd8e669555fdf5e1297 /lib/profile/InstrProfilingRuntime.cpp
parent8f3cadc28cb2bb9e8f9d69eeaaea1f57f2f7b2ab (diff)
Diffstat (limited to 'lib/profile/InstrProfilingRuntime.cpp')
-rw-r--r--lib/profile/InstrProfilingRuntime.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/profile/InstrProfilingRuntime.cpp b/lib/profile/InstrProfilingRuntime.cpp
new file mode 100644
index 0000000000000..679186ef83094
--- /dev/null
+++ b/lib/profile/InstrProfilingRuntime.cpp
@@ -0,0 +1,29 @@
+//===- InstrProfilingRuntime.cpp - PGO runtime initialization -------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+extern "C" {
+
+#include "InstrProfiling.h"
+
+/* int __llvm_profile_runtime */
+COMPILER_RT_VISIBILITY int INSTR_PROF_PROFILE_RUNTIME_VAR;
+}
+
+namespace {
+
+class RegisterRuntime {
+public:
+ RegisterRuntime() {
+ __llvm_profile_register_write_file_atexit();
+ __llvm_profile_initialize_file();
+ }
+};
+
+RegisterRuntime Registration;
+
+}