diff --git a/src/intel/compiler/brw_asm.c b/src/intel/compiler/brw_asm.c index 239ff5fb205..86163c24e4f 100644 --- a/src/intel/compiler/brw_asm.c +++ b/src/intel/compiler/brw_asm.c @@ -143,7 +143,7 @@ brw_assemble(void *mem_ctx, const struct intel_device_info *devinfo, if (!brw_validate_instructions(p->isa, p->store, 0, p->next_insn_offset, disasm_info)) { - dump_assembly(p->store, 0, p->next_insn_offset, disasm_info, NULL); + dump_assembly(p->store, 0, p->next_insn_offset, disasm_info, NULL, stderr); ralloc_free(disasm_info); fprintf(stderr, "Invalid instructions.\n"); goto end; @@ -156,7 +156,7 @@ brw_assemble(void *mem_ctx, const struct intel_device_info *devinfo, result.bin_size = p->next_insn_offset; if ((flags & BRW_ASSEMBLE_DUMP) != 0) - dump_assembly(p->store, 0, p->next_insn_offset, disasm_info, NULL); + dump_assembly(p->store, 0, p->next_insn_offset, disasm_info, NULL, stderr); ralloc_free(disasm_info); diff --git a/src/intel/compiler/brw_disasm_info.cpp b/src/intel/compiler/brw_disasm_info.cpp index 4fec8307671..ecb2df960b9 100644 --- a/src/intel/compiler/brw_disasm_info.cpp +++ b/src/intel/compiler/brw_disasm_info.cpp @@ -49,36 +49,36 @@ should_omit_link(struct bblock_t *block, } static void -print_successors_for_disasm(struct bblock_t *block) +print_successors_for_disasm(FILE *f, struct bblock_t *block) { brw_foreach_list_typed(struct bblock_link, succ, link, &block->children) { if (should_omit_link(block, succ)) continue; if (is_do_block(succ->block) || is_flow_block(succ->block)) - print_successors_for_disasm(succ->block); + print_successors_for_disasm(f, succ->block); else - fprintf(stderr, " ->B%d", succ->block->num); + fprintf(f, " ->B%d", succ->block->num); } } static void -print_predecessors_for_disasm(struct bblock_t *block) +print_predecessors_for_disasm(FILE *f, struct bblock_t *block) { brw_foreach_list_typed(struct bblock_link, pred, link, &block->parents) { if (should_omit_link(block, pred)) continue; if (is_do_block(pred->block) || is_flow_block(pred->block)) - print_predecessors_for_disasm(pred->block); + print_predecessors_for_disasm(f, pred->block); else - fprintf(stderr, " <-B%d", pred->block->num); + fprintf(f, " <-B%d", pred->block->num); } } void dump_assembly(void *assembly, int start_offset, int end_offset, - struct disasm_info *disasm, const unsigned *block_latency) + struct disasm_info *disasm, const unsigned *block_latency, FILE *f) { const struct brw_isa_info *isa = disasm->isa; const char *last_annotation_string = NULL; @@ -99,34 +99,34 @@ dump_assembly(void *assembly, int start_offset, int end_offset, int end_offset = next->offset; if (group->block_start) { - fprintf(stderr, " START B%d", group->block_start->num); - print_predecessors_for_disasm(group->block_start); + fprintf(f, " START B%d", group->block_start->num); + print_predecessors_for_disasm(f, group->block_start); if (block_latency) - fprintf(stderr, " (%u cycles)", + fprintf(f, " (%u cycles)", block_latency[group->block_start->num]); - fprintf(stderr, "\n"); + fprintf(f, "\n"); } if (last_annotation_string != group->annotation) { last_annotation_string = group->annotation; if (last_annotation_string) - fprintf(stderr, " %s\n", last_annotation_string); + fprintf(f, " %s\n", last_annotation_string); } brw_disassemble(isa, assembly, start_offset, end_offset, - root_label, NULL, stderr); + root_label, NULL, f); if (group->error) { - fputs(group->error, stderr); + fputs(group->error, f); } if (group->block_end) { - fprintf(stderr, " END B%d", group->block_end->num); - print_successors_for_disasm(group->block_end); - fprintf(stderr, "\n"); + fprintf(f, " END B%d", group->block_end->num); + print_successors_for_disasm(f, group->block_end); + fprintf(f, "\n"); } } - fprintf(stderr, "\n"); + fprintf(f, "\n"); ralloc_free(mem_ctx); } diff --git a/src/intel/compiler/brw_disasm_info.h b/src/intel/compiler/brw_disasm_info.h index 1152b39cad6..c8cd08d0e7d 100644 --- a/src/intel/compiler/brw_disasm_info.h +++ b/src/intel/compiler/brw_disasm_info.h @@ -64,7 +64,7 @@ struct disasm_info { void dump_assembly(void *assembly, int start_offset, int end_offset, - struct disasm_info *disasm, const unsigned *block_latency); + struct disasm_info *disasm, const unsigned *block_latency, FILE *f); struct disasm_info * disasm_initialize(const struct brw_isa_info *isa, diff --git a/src/intel/compiler/brw_generator.cpp b/src/intel/compiler/brw_generator.cpp index f8b805e527c..85a4b460830 100644 --- a/src/intel/compiler/brw_generator.cpp +++ b/src/intel/compiler/brw_generator.cpp @@ -1459,7 +1459,7 @@ brw_generator::generate_code(const brw_shader &s, before_size, after_size, 100.0f * (before_size - after_size) / before_size); dump_assembly(p->store, start_offset, p->next_insn_offset, - disasm_info, perf.block_latency); + disasm_info, perf.block_latency, stderr); } } ralloc_free(disasm_info); diff --git a/src/intel/compiler/test_eu_validate.cpp b/src/intel/compiler/test_eu_validate.cpp index 9f96ece650a..359ed86cf2e 100644 --- a/src/intel/compiler/test_eu_validate.cpp +++ b/src/intel/compiler/test_eu_validate.cpp @@ -117,7 +117,7 @@ validate(struct brw_codegen *p, char **error = nullptr) p->next_insn_offset, disasm); if (print) { - dump_assembly(p->store, 0, p->next_insn_offset, disasm, NULL); + dump_assembly(p->store, 0, p->next_insn_offset, disasm, NULL, stderr); } if (error)