pan/midgard: Report spills:fills to shader-db
Route this info through so we can track how we're doing on register spilling. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
055aa9b1f4
commit
e8dca7e1e1
|
@ -197,6 +197,10 @@ typedef struct compiler_context {
|
||||||
/* Number of bytes used for Thread Local Storage */
|
/* Number of bytes used for Thread Local Storage */
|
||||||
unsigned tls_size;
|
unsigned tls_size;
|
||||||
|
|
||||||
|
/* Count of spills and fills for shaderdb */
|
||||||
|
unsigned spills;
|
||||||
|
unsigned fills;
|
||||||
|
|
||||||
/* Current NIR function */
|
/* Current NIR function */
|
||||||
nir_function *func;
|
nir_function *func;
|
||||||
|
|
||||||
|
|
|
@ -2741,12 +2741,14 @@ midgard_compile_shader_nir(nir_shader *nir, midgard_program *program, bool is_bl
|
||||||
|
|
||||||
fprintf(stderr, "shader%d - %s shader: "
|
fprintf(stderr, "shader%d - %s shader: "
|
||||||
"%u inst, %u bundles, %u quadwords, "
|
"%u inst, %u bundles, %u quadwords, "
|
||||||
"%u registers, %u threads, %u loops\n",
|
"%u registers, %u threads, %u loops, "
|
||||||
|
"%d:%d spills:fills\n",
|
||||||
SHADER_DB_COUNT++,
|
SHADER_DB_COUNT++,
|
||||||
gl_shader_stage_name(ctx->stage),
|
gl_shader_stage_name(ctx->stage),
|
||||||
nr_ins, nr_bundles, nr_quadwords,
|
nr_ins, nr_bundles, nr_quadwords,
|
||||||
nr_registers, nr_threads,
|
nr_registers, nr_threads,
|
||||||
ctx->loop_count);
|
ctx->loop_count,
|
||||||
|
ctx->spills, ctx->fills);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -720,6 +720,8 @@ schedule_program(compiler_context *ctx)
|
||||||
|
|
||||||
midgard_instruction st = v_load_store_scratch(ins->ssa_args.dest, spill_slot, true, ins->mask);
|
midgard_instruction st = v_load_store_scratch(ins->ssa_args.dest, spill_slot, true, ins->mask);
|
||||||
mir_insert_instruction_before(mir_next_op(ins), st);
|
mir_insert_instruction_before(mir_next_op(ins), st);
|
||||||
|
|
||||||
|
ctx->spills++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Insert a load from TLS before the first consecutive
|
/* Insert a load from TLS before the first consecutive
|
||||||
|
@ -759,6 +761,8 @@ schedule_program(compiler_context *ctx)
|
||||||
|
|
||||||
/* Rewrite to use */
|
/* Rewrite to use */
|
||||||
mir_rewrite_index_src_single(ins, spill_node, consecutive_index);
|
mir_rewrite_index_src_single(ins, spill_node, consecutive_index);
|
||||||
|
|
||||||
|
ctx->fills++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue