Added few more stubs so that control reaches to DestroyDevice().
[mesa.git] / src / intel / compiler / brw_disasm_info.c
index 3db79ede70835c7d2ec7d032159aeb1e7480651d..079d1716b1ffcecef031710fdcff692f561efa9f 100644 (file)
 #include "brw_cfg.h"
 #include "brw_eu.h"
 #include "brw_disasm_info.h"
-#include "common/gen_debug.h"
+#include "dev/gen_debug.h"
 #include "compiler/nir/nir.h"
 
-__attribute__((weak)) void nir_print_instr(const nir_instr *instr, FILE *fp) {}
+__attribute__((weak)) void nir_print_instr(UNUSED const nir_instr *instr,
+                                           UNUSED FILE *fp) {}
 
 void
-dump_assembly(void *assembly, struct disasm_info *disasm)
+dump_assembly(void *assembly, int start_offset, int end_offset,
+              struct disasm_info *disasm, const unsigned *block_latency)
 {
    const struct gen_device_info *devinfo = disasm->devinfo;
    const char *last_annotation_string = NULL;
    const void *last_annotation_ir = NULL;
 
+   void *mem_ctx = ralloc_context(NULL);
+   const struct brw_label *root_label =
+      brw_label_assembly(devinfo, assembly, start_offset, end_offset, mem_ctx);
+
    foreach_list_typed(struct inst_group, group, link, &disasm->group_list) {
       struct exec_node *next_node = exec_node_get_next(&group->link);
       if (exec_node_is_tail_sentinel(next_node))
@@ -54,7 +60,10 @@ dump_assembly(void *assembly, struct disasm_info *disasm)
             struct bblock_t *predecessor_block = predecessor_link->block;
             fprintf(stderr, " <-B%d", predecessor_block->num);
          }
-         fprintf(stderr, " (%u cycles)\n", group->block_start->cycle_count);
+         if (block_latency)
+            fprintf(stderr, " (%u cycles)",
+                    block_latency[group->block_start->num]);
+         fprintf(stderr, "\n");
       }
 
       if (last_annotation_ir != group->ir) {
@@ -72,7 +81,8 @@ dump_assembly(void *assembly, struct disasm_info *disasm)
             fprintf(stderr, "   %s\n", last_annotation_string);
       }
 
-      brw_disassemble(devinfo, assembly, start_offset, end_offset, stderr);
+      brw_disassemble(devinfo, assembly, start_offset, end_offset,
+                      root_label, stderr);
 
       if (group->error) {
          fputs(group->error, stderr);
@@ -89,6 +99,8 @@ dump_assembly(void *assembly, struct disasm_info *disasm)
       }
    }
    fprintf(stderr, "\n");
+
+   ralloc_free(mem_ctx);
 }
 
 struct disasm_info *
@@ -123,8 +135,8 @@ disasm_annotate(struct disasm_info *disasm,
    struct inst_group *group;
    if (!disasm->use_tail) {
       group = disasm_new_inst_group(disasm, offset);
-      disasm->use_tail = false;
    } else {
+      disasm->use_tail = false;
       group = exec_node_data(struct inst_group,
                              exec_list_get_tail_raw(&disasm->group_list), link);
    }