freedreno/ir3: 'keeps' need neighbors found too
authorRob Clark <robclark@freedesktop.org>
Tue, 11 Aug 2015 20:11:04 +0000 (16:11 -0400)
committerRob Clark <robclark@freedesktop.org>
Wed, 12 Aug 2015 22:37:43 +0000 (18:37 -0400)
This shows up with a glamor shader, which does a TXF and uses the result
for conditional kill.  Before we wouldn't group the fanin (collect)
neighbors which need to be allocated adjacently at RA, resulting in
badness.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3_group.c

index 70d9b08..ca28aef 100644 (file)
@@ -236,6 +236,11 @@ find_neighbors(struct ir3 *ir)
                        instr_find_neighbors(instr);
                }
        }
+
+       for (i = 0; i < ir->keeps_count; i++) {
+               struct ir3_instruction *instr = ir->keeps[i];
+               instr_find_neighbors(instr);
+       }
 }
 
 void