aboutsummaryrefslogtreecommitdiff
path: root/src/rustllvm
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2011-05-10 16:10:08 -0700
committerGraydon Hoare <[email protected]>2011-05-10 16:10:08 -0700
commitd6f1fcff6b056f1f0eb54989bbd2a68bf255ff22 (patch)
tree71317080577dd8cac3cb0e0ce48e58960a9d1e96 /src/rustllvm
parentstdlib: Remove Str.unsafe_from_mutable_bytes(). rustc now self-hosts 18 secon... (diff)
downloadrust-d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22.tar.xz
rust-d6f1fcff6b056f1f0eb54989bbd2a68bf255ff22.zip
Add --time-llvm-passes.
Diffstat (limited to 'src/rustllvm')
-rw-r--r--src/rustllvm/RustWrapper.cpp12
-rw-r--r--src/rustllvm/rustllvm.def.in2
2 files changed, 14 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index b5769519..2a3d8aeb 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);
+}
diff --git a/src/rustllvm/rustllvm.def.in b/src/rustllvm/rustllvm.def.in
index 2da66c24..212c5be1 100644
--- a/src/rustllvm/rustllvm.def.in
+++ b/src/rustllvm/rustllvm.def.in
@@ -1,9 +1,11 @@
LLVMRustCreateMemoryBufferWithContentsOfFile
+LLVMRustEnableTimePasses
LLVMRustWriteOutputFile
LLVMRustGetLastError
LLVMRustGetHostTriple
LLVMRustConstSmallInt
LLVMRustParseBitcode
+LLVMRustPrintPassTimings
LLVMLinkModules
LLVMCreateObjectFile
LLVMDisposeObjectFile