On 09/05/16 18:50, [email protected] wrote:
From: Roland Scheidegger <[email protected]>
Those aren't really interesting, however outputting them is helpful when
trying to feed the IR to llvm llc (or opt) for debugging.
---
src/gallium/auxiliary/gallivm/lp_bld_intr.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.c
b/src/gallium/auxiliary/gallivm/lp_bld_intr.c
index f806503..0a8f996 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_intr.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.c
@@ -51,6 +51,7 @@
#include "lp_bld_intr.h"
#include "lp_bld_type.h"
#include "lp_bld_pack.h"
+#include "lp_bld_debug.h"
void
@@ -146,6 +147,10 @@ lp_build_intrinsic(LLVMBuilderRef builder,
if (attr)
LLVMAddFunctionAttr(function, attr);
+
+ if (gallivm_debug & GALLIVM_DEBUG_IR) {
+ lp_debug_dump_value(function);
+ }
}
return LLVMBuildCall(builder, function, args, num_args, "");
Reviewed-by: Jose Fonseca <[email protected]>
It's not a bad idea to dump intrinsics and other functions.
But for the record, the most robust way of getting the whole IR (to pass
to llc/opt) is to dump it to file:
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c
b/src/gallium/auxiliary/gallivm/lp_bld_init.c
index 687c01f..6ca5bac 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
@@ -592,7 +592,7 @@ gallivm_compile_module(struct gallivm_state *gallivm)
}
/* Dump byte code to a file */
- if (0) {
+ if (1) {
LLVMWriteBitcodeToFile(gallivm->module, "llvmpipe.bc");
debug_printf("llvmpipe.bc written\n");
debug_printf("Invoke as \"llc -o - llvmpipe.bc\"\n");
But I agree it should be easier to do this (there should be an
GALLIVM_DEBUG option for this). Also this code was written when there
was a single module -- instead of llvmpipe.bc we should use something
derived from module name so each module go to its own file.
Jose
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev