panfrost/midgard: Drop redundant arg to emit_explicit_constant.

Every caller passed the same value twice.  Just reuse it?

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21476>
This commit is contained in:
Emma Anholt
2023-02-27 15:07:34 -08:00
committed by Marge Bot
parent 63aa5909b4
commit f16a23aa9d

View File

@@ -506,14 +506,14 @@ emit_load_const(compiler_context *ctx, nir_load_const_instr *instr)
* explicitly emit a move with the constant source */
static void
emit_explicit_constant(compiler_context *ctx, unsigned node, unsigned to)
emit_explicit_constant(compiler_context *ctx, unsigned node)
{
void *constant_value =
_mesa_hash_table_u64_search(ctx->ssa_constants, node + 1);
if (constant_value) {
midgard_instruction ins =
v_mov(SSA_FIXED_REGISTER(REGISTER_CONSTANT), to);
v_mov(SSA_FIXED_REGISTER(REGISTER_CONSTANT), node);
attach_constants(ctx, &ins, constant_value, node + 1);
emit_mir_instruction(ctx, ins);
}
@@ -948,7 +948,7 @@ emit_alu(compiler_context *ctx, nir_alu_instr *instr)
: (mixed ? midgard_alu_op_icsel_v : midgard_alu_op_icsel);
int index = nir_src_index(ctx, &instr->src[0].src);
emit_explicit_constant(ctx, index, index);
emit_explicit_constant(ctx, index);
break;
}
@@ -1328,7 +1328,7 @@ emit_atomic(compiler_context *ctx, nir_intrinsic_instr *instr, bool is_shared,
unsigned val_src = is_image ? 3 : 1;
unsigned val = nir_src_index(ctx, &instr->src[val_src]);
unsigned bitsize = nir_src_bit_size(instr->src[val_src]);
emit_explicit_constant(ctx, val, val);
emit_explicit_constant(ctx, val);
midgard_instruction ins = {.type = TAG_LOAD_STORE_4,
.mask = 0xF,
@@ -1354,7 +1354,7 @@ emit_atomic(compiler_context *ctx, nir_intrinsic_instr *instr, bool is_shared,
if (op == midgard_op_atomic_cmpxchg) {
unsigned xchg_val_src = is_image ? 4 : 2;
unsigned xchg_val = nir_src_index(ctx, &instr->src[xchg_val_src]);
emit_explicit_constant(ctx, xchg_val, xchg_val);
emit_explicit_constant(ctx, xchg_val);
ins.src[2] = val;
ins.src_types[2] = type | bitsize;
@@ -1460,7 +1460,7 @@ emit_image_op(compiler_context *ctx, nir_intrinsic_instr *instr, bool is_atomic)
assert(dim != GLSL_SAMPLER_DIM_MS && "MSAA'd images not supported");
unsigned coord_reg = nir_src_index(ctx, &instr->src[1]);
emit_explicit_constant(ctx, coord_reg, coord_reg);
emit_explicit_constant(ctx, coord_reg);
nir_src *index = &instr->src[0];
bool is_direct = nir_src_is_const(*index);
@@ -1474,7 +1474,7 @@ emit_image_op(compiler_context *ctx, nir_intrinsic_instr *instr, bool is_atomic)
midgard_instruction ins;
if (is_store) { /* emit st_image_* */
unsigned val = nir_src_index(ctx, &instr->src[3]);
emit_explicit_constant(ctx, val, val);
emit_explicit_constant(ctx, val);
nir_alu_type type = nir_intrinsic_src_type(instr);
ins = st_image(type, val, PACK_LDST_ATTRIB_OFS(address));
@@ -1590,7 +1590,7 @@ emit_fragment_store(compiler_context *ctx, unsigned src, unsigned src_z,
assert(!br);
emit_explicit_constant(ctx, src, src);
emit_explicit_constant(ctx, src);
struct midgard_instruction ins = v_branch(false, false);
@@ -1611,13 +1611,13 @@ emit_fragment_store(compiler_context *ctx, unsigned src, unsigned src_z,
ins.swizzle[0][i] = i;
if (~src_z) {
emit_explicit_constant(ctx, src_z, src_z);
emit_explicit_constant(ctx, src_z);
ins.src[2] = src_z;
ins.src_types[2] = nir_type_uint32;
ins.writeout |= PAN_WRITEOUT_Z;
}
if (~src_s) {
emit_explicit_constant(ctx, src_s, src_s);
emit_explicit_constant(ctx, src_s);
ins.src[3] = src_s;
ins.src_types[3] = nir_type_uint32;
ins.writeout |= PAN_WRITEOUT_S;
@@ -1944,7 +1944,7 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr)
* value in r2 for the blend shader to use. */
if (~reg_2) {
if (instr->src[4].is_ssa) {
emit_explicit_constant(ctx, reg_2, reg_2);
emit_explicit_constant(ctx, reg_2);
unsigned out = make_compiler_temp(ctx);
@@ -1969,7 +1969,7 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr)
* swizzle. If this is a constant source, we'll need to
* emit that explicitly. */
emit_explicit_constant(ctx, reg, reg);
emit_explicit_constant(ctx, reg);
offset = nir_intrinsic_base(instr) + nir_src_as_uint(instr->src[1]);
@@ -2037,7 +2037,7 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr)
case nir_intrinsic_store_shared:
case nir_intrinsic_store_scratch:
reg = nir_src_index(ctx, &instr->src[0]);
emit_explicit_constant(ctx, reg, reg);
emit_explicit_constant(ctx, reg);
unsigned seg;
if (instr->intrinsic == nir_intrinsic_store_global)
@@ -2243,7 +2243,7 @@ set_tex_coord(compiler_context *ctx, nir_tex_instr *instr,
unsigned coords = nir_src_index(ctx, &instr->src[coord_idx].src);
emit_explicit_constant(ctx, coords, coords);
emit_explicit_constant(ctx, coords);
ins->src_types[1] = nir_tex_instr_src_type(instr, coord_idx) |
nir_src_bit_size(instr->src[coord_idx].src);
@@ -2314,7 +2314,7 @@ set_tex_coord(compiler_context *ctx, nir_tex_instr *instr,
unsigned sample_or_ref =
nir_src_index(ctx, &instr->src[ms_or_comparator_idx].src);
emit_explicit_constant(ctx, sample_or_ref, sample_or_ref);
emit_explicit_constant(ctx, sample_or_ref);
if (ins->src[1] == ~0)
ins->src[1] = make_compiler_temp_reg(ctx);
@@ -2435,7 +2435,7 @@ emit_texop_native(compiler_context *ctx, nir_tex_instr *instr,
for (unsigned c = 0; c < MIR_VEC_COMPONENTS; ++c)
ins.swizzle[2][c] = COMPONENT_X;
emit_explicit_constant(ctx, index, index);
emit_explicit_constant(ctx, index);
break;
};
@@ -2448,7 +2448,7 @@ emit_texop_native(compiler_context *ctx, nir_tex_instr *instr,
for (unsigned c = 0; c < MIR_VEC_COMPONENTS; ++c)
ins.swizzle[3][c] = (c > COMPONENT_Z) ? 0 : c;
emit_explicit_constant(ctx, index, index);
emit_explicit_constant(ctx, index);
break;
};