mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-20 10:55:14 +00:00
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.
This commit is contained in:
parent
8c7b921feb
commit
567962d220
@ -1729,6 +1729,7 @@ extern "C" {
|
||||
) -> LLVMRustResult;
|
||||
pub fn LLVMRustSetLLVMOptions(Argc: c_int, Argv: *const *const c_char);
|
||||
pub fn LLVMRustPrintPasses();
|
||||
pub fn LLVMRustGetInstructionCount(M: &Module) -> u32;
|
||||
pub fn LLVMRustSetNormalizedTarget(M: &Module, triple: *const c_char);
|
||||
pub fn LLVMRustAddAlwaysInlinePass(P: &PassManagerBuilder, AddLifetimes: bool);
|
||||
pub fn LLVMRustRunRestrictionPass(M: &Module, syms: *const *const c_char, len: size_t);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user