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(