Mesa (main): nir/print: compact printing of intrinsic indices

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 16 10:33:46 UTC 2021


Module: Mesa
Branch: main
Commit: f7e63ec5d87367c44b5e02bf65de724ff268b877
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f7e63ec5d87367c44b5e02bf65de724ff268b877

Author: Marcin Ślusarz <marcin.slusarz at intel.com>
Date:   Tue Oct 19 11:27:40 2021 +0200

nir/print: compact printing of intrinsic indices

Reviewed-by: Emma Anholt <emma at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14222>

---

 src/compiler/nir/nir_print.c | 46 ++++++++++++++++++++------------------------
 1 file changed, 21 insertions(+), 25 deletions(-)

diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c
index 670d950b163..e058e10df4e 100644
--- a/src/compiler/nir/nir_print.c
+++ b/src/compiler/nir/nir_print.c
@@ -830,22 +830,15 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
    fprintf(fp, ") (");
 
    for (unsigned i = 0; i < info->num_indices; i++) {
+      unsigned idx = info->indices[i];
+      bool print_raw = true;
       if (i != 0)
          fprintf(fp, ", ");
-
-      fprintf(fp, "%d", instr->const_index[i]);
-   }
-
-   fprintf(fp, ")");
-
-   for (unsigned i = 0; i < info->num_indices; i++) {
-      unsigned idx = info->indices[i];
-      fprintf(fp, " /*");
       switch (idx) {
       case NIR_INTRINSIC_WRITE_MASK: {
          /* special case wrmask to show it as a writemask.. */
          unsigned wrmask = nir_intrinsic_write_mask(instr);
-         fprintf(fp, " wrmask=");
+         fprintf(fp, "wrmask=");
          for (unsigned i = 0; i < instr->num_components; i++)
             if ((wrmask >> i) & 1)
                fprintf(fp, "%c", comp_mask_string(instr->num_components)[i]);
@@ -854,7 +847,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
 
       case NIR_INTRINSIC_REDUCTION_OP: {
          nir_op reduction_op = nir_intrinsic_reduction_op(instr);
-         fprintf(fp, " reduction_op=%s", nir_op_infos[reduction_op].name);
+         fprintf(fp, "reduction_op=%s", nir_op_infos[reduction_op].name);
          break;
       }
 
@@ -872,42 +865,42 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
          };
          enum glsl_sampler_dim dim = nir_intrinsic_image_dim(instr);
          assert(dim < ARRAY_SIZE(dim_name) && dim_name[dim]);
-         fprintf(fp, " image_dim=%s", dim_name[dim]);
+         fprintf(fp, "image_dim=%s", dim_name[dim]);
          break;
       }
 
       case NIR_INTRINSIC_IMAGE_ARRAY: {
          bool array = nir_intrinsic_image_array(instr);
-         fprintf(fp, " image_array=%s", array ? "true" : "false");
+         fprintf(fp, "image_array=%s", array ? "true" : "false");
          break;
       }
 
       case NIR_INTRINSIC_FORMAT: {
          enum pipe_format format = nir_intrinsic_format(instr);
-         fprintf(fp, " format=%s ", util_format_short_name(format));
+         fprintf(fp, "format=%s", util_format_short_name(format));
          break;
       }
 
       case NIR_INTRINSIC_DESC_TYPE: {
          VkDescriptorType desc_type = nir_intrinsic_desc_type(instr);
-         fprintf(fp, " desc_type=%s", vulkan_descriptor_type_name(desc_type));
+         fprintf(fp, "desc_type=%s", vulkan_descriptor_type_name(desc_type));
          break;
       }
 
       case NIR_INTRINSIC_SRC_TYPE: {
-         fprintf(fp, " src_type=");
+         fprintf(fp, "src_type=");
          print_alu_type(nir_intrinsic_src_type(instr), state);
          break;
       }
 
       case NIR_INTRINSIC_DEST_TYPE: {
-         fprintf(fp, " dest_type=");
+         fprintf(fp, "dest_type=");
          print_alu_type(nir_intrinsic_dest_type(instr), state);
          break;
       }
 
       case NIR_INTRINSIC_SWIZZLE_MASK: {
-         fprintf(fp, " swizzle_mask=");
+         fprintf(fp, "swizzle_mask=");
          unsigned mask = nir_intrinsic_swizzle_mask(instr);
          if (instr->intrinsic == nir_intrinsic_quad_swizzle_amd) {
             for (unsigned i = 0; i < 4; i++)
@@ -924,7 +917,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
 
       case NIR_INTRINSIC_MEMORY_SEMANTICS: {
          nir_memory_semantics semantics = nir_intrinsic_memory_semantics(instr);
-         fprintf(fp, " mem_semantics=");
+         fprintf(fp, "mem_semantics=");
          switch (semantics & (NIR_MEMORY_ACQUIRE | NIR_MEMORY_RELEASE)) {
          case 0:                  fprintf(fp, "NONE");    break;
          case NIR_MEMORY_ACQUIRE: fprintf(fp, "ACQ");     break;
@@ -937,7 +930,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
       }
 
       case NIR_INTRINSIC_MEMORY_MODES: {
-         fprintf(fp, " mem_modes=");
+         fprintf(fp, "mem_modes=");
          unsigned int modes = nir_intrinsic_memory_modes(instr);
          while (modes) {
             nir_variable_mode m = u_bit_scan(&modes);
@@ -948,7 +941,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
 
       case NIR_INTRINSIC_EXECUTION_SCOPE:
       case NIR_INTRINSIC_MEMORY_SCOPE: {
-         fprintf(fp, " %s=", nir_intrinsic_index_names[idx]);
+         fprintf(fp, "%s=", nir_intrinsic_index_names[idx]);
          nir_scope scope =
             idx == NIR_INTRINSIC_MEMORY_SCOPE ? nir_intrinsic_memory_scope(instr)
                                               : nir_intrinsic_execution_scope(instr);
@@ -966,7 +959,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
 
       case NIR_INTRINSIC_IO_SEMANTICS: {
          struct nir_io_semantics io = nir_intrinsic_io_semantics(instr);
-         fprintf(fp, " io location=%u slots=%u", io.location, io.num_slots);
+         fprintf(fp, "io location=%u slots=%u", io.location, io.num_slots);
 
          if (io.dual_source_blend_index)
             fprintf(fp, " dualsrc");
@@ -1001,7 +994,7 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
       }
 
       case NIR_INTRINSIC_ROUNDING_MODE: {
-         fprintf(fp, " rounding_mode=");
+         fprintf(fp, "rounding_mode=");
          switch (nir_intrinsic_rounding_mode(instr)) {
          case nir_rounding_mode_undef: fprintf(fp, "undef");   break;
          case nir_rounding_mode_rtne:  fprintf(fp, "rtne");    break;
@@ -1015,12 +1008,15 @@ print_intrinsic_instr(nir_intrinsic_instr *instr, print_state *state)
 
       default: {
          unsigned off = info->index_map[idx] - 1;
-         fprintf(fp, " %s=%d", nir_intrinsic_index_names[idx], instr->const_index[off]);
+         fprintf(fp, "%s=%d", nir_intrinsic_index_names[idx], instr->const_index[off]);
+         print_raw = false;
          break;
       }
       }
-      fprintf(fp, " */");
+      if (print_raw)
+         fprintf(fp, " /*%d*/", instr->const_index[i]);
    }
+   fprintf(fp, ")");
 
    if (!state->shader)
       return;



More information about the mesa-commit mailing list