Generalizing iree_tooling_variant_list_fprint & co. This changes the printing to include the user-specified string instead of being hardcoded to 'result[X]'.
diff --git a/runtime/src/iree/tooling/vm_util.c b/runtime/src/iree/tooling/vm_util.c index 39dd4f5..0f488c9 100644 --- a/runtime/src/iree/tooling/vm_util.c +++ b/runtime/src/iree/tooling/vm_util.c
@@ -334,7 +334,12 @@ IREE_RETURN_IF_ERROR(iree_string_builder_append_string(builder, type_name)); IREE_RETURN_IF_ERROR( iree_string_builder_append_string(builder, IREE_SV("\n"))); - if (iree_hal_buffer_view_isa(variant.ref)) { + if (iree_vm_list_isa(variant.ref)) { + iree_vm_list_t* child_list = iree_vm_list_deref(variant.ref); + IREE_RETURN_IF_ERROR(iree_tooling_append_variant_list_lines( + IREE_SV("child_list"), child_list, max_element_count, builder)); + return iree_string_builder_append_string(builder, IREE_SV("\n")); + } else if (iree_hal_buffer_view_isa(variant.ref)) { iree_hal_buffer_view_t* buffer_view = iree_hal_buffer_view_deref(variant.ref); IREE_RETURN_IF_ERROR(iree_hal_buffer_view_append_to_builder( @@ -370,15 +375,16 @@ } iree_status_t iree_tooling_append_variant_list_lines( - iree_vm_list_t* list, iree_host_size_t max_element_count, - iree_string_builder_t* builder) { + iree_string_view_t list_name, iree_vm_list_t* list, + iree_host_size_t max_element_count, iree_string_builder_t* builder) { IREE_TRACE_ZONE_BEGIN(z0); for (iree_host_size_t i = 0; i < iree_vm_list_size(list); ++i) { iree_vm_variant_t variant = iree_vm_variant_empty(); IREE_RETURN_AND_END_ZONE_IF_ERROR( z0, iree_vm_list_get_variant_assign(list, i, &variant), "variant %zu not present", i); - iree_string_builder_append_format(builder, "result[%zu]: ", i); + iree_string_builder_append_format( + builder, "%.*s[%" PRIhsz "]: ", (int)list_name.size, list_name.data, i); IREE_RETURN_AND_END_ZONE_IF_ERROR( z0, iree_variant_format(variant, max_element_count, builder)); } @@ -387,11 +393,12 @@ } iree_status_t iree_tooling_variant_list_fprint( - iree_vm_list_t* list, iree_host_size_t max_element_count, FILE* file) { + iree_string_view_t list_name, iree_vm_list_t* list, + iree_host_size_t max_element_count, FILE* file) { iree_string_builder_t builder; iree_string_builder_initialize(iree_allocator_system(), &builder); - iree_status_t status = - iree_tooling_append_variant_list_lines(list, max_element_count, &builder); + iree_status_t status = iree_tooling_append_variant_list_lines( + list_name, list, max_element_count, &builder); if (iree_status_is_ok(status)) { size_t written = fwrite(iree_string_builder_buffer(&builder), 1, iree_string_builder_size(&builder), file);
diff --git a/runtime/src/iree/tooling/vm_util.h b/runtime/src/iree/tooling/vm_util.h index b72d4ed..3eae007 100644 --- a/runtime/src/iree/tooling/vm_util.h +++ b/runtime/src/iree/tooling/vm_util.h
@@ -42,6 +42,8 @@ iree_hal_fence_t** out_signal_fence); // Appends a variant list of VM scalars and buffers to |builder|. +// |list_name| will be printed alongside each element ordinal. +// // Prints scalars in the format: // value // Prints buffers in the IREE standard shaped buffer format: @@ -49,12 +51,14 @@ // described in // https://github.com/openxla/iree/tree/main/iree/hal/api.h iree_status_t iree_tooling_append_variant_list_lines( - iree_vm_list_t* list, iree_host_size_t max_element_count, - iree_string_builder_t* builder); + iree_string_view_t list_name, iree_vm_list_t* list, + iree_host_size_t max_element_count, iree_string_builder_t* builder); -// Prints a variant list to a file. +// Prints a variant list to a |file|. +// |list_name| will be printed alongside each element ordinal. iree_status_t iree_tooling_variant_list_fprint( - iree_vm_list_t* list, iree_host_size_t max_element_count, FILE* file); + iree_string_view_t list_name, iree_vm_list_t* list, + iree_host_size_t max_element_count, FILE* file); // Prints a variant |list| to targets based on the provided |output_strings|. //
diff --git a/runtime/src/iree/tooling/vm_util_test.cc b/runtime/src/iree/tooling/vm_util_test.cc index 5d33a68..a42cfa7 100644 --- a/runtime/src/iree/tooling/vm_util_test.cc +++ b/runtime/src/iree/tooling/vm_util_test.cc
@@ -37,7 +37,7 @@ iree_string_builder_t builder; iree_string_builder_initialize(iree_allocator_system(), &builder); IREE_RETURN_IF_ERROR(iree_tooling_append_variant_list_lines( - variant_list, /*max_element_count=*/1024, &builder)); + IREE_SV("result"), variant_list, /*max_element_count=*/1024, &builder)); out_string->assign(iree_string_builder_buffer(&builder), iree_string_builder_size(&builder)); iree_string_builder_deinitialize(&builder);
diff --git a/tools/android/run_module_app/src/main.cc b/tools/android/run_module_app/src/main.cc index be97e89..739c3fe 100644 --- a/tools/android/run_module_app/src/main.cc +++ b/tools/android/run_module_app/src/main.cc
@@ -157,10 +157,10 @@ iree_string_builder_t result_str; iree_string_builder_initialize(iree_allocator_system(), &result_str); - IREE_RETURN_IF_ERROR( - iree_tooling_append_variant_list_lines( - outputs.get(), /*max_element_count=*/1024, &result_str), - "printing results"); + IREE_RETURN_IF_ERROR(iree_tooling_append_variant_list_lines( + IREE_SV("result"), outputs.get(), + /*max_element_count=*/1024, &result_str), + "printing results"); LOGI("Execution Result:"); LOGI("%.*s", (int)iree_string_builder_size(&result_str), iree_string_builder_buffer(&result_str));
diff --git a/tools/iree-run-mlir-main.cc b/tools/iree-run-mlir-main.cc index d7830fb..9aa2e37 100644 --- a/tools/iree-run-mlir-main.cc +++ b/tools/iree-run-mlir-main.cc
@@ -385,8 +385,8 @@ if (FLAG_output_list().count == 0) { IREE_RETURN_IF_ERROR( iree_tooling_variant_list_fprint( - outputs.get(), (iree_host_size_t)FLAG_output_max_element_count, - stdout), + IREE_SV("result"), outputs.get(), + (iree_host_size_t)FLAG_output_max_element_count, stdout), "printing results"); } else { IREE_RETURN_IF_ERROR(
diff --git a/tools/iree-run-module-main.cc b/tools/iree-run-module-main.cc index 6063e86..7f5a439 100644 --- a/tools/iree-run-module-main.cc +++ b/tools/iree-run-module-main.cc
@@ -158,8 +158,8 @@ if (FLAG_output_list().count == 0) { IREE_RETURN_IF_ERROR( iree_tooling_variant_list_fprint( - outputs.get(), (iree_host_size_t)FLAG_output_max_element_count, - stdout), + IREE_SV("result"), outputs.get(), + (iree_host_size_t)FLAG_output_max_element_count, stdout), "printing results"); } else { IREE_RETURN_IF_ERROR(