[Mesa-dev] [PATCH 1/5] nir: Expose nir_print_instr() for debug prints
Eric Anholt
eric at anholt.net
Wed Jan 21 17:25:57 PST 2015
It's nice to have this present in your default cases so you can see what
instruction is triggering an abort.
---
src/glsl/nir/nir.h | 1 +
src/glsl/nir/nir_print.c | 14 ++++++++++++--
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h
index 7b5794d..761f20a 100644
--- a/src/glsl/nir/nir.h
+++ b/src/glsl/nir/nir.h
@@ -1480,6 +1480,7 @@ void nir_index_ssa_defs(nir_function_impl *impl);
void nir_index_blocks(nir_function_impl *impl);
void nir_print_shader(nir_shader *shader, FILE *fp);
+void nir_print_instr(nir_instr *instr, FILE *fp);
#ifdef DEBUG
void nir_validate_shader(nir_shader *shader);
diff --git a/src/glsl/nir/nir_print.c b/src/glsl/nir/nir_print.c
index 1a50ae9..924989a 100644
--- a/src/glsl/nir/nir_print.c
+++ b/src/glsl/nir/nir_print.c
@@ -611,8 +611,6 @@ print_instr(nir_instr *instr, print_var_state *state, unsigned tabs, FILE *fp)
unreachable("Invalid instruction type");
break;
}
-
- fprintf(fp, "\n");
}
static int
@@ -658,6 +656,7 @@ print_block(nir_block *block, print_var_state *state, unsigned tabs, FILE *fp)
nir_foreach_instr(block, instr) {
print_instr(instr, state, tabs, fp);
+ fprintf(fp, "\n");
}
print_tabs(tabs, fp);
@@ -871,3 +870,14 @@ nir_print_shader(nir_shader *shader, FILE *fp)
destroy_print_state(&state);
}
+
+void
+nir_print_instr(nir_instr *instr, FILE *fp)
+{
+ print_var_state state;
+ init_print_state(&state);
+
+ print_instr(instr, &state, 0, fp);
+
+ destroy_print_state(&state);
+}
--
2.1.3
More information about the mesa-dev
mailing list