]> git.lizzy.rs Git - rust.git/blobdiff - src/rustllvm/PassWrapper.cpp
Rollup merge of #69055 - GuillaumeGomez:clean-up-e0307, r=Dylan-DPC
[rust.git] / src / rustllvm / PassWrapper.cpp
index fad703698075d299b4b3d8187ec7033ecd0e2733..4ac7e0e6e1fc08828d8bccd639e8aa65deeaa7ee 100644 (file)
@@ -26,6 +26,7 @@
 #include "llvm/Transforms/Instrumentation.h"
 #if LLVM_VERSION_GE(9, 0)
 #include "llvm/Transforms/Instrumentation/AddressSanitizer.h"
+#include "llvm/Support/TimeProfiler.h"
 #endif
 #if LLVM_VERSION_GE(8, 0)
 #include "llvm/Transforms/Instrumentation/ThreadSanitizer.h"
@@ -57,6 +58,23 @@ extern "C" void LLVMInitializePasses() {
   initializeTarget(Registry);
 }
 
+extern "C" void LLVMTimeTraceProfilerInitialize() {
+#if LLVM_VERSION_GE(9, 0)
+  timeTraceProfilerInitialize();
+#endif
+}
+
+extern "C" void LLVMTimeTraceProfilerFinish(const char* FileName) {
+#if LLVM_VERSION_GE(9, 0)
+  StringRef FN(FileName);
+  std::error_code EC;
+  raw_fd_ostream OS(FN, EC, sys::fs::CD_CreateAlways);
+
+  timeTraceProfilerWrite(OS);
+  timeTraceProfilerCleanup();
+#endif
+}
+
 enum class LLVMRustPassKind {
   Other,
   Function,