From 27869f69663d094adce81707a7c17c5cdbfe2917 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 4 Nov 2022 23:26:06 -0400 Subject: [PATCH] agx: Add and use replace_src helper From Bifrost. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_compiler.h | 6 ++++++ src/asahi/compiler/agx_optimizer.c | 2 +- src/asahi/compiler/agx_register_allocate.c | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/asahi/compiler/agx_compiler.h b/src/asahi/compiler/agx_compiler.h index 9b0dc59f54c..b0135ac0cbd 100644 --- a/src/asahi/compiler/agx_compiler.h +++ b/src/asahi/compiler/agx_compiler.h @@ -336,6 +336,12 @@ typedef struct { unsigned mask : 4; } agx_instr; +static inline void +agx_replace_src(agx_instr *I, unsigned src_index, agx_index replacement) +{ + I->src[src_index] = agx_replace_index(I->src[src_index], replacement); +} + struct agx_block; typedef struct agx_block { diff --git a/src/asahi/compiler/agx_optimizer.c b/src/asahi/compiler/agx_optimizer.c index b9f612cd948..c3f6f15b337 100644 --- a/src/asahi/compiler/agx_optimizer.c +++ b/src/asahi/compiler/agx_optimizer.c @@ -190,7 +190,7 @@ agx_optimizer_copyprop(agx_instr **defs, agx_instr *I) !(I->op == AGX_OPCODE_DEVICE_LOAD && s == 0)) continue; - I->src[s] = agx_replace_index(src, def->src[0]); + agx_replace_src(I, s, def->src[0]); } } diff --git a/src/asahi/compiler/agx_register_allocate.c b/src/asahi/compiler/agx_register_allocate.c index 0cbd6739f6e..e7ef9f04e8c 100644 --- a/src/asahi/compiler/agx_register_allocate.c +++ b/src/asahi/compiler/agx_register_allocate.c @@ -418,7 +418,7 @@ agx_ra(agx_context *ctx) agx_foreach_instr_global(ctx, ins) { agx_foreach_ssa_src(ins, s) { unsigned v = ssa_to_reg[ins->src[s].value]; - ins->src[s] = agx_replace_index(ins->src[s], agx_register(v, ins->src[s].size)); + agx_replace_src(ins, s, agx_register(v, ins->src[s].size)); } agx_foreach_ssa_dest(ins, d) {