diff options
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3.h | 2 | ||||
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3_ra.c | 19 |
2 files changed, 8 insertions, 13 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3.h b/src/gallium/drivers/freedreno/ir3/ir3.h index 1152ea300b1..8bac91660bc 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3.h +++ b/src/gallium/drivers/freedreno/ir3/ir3.h @@ -1004,7 +1004,7 @@ void ir3_sched_add_deps(struct ir3 *ir); int ir3_sched(struct ir3 *ir); /* register assignment: */ -struct ir3_ra_reg_set * ir3_ra_alloc_reg_set(void *memctx); +struct ir3_ra_reg_set * ir3_ra_alloc_reg_set(struct ir3_compiler *compiler); int ir3_ra(struct ir3 *ir3, enum shader_t type, bool frag_coord, bool frag_face); diff --git a/src/gallium/drivers/freedreno/ir3/ir3_ra.c b/src/gallium/drivers/freedreno/ir3/ir3_ra.c index 83bc375aeb5..a1c048c4a15 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_ra.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_ra.c @@ -194,9 +194,9 @@ build_q_values(unsigned int **q_values, unsigned off, * really just four scalar registers. Don't let that confuse you.) */ struct ir3_ra_reg_set * -ir3_ra_alloc_reg_set(void *memctx) +ir3_ra_alloc_reg_set(struct ir3_compiler *compiler) { - struct ir3_ra_reg_set *set = rzalloc(memctx, struct ir3_ra_reg_set); + struct ir3_ra_reg_set *set = rzalloc(compiler, struct ir3_ra_reg_set); unsigned ra_reg_count, reg, first_half_reg, first_high_reg, base; unsigned int **q_values; @@ -365,8 +365,12 @@ size_to_class(unsigned sz, bool half, bool high) } static bool -is_temp(struct ir3_register *reg) +writes_gpr(struct ir3_instruction *instr) { + if (is_store(instr)) + return false; + /* is dest a normal temp register: */ + struct ir3_register *reg = instr->regs[0]; if (reg->flags & (IR3_REG_CONST | IR3_REG_IMMED)) return false; if ((reg->num == regid(REG_A0, 0)) || @@ -376,15 +380,6 @@ is_temp(struct ir3_register *reg) } static bool -writes_gpr(struct ir3_instruction *instr) -{ - if (is_store(instr)) - return false; - /* is dest a normal temp register: */ - return is_temp(instr->regs[0]); -} - -static bool instr_before(struct ir3_instruction *a, struct ir3_instruction *b) { if (a->flags & IR3_INSTR_UNUSED) |