i965/fs: Print the scheduler mode.
Line wrap some awfully long lines while we are here. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:

committed by
Ian Romanick

parent
dabb5d4bee
commit
46a3ea06be
@@ -7213,6 +7213,12 @@ fs_visitor::allocate_registers(unsigned min_dispatch_width, bool allow_spilling)
|
|||||||
SCHEDULE_PRE_LIFO,
|
SCHEDULE_PRE_LIFO,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char *scheduler_mode_name[] = {
|
||||||
|
"top-down",
|
||||||
|
"non-lifo",
|
||||||
|
"lifo"
|
||||||
|
};
|
||||||
|
|
||||||
bool spill_all = allow_spilling && (INTEL_DEBUG & DEBUG_SPILL_FS);
|
bool spill_all = allow_spilling && (INTEL_DEBUG & DEBUG_SPILL_FS);
|
||||||
|
|
||||||
/* Try each scheduling heuristic to see if it can successfully register
|
/* Try each scheduling heuristic to see if it can successfully register
|
||||||
@@ -7221,6 +7227,7 @@ fs_visitor::allocate_registers(unsigned min_dispatch_width, bool allow_spilling)
|
|||||||
*/
|
*/
|
||||||
for (unsigned i = 0; i < ARRAY_SIZE(pre_modes); i++) {
|
for (unsigned i = 0; i < ARRAY_SIZE(pre_modes); i++) {
|
||||||
schedule_instructions(pre_modes[i]);
|
schedule_instructions(pre_modes[i]);
|
||||||
|
this->shader_stats.scheduler_mode = scheduler_mode_name[i];
|
||||||
|
|
||||||
if (0) {
|
if (0) {
|
||||||
assign_regs_trivial();
|
assign_regs_trivial();
|
||||||
|
@@ -53,6 +53,7 @@ offset(const fs_reg ®, const brw::fs_builder &bld, unsigned delta)
|
|||||||
#define UBO_START ((1 << 16) - 4)
|
#define UBO_START ((1 << 16) - 4)
|
||||||
|
|
||||||
struct shader_stats {
|
struct shader_stats {
|
||||||
|
const char *scheduler_mode;
|
||||||
unsigned promoted_constants;
|
unsigned promoted_constants;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -2250,10 +2250,17 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width)
|
|||||||
|
|
||||||
if (unlikely(debug_flag)) {
|
if (unlikely(debug_flag)) {
|
||||||
fprintf(stderr, "Native code for %s\n"
|
fprintf(stderr, "Native code for %s\n"
|
||||||
"SIMD%d shader: %d instructions. %d loops. %u cycles. %d:%d spills:fills. Promoted %u constants. Compacted %d to %d"
|
"SIMD%d shader: %d instructions. %d loops. %u cycles. "
|
||||||
" bytes (%.0f%%)\n",
|
"%d:%d spills:fills. "
|
||||||
shader_name, dispatch_width, before_size / 16, loop_count, cfg->cycle_count,
|
"scheduled with mode %s. "
|
||||||
spill_count, fill_count, shader_stats.promoted_constants, before_size, after_size,
|
"Promoted %u constants. "
|
||||||
|
"Compacted %d to %d bytes (%.0f%%)\n",
|
||||||
|
shader_name, dispatch_width, before_size / 16,
|
||||||
|
loop_count, cfg->cycle_count,
|
||||||
|
spill_count, fill_count,
|
||||||
|
shader_stats.scheduler_mode,
|
||||||
|
shader_stats.promoted_constants,
|
||||||
|
before_size, after_size,
|
||||||
100.0f * (before_size - after_size) / before_size);
|
100.0f * (before_size - after_size) / before_size);
|
||||||
|
|
||||||
dump_assembly(p->store, disasm_info);
|
dump_assembly(p->store, disasm_info);
|
||||||
@@ -2263,13 +2270,17 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width)
|
|||||||
|
|
||||||
compiler->shader_debug_log(log_data,
|
compiler->shader_debug_log(log_data,
|
||||||
"%s SIMD%d shader: %d inst, %d loops, %u cycles, "
|
"%s SIMD%d shader: %d inst, %d loops, %u cycles, "
|
||||||
"%d:%d spills:fills, Promoted %u constants, "
|
"%d:%d spills:fills, "
|
||||||
|
"scheduled with mode %s, "
|
||||||
|
"Promoted %u constants, "
|
||||||
"compacted %d to %d bytes.",
|
"compacted %d to %d bytes.",
|
||||||
_mesa_shader_stage_to_abbrev(stage),
|
_mesa_shader_stage_to_abbrev(stage),
|
||||||
dispatch_width, before_size / 16,
|
dispatch_width, before_size / 16,
|
||||||
loop_count, cfg->cycle_count, spill_count,
|
loop_count, cfg->cycle_count,
|
||||||
fill_count, shader_stats.promoted_constants, before_size,
|
spill_count, fill_count,
|
||||||
after_size);
|
shader_stats.scheduler_mode,
|
||||||
|
shader_stats.promoted_constants,
|
||||||
|
before_size, after_size);
|
||||||
|
|
||||||
return start_offset;
|
return start_offset;
|
||||||
}
|
}
|
||||||
|
@@ -952,6 +952,7 @@ fs_visitor::init()
|
|||||||
this->pull_constant_loc = NULL;
|
this->pull_constant_loc = NULL;
|
||||||
this->push_constant_loc = NULL;
|
this->push_constant_loc = NULL;
|
||||||
|
|
||||||
|
this->shader_stats.scheduler_mode = NULL;
|
||||||
this->shader_stats.promoted_constants = 0,
|
this->shader_stats.promoted_constants = 0,
|
||||||
|
|
||||||
this->grf_used = 0;
|
this->grf_used = 0;
|
||||||
|
Reference in New Issue
Block a user