<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 21, 2015 at 5:25 PM, Eric Anholt <span dir="ltr"><<a href="mailto:eric@anholt.net" target="_blank">eric@anholt.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It's nice to have this present in your default cases so you can see what<br>
instruction is triggering an abort.<br>
---<br>
 src/glsl/nir/nir.h       |  1 +<br>
 src/glsl/nir/nir_print.c | 14 ++++++++++++--<br>
 2 files changed, 13 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h<br>
index 7b5794d..761f20a 100644<br>
--- a/src/glsl/nir/nir.h<br>
+++ b/src/glsl/nir/nir.h<br>
@@ -1480,6 +1480,7 @@ void nir_index_ssa_defs(nir_function_impl *impl);<br>
 void nir_index_blocks(nir_function_impl *impl);<br>
<br>
 void nir_print_shader(nir_shader *shader, FILE *fp);<br>
+void nir_print_instr(nir_instr *instr, FILE *fp);<br>
<br>
 #ifdef DEBUG<br>
 void nir_validate_shader(nir_shader *shader);<br>
diff --git a/src/glsl/nir/nir_print.c b/src/glsl/nir/nir_print.c<br>
index 1a50ae9..924989a 100644<br>
--- a/src/glsl/nir/nir_print.c<br>
+++ b/src/glsl/nir/nir_print.c<br>
@@ -611,8 +611,6 @@ print_instr(nir_instr *instr, print_var_state *state, unsigned tabs, FILE *fp)<br>
       unreachable("Invalid instruction type");<br>
       break;<br>
    }<br>
-<br>
-   fprintf(fp, "\n");<br>
 }<br>
<br>
 static int<br>
@@ -658,6 +656,7 @@ print_block(nir_block *block, print_var_state *state, unsigned tabs, FILE *fp)<br>
<br>
    nir_foreach_instr(block, instr) {<br>
       print_instr(instr, state, tabs, fp);<br>
+      fprintf(fp, "\n");<br>
    }<br>
<br>
    print_tabs(tabs, fp);<br>
@@ -871,3 +870,14 @@ nir_print_shader(nir_shader *shader, FILE *fp)<br>
<br>
    destroy_print_state(&state);<br>
 }<br>
+<br>
+void<br>
+nir_print_instr(nir_instr *instr, FILE *fp)<br>
+{<br>
+   print_var_state state;<br>
+   init_print_state(&state);<br>
+<br>
+   print_instr(instr, &state, 0, fp);<br></blockquote><div><br></div><div>This won't work with intrinsics because, while we've created the table of variable names, we haven't filled it out by printing the variables.  Maybe the thing to do would be to make print_var use the variable's nominal name if the print state is NULL and then just call print_instr(instr, NULL, 0, fp) here.<br><br></div><div>Otherwise, I really want this.<br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
+   destroy_print_state(&state);<br>
+}<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.1.3<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>