pan/midgard: Remove spill cost heuristic
We do need some sort of a cost heuristic, but this one is just causing spilling to behave worse on shaders I'm looking at, and I don't need more noise in the spill implementation right now. Get it working first. We can optimize this later. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
@@ -685,25 +685,6 @@ mir_choose_spill_node(
|
||||
compiler_context *ctx,
|
||||
struct lcra_state *l)
|
||||
{
|
||||
/* Our first step is to calculate spill cost to figure out the best
|
||||
* spill node. All nodes are equal in spill cost, but we can't spill
|
||||
* nodes written to from an unspill */
|
||||
|
||||
unsigned *cost = calloc(ctx->temp_count, sizeof(cost[0]));
|
||||
|
||||
mir_foreach_instr_global(ctx, ins) {
|
||||
if (ins->dest < ctx->temp_count)
|
||||
cost[ins->dest]++;
|
||||
|
||||
mir_foreach_src(ins, s) {
|
||||
if (ins->src[s] < ctx->temp_count)
|
||||
cost[ins->src[s]]++;
|
||||
}
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < ctx->temp_count; ++i)
|
||||
lcra_set_node_spill_cost(l, i, cost[i]);
|
||||
|
||||
/* We can't spill a previously spilled value or an unspill */
|
||||
|
||||
mir_foreach_instr_global(ctx, ins) {
|
||||
@@ -720,8 +701,6 @@ mir_choose_spill_node(
|
||||
}
|
||||
}
|
||||
|
||||
free(cost);
|
||||
|
||||
return lcra_get_best_spill_node(l);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user