summaryrefslogtreecommitdiff
path: root/lib/profile/InstrProfilingRuntime.cpp
diff options
context:
space:
mode:
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 000000000000..679186ef8309
--- /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;
+
+}