diff options
author | Matt Turner <[email protected]> | 2015-02-13 10:46:32 -0800 |
---|---|---|
committer | Matt Turner <[email protected]> | 2015-02-15 12:24:11 -0800 |
commit | 74ef90acd751fc91ba9e20c2f16871fa9bf140e0 (patch) | |
tree | 83aec95e0dfbea4c0ef5dfea36f1c17d8a6ef08d | |
parent | fa124a337ca10d2c5d2d81a89dc8c21a7ba2f58b (diff) |
i965: Let dump_instructions() work before calculate_cfg().
Reviewed-by: Ben Widawsky <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 24 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_shader.cpp | 17 |
2 files changed, 28 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index a311266201b..4c6524b76b5 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -3176,7 +3176,6 @@ fs_visitor::dump_instructions() void fs_visitor::dump_instructions(const char *name) { - calculate_register_pressure(); FILE *file = stderr; if (name && geteuid() != 0) { file = fopen(name, "w"); @@ -3184,14 +3183,23 @@ fs_visitor::dump_instructions(const char *name) file = stderr; } - int ip = 0, max_pressure = 0; - foreach_block_and_inst(block, backend_instruction, inst, cfg) { - max_pressure = MAX2(max_pressure, regs_live_at_ip[ip]); - fprintf(file, "{%3d} %4d: ", regs_live_at_ip[ip], ip); - dump_instruction(inst, file); - ++ip; + if (cfg) { + calculate_register_pressure(); + int ip = 0, max_pressure = 0; + foreach_block_and_inst(block, backend_instruction, inst, cfg) { + max_pressure = MAX2(max_pressure, regs_live_at_ip[ip]); + fprintf(file, "{%3d} %4d: ", regs_live_at_ip[ip], ip); + dump_instruction(inst, file); + ip++; + } + fprintf(file, "Maximum %3d registers live at once.\n", max_pressure); + } else { + int ip = 0; + foreach_in_list(backend_instruction, inst, &instructions) { + fprintf(file, "%4d: ", ip++); + dump_instruction(inst, file); + } } - fprintf(file, "Maximum %3d registers live at once.\n", max_pressure); if (file != stderr) { fclose(file); diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp index f8769327883..83734a2ecf8 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.cpp +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp @@ -1060,11 +1060,18 @@ backend_visitor::dump_instructions(const char *name) file = stderr; } - int ip = 0; - foreach_block_and_inst(block, backend_instruction, inst, cfg) { - if (!name) - fprintf(stderr, "%d: ", ip++); - dump_instruction(inst, file); + if (cfg) { + int ip = 0; + foreach_block_and_inst(block, backend_instruction, inst, cfg) { + fprintf(file, "%4d: ", ip++); + dump_instruction(inst, file); + } + } else { + int ip = 0; + foreach_in_list(backend_instruction, inst, &instructions) { + fprintf(file, "%4d: ", ip++); + dump_instruction(inst, file); + } } if (file != stderr) { |