Browse Source

i965: Port INTEL_DEBUG=optimizer to the vec4 backend.

Largely via copy and paste.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
tags/10.3-branchpoint
Kenneth Graunke 11 years ago
parent
commit
36a4a6bbdc
1 changed files with 36 additions and 6 deletions
  1. 36
    6
      src/mesa/drivers/dri/i965/brw_vec4.cpp

+ 36
- 6
src/mesa/drivers/dri/i965/brw_vec4.cpp View File

@@ -1668,15 +1668,45 @@ vec4_visitor::run()
move_push_constants_to_pull_constants();
split_virtual_grfs();

const char *stage_name = stage == MESA_SHADER_GEOMETRY ? "gs" : "vs";

#define OPT(pass, args...) do { \
pass_num++; \
bool this_progress = pass(args); \
\
if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER) && this_progress) { \
char filename[64]; \
snprintf(filename, 64, "%s-%04d-%02d-%02d-" #pass, \
stage_name, shader_prog->Name, iteration, pass_num); \
\
backend_visitor::dump_instructions(filename); \
} \
\
progress = progress || this_progress; \
} while (false)


if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) {
char filename[64];
snprintf(filename, 64, "%s-%04d-00-start",
stage_name, shader_prog->Name);

backend_visitor::dump_instructions(filename);
}

bool progress;
int iteration = 0;
do {
progress = false;
progress = dead_code_eliminate() || progress;
progress = dead_control_flow_eliminate(this) || progress;
progress = opt_copy_propagation() || progress;
progress = opt_algebraic() || progress;
progress = opt_cse() || progress;
progress = opt_register_coalesce() || progress;
iteration++;
int pass_num = 0;

OPT(dead_code_eliminate);
OPT(dead_control_flow_eliminate, this);
OPT(opt_copy_propagation);
OPT(opt_algebraic);
OPT(opt_cse);
OPT(opt_register_coalesce);
} while (progress);



Loading…
Cancel
Save