gallivm: print out time for jitting functions with GALLIVM_DEBUG=perf

Compilation to actual machine code can easily take as much time as the
optimization passes on the IR if not more, so print this out too.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
Roland Scheidegger 2016-10-14 05:37:34 +02:00
parent 6f2f0daeb4
commit d1b4a3451e

View file

@ -659,13 +659,24 @@ gallivm_jit_function(struct gallivm_state *gallivm,
{
void *code;
func_pointer jit_func;
int64_t time_begin = 0;
assert(gallivm->compiled);
assert(gallivm->engine);
if (gallivm_debug & GALLIVM_DEBUG_PERF)
time_begin = os_time_get();
code = LLVMGetPointerToGlobal(gallivm->engine, func);
assert(code);
jit_func = pointer_to_func(code);
if (gallivm_debug & GALLIVM_DEBUG_PERF) {
int64_t time_end = os_time_get();
int time_msec = (int)(time_end - time_begin) / 1000;
debug_printf(" jitting func %s took %d msec\n",
LLVMGetValueName(func), time_msec);
}
return jit_func;
}