Mesa (master): gallivm: improve dumping of bitcode
Roland Scheidegger
sroland at kemper.freedesktop.org
Wed May 11 02:46:11 UTC 2016
Module: Mesa
Branch: master
Commit: 430797843a4e9b3bc69562c4ef18dd2ddda39990
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=430797843a4e9b3bc69562c4ef18dd2ddda39990
Author: Roland Scheidegger <sroland at vmware.com>
Date: Wed May 11 04:42:51 2016 +0200
gallivm: improve dumping of bitcode
Use GALLIVM_DEBUG=dumpbc for dumping of modules as bitcode.
Instead of a fixed llvmpipe.bc name, use ir_<modulename>.bc so multiple
modules can be dumped (albeit it might still overwrite previous modules,
particularly the modules from draw tend to always have the same name).
Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
---
src/gallium/auxiliary/gallivm/lp_bld_debug.h | 1 +
src/gallium/auxiliary/gallivm/lp_bld_init.c | 12 ++++++++----
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_debug.h b/src/gallium/auxiliary/gallivm/lp_bld_debug.h
index efb7495..f96a1af 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_debug.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_debug.h
@@ -45,6 +45,7 @@
#define GALLIVM_DEBUG_NO_RHO_APPROX (1 << 6)
#define GALLIVM_DEBUG_NO_QUAD_LOD (1 << 7)
#define GALLIVM_DEBUG_GC (1 << 8)
+#define GALLIVM_DEBUG_DUMP_BC (1 << 9)
#ifdef __cplusplus
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
index 687c01f..cf21ab0 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -66,6 +66,7 @@ static const struct debug_named_value lp_bld_debug_flags[] = {
{ "no_rho_approx", GALLIVM_DEBUG_NO_RHO_APPROX, NULL },
{ "no_quad_lod", GALLIVM_DEBUG_NO_QUAD_LOD, NULL },
{ "gc", GALLIVM_DEBUG_GC, NULL },
+ { "dumpbc", GALLIVM_DEBUG_DUMP_BC, NULL },
DEBUG_NAMED_VALUE_END
};
@@ -592,10 +593,13 @@ gallivm_compile_module(struct gallivm_state *gallivm)
}
/* Dump byte code to a file */
- if (0) {
- LLVMWriteBitcodeToFile(gallivm->module, "llvmpipe.bc");
- debug_printf("llvmpipe.bc written\n");
- debug_printf("Invoke as \"llc -o - llvmpipe.bc\"\n");
+ if (gallivm_debug & GALLIVM_DEBUG_DUMP_BC) {
+ char filename[256];
+ assert(gallivm->module_name);
+ util_snprintf(filename, sizeof(filename), "ir_%s.bc", gallivm->module_name);
+ LLVMWriteBitcodeToFile(gallivm->module, filename);
+ debug_printf("%s written\n", filename);
+ debug_printf("Invoke as \"llc -o - %s\"\n", filename);
}
if (USE_MCJIT) {
More information about the mesa-commit
mailing list