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

Reply via email to