From eebfbf5ecd87d45ef1ad648435b7b27f9edb82d8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 17 Nov 2024 14:34:10 -0400 Subject: [PATCH] nir/print: print function signature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit parameter dimensions and names if we have them. example: decl_function libagx_geometry_input_address (64 return, 64 p, 32 vtx, 32 location) Signed-off-by: Alyssa Rosenzweig Reviewed-by: Marek Olšák Part-of: --- src/compiler/nir/nir_print.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c index b2988830e32..4abfcf9fa7e 100644 --- a/src/compiler/nir/nir_print.c +++ b/src/compiler/nir/nir_print.c @@ -2315,12 +2315,33 @@ print_function(nir_function *function, print_state *state) { FILE *fp = state->fp; + fprintf(fp, "decl_function %s (", function->name); + + for (unsigned i = 0; i < function->num_params; ++i) { + if (i != 0) { + fprintf(fp, ", "); + } + + nir_parameter param = function->params[i]; + + fprintf(fp, "%u", param.bit_size); + if (param.num_components != 1) { + fprintf(fp, "x%u", param.num_components); + } + + if (param.name) { + fprintf(fp, " %s", param.name); + } else if (param.is_return) { + fprintf(fp, " return"); + } + } + + fprintf(fp, ")"); + /* clang-format off */ - fprintf(fp, "decl_function %s (%d params)%s%s", function->name, - function->num_params, - function->dont_inline ? " (noinline)" : - function->should_inline ? " (inline)" : "", - function->is_exported ? " (exported)" : ""); + fprintf(fp, "%s%s", function->dont_inline ? " (noinline)" : + function->should_inline ? " (inline)" : "", + function->is_exported ? " (exported)" : ""); /* clang-format on */ fprintf(fp, "\n");