From f16a23aa9d0e352d54e98490eed028fa46a49b22 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Mon, 27 Feb 2023 15:07:34 -0800 Subject: [PATCH] panfrost/midgard: Drop redundant arg to emit_explicit_constant. Every caller passed the same value twice. Just reuse it? Part-of: --- src/panfrost/midgard/midgard_compile.c | 34 +++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index e067d0a5688..1b5f7b009ac 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -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; };