about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2011-05-10 16:10:08 -0700
committerGraydon Hoare <graydon@mozilla.com>2011-05-10 16:10:08 -0700
commitd6f1fcff6b056f1f0eb54989bbd2a68bf255ff22 (patch)
tree71317080577dd8cac3cb0e0ce48e58960a9d1e96 /src/rustllvm/RustWrapper.cpp
parent813636d52e1d77785e4ec28c0fd5e5f513d2e020 (diff)
downloadrust-d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22.tar.gz
rust-d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22.zip
Add --time-llvm-passes.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index b57695199f9..2a3d8aeb79e 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -16,6 +16,8 @@
 #include "llvm/PassManager.h"
 #include "llvm/ADT/Triple.h"
 #include "llvm/Support/FormattedStream.h"
+#include "llvm/Support/Timer.h"
+#include "llvm/Support/raw_ostream.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Target/TargetSelect.h"
 #include "llvm/Target/TargetRegistry.h"
@@ -121,3 +123,13 @@ extern "C" LLVMValueRef LLVMRustConstSmallInt(LLVMTypeRef IntTy, unsigned N,
                                               LLVMBool SignExtend) {
   return LLVMConstInt(IntTy, (unsigned long long)N, SignExtend);
 }
+
+extern bool llvm::TimePassesIsEnabled;
+extern "C" void LLVMRustEnableTimePasses() {
+  TimePassesIsEnabled = true;
+}
+
+extern "C" void LLVMRustPrintPassTimings() {
+  raw_fd_ostream OS (2, false); // stderr.
+  TimerGroup::printAll(OS);
+}