about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorSimon Heath <icefox@dreamquest.io>2019-10-23 09:08:26 -0400
committerSimon Heath <icefox@dreamquest.io>2019-11-02 10:28:05 -0400
commit567962d22090bbd23c1c3dc0e04229ac8c681ea8 (patch)
treef4f03667408fd4c72f129f343eb616d0a6150cd5 /src/rustllvm/RustWrapper.cpp
parent8c7b921feb5b100b1825ad54d46a8cca575b35b3 (diff)
downloadrust-567962d22090bbd23c1c3dc0e04229ac8c681ea8.tar.gz
rust-567962d22090bbd23c1c3dc0e04229ac8c681ea8.zip
Add FFI bindings for Module::getInstructionCount()
Just to make it useable for profiling and such inside
rustc itself.  It was vaguely useful in
https://wiki.alopex.li/WhereRustcSpendsItsTime and I figured
I might as well upstream it; I may or may not ever get around
to doing more with it (hopefully I will), but it may be useful
for others.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 16d08ee534e..e6c45b8e362 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -87,6 +87,14 @@ extern "C" char *LLVMRustGetLastError(void) {
   return Ret;
 }
 
+extern "C" unsigned int LLVMRustGetInstructionCount(LLVMModuleRef M) {
+#if LLVM_VERSION_GE(7, 0)
+  return unwrap(M)->getInstructionCount();
+#else
+  report_fatal_error("Module::getInstructionCount not available before LLVM 7");
+#endif
+}
+
 extern "C" void LLVMRustSetLastError(const char *Err) {
   free((void *)LastError);
   LastError = strdup(Err);