vc4: Coalesce into TLB writes as well as VPM/tex.

This generally cuts an instruction when blending is enabled and we thus
have a single instruction generating the color value.

total instructions in shared programs: 91759 -> 91634 (-0.14%)
instructions in affected programs:     5338 -> 5213 (-2.34%)
This commit is contained in:
Eric Anholt 2017-01-19 09:31:45 +11:00
parent c1299615fb
commit 5b7e2697dc
1 changed files with 5 additions and 1 deletions

View File

@ -57,7 +57,10 @@ qir_opt_coalesce_ff_writes(struct vc4_compile *c)
if (mov_inst->src[0].file != QFILE_TEMP)
continue;
if (!(mov_inst->dst.file == QFILE_VPM || qir_is_tex(mov_inst)))
if (!(mov_inst->dst.file == QFILE_VPM ||
mov_inst->dst.file == QFILE_TLB_COLOR_WRITE ||
mov_inst->dst.file == QFILE_TLB_COLOR_WRITE_MS ||
qir_is_tex(mov_inst)))
continue;
uint32_t temp = mov_inst->src[0].index;
@ -80,6 +83,7 @@ qir_opt_coalesce_ff_writes(struct vc4_compile *c)
if (qir_has_side_effects(c, inst) ||
qir_has_side_effect_reads(c, inst) ||
inst->op == QOP_TLB_COLOR_READ ||
inst->op == QOP_VARY_ADD_C) {
continue;
}