OSDN Git Service

freedreno/ir3: small RA cleanup
authorRob Clark <robdclark@gmail.com>
Fri, 10 Aug 2018 18:16:54 +0000 (14:16 -0400)
committerRob Clark <robdclark@gmail.com>
Tue, 14 Aug 2018 21:59:02 +0000 (17:59 -0400)
Collapse is_temp() into it's only callsite, and pass compiler object as
struct rather than void.  Just cleanups to reduce noise in next patch.

Signed-off-by: Rob Clark <robdclark@gmail.com>
src/gallium/drivers/freedreno/ir3/ir3.h
src/gallium/drivers/freedreno/ir3/ir3_ra.c

index 1152ea3..8bac916 100644 (file)
@@ -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);
 
index 83bc375..a1c048c 100644 (file)
@@ -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)