On Mon, Jun 30, 2014 at 11:49 AM, Ian Romanick <i...@freedesktop.org> wrote: > On 06/25/2014 02:12 PM, Matt Turner wrote: >> Port of commit 5daf867f to the vec4 code. >> --- >> src/mesa/drivers/dri/i965/brw_vec4_cse.cpp | 20 ++++++++++++++++++++ >> 1 file changed, 20 insertions(+) >> >> diff --git a/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp >> b/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp >> index 33c7430..67fc58a 100644 >> --- a/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp >> +++ b/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp >> @@ -128,6 +128,7 @@ vec4_visitor::opt_cse_local(bblock_t *block, exec_list >> *aeb) >> >> void *cse_ctx = ralloc_context(NULL); >> >> + int ip = block->start_ip; >> for (vec4_instruction *inst = (vec4_instruction *)block->start; >> inst != block->end->next; >> inst = (vec4_instruction *) inst->next) { >> @@ -198,6 +199,8 @@ vec4_visitor::opt_cse_local(bblock_t *block, exec_list >> *aeb) >> aeb_entry *entry = (aeb_entry *)entry_node; >> >> for (int i = 0; i < 3; i++) { >> + src_reg *src = &entry->generator->src[i]; >> + >> /* Kill all AEB entries that use the destination we just >> * overwrote. >> */ >> @@ -207,8 +210,23 @@ vec4_visitor::opt_cse_local(bblock_t *block, exec_list >> *aeb) >> ralloc_free(entry); >> break; >> } >> + >> + /* Kill any AEB entries using registers that don't get reused >> any >> + * more -- a sure sign they'll fail operands_match(). >> + */ >> + int last_reg_use = MAX2(MAX2(virtual_grf_end[src->reg * 4 + 0], >> + virtual_grf_end[src->reg * 4 + 1]), >> + MAX2(virtual_grf_end[src->reg * 4 + 2], >> + virtual_grf_end[src->reg * 4 + >> 3])); >> + if (src->file == GRF && last_reg_use < ip) { >> + entry->remove(); >> + ralloc_free(entry); >> + break; >> + } >> } >> } >> + >> + ip++; >> } >> >> ralloc_free(cse_ctx); >> @@ -224,6 +242,8 @@ vec4_visitor::opt_cse() >> { >> bool progress = false; >> >> + calculate_live_intervals(); >> + >> cfg_t cfg(&instructions); > > Does this also need a rebase on other patches you have pending?
Yep. I'll probably commit the other stuff first, so fix this patch up before it goes in. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev