gallivm: Register the JIT engine with oprofile on debug/profile builds.
This commit is contained in:
parent
ef81779850
commit
55948247eb
|
@ -75,6 +75,10 @@ enum LLVM_CodeGenOpt_Level {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern void
|
||||||
|
lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
lp_build_init(void)
|
lp_build_init(void)
|
||||||
{
|
{
|
||||||
|
@ -109,6 +113,10 @@ lp_build_init(void)
|
||||||
LLVMDisposeMessage(error);
|
LLVMDisposeMessage(error);
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(DEBUG) || defined(PROFILE)
|
||||||
|
lp_register_oprofile_jit_event_listener(lp_build_engine);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!lp_build_target)
|
if (!lp_build_target)
|
||||||
|
|
|
@ -34,7 +34,10 @@
|
||||||
#define __STDC_CONSTANT_MACROS
|
#define __STDC_CONSTANT_MACROS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include <llvm-c/Core.h>
|
||||||
|
#include <llvm-c/ExecutionEngine.h>
|
||||||
|
#include <llvm/ExecutionEngine/ExecutionEngine.h>
|
||||||
|
#include <llvm/ExecutionEngine/JITEventListener.h>
|
||||||
|
|
||||||
#include "pipe/p_config.h"
|
#include "pipe/p_config.h"
|
||||||
#include "util/u_debug.h"
|
#include "util/u_debug.h"
|
||||||
|
@ -98,3 +101,21 @@ lp_debug_dump_value(LLVMValueRef value)
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the engine with oprofile.
|
||||||
|
*
|
||||||
|
* This allows to see the LLVM IR function names in oprofile output.
|
||||||
|
*
|
||||||
|
* To actually work LLVM needs to be built with the --with-oprofile configure
|
||||||
|
* option.
|
||||||
|
*
|
||||||
|
* Also a oprofile:oprofile user:group is necessary. Which is not created by
|
||||||
|
* default on some distributions.
|
||||||
|
*/
|
||||||
|
extern "C" void
|
||||||
|
lp_register_oprofile_jit_event_listener(LLVMExecutionEngineRef EE)
|
||||||
|
{
|
||||||
|
llvm::unwrap(EE)->RegisterJITEventListener(llvm::createOProfileJITEventListener());
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue