Mesa (master): freedreno/ir3: fix crash in RA

Rob Clark robclark at kemper.freedesktop.org
Tue Jun 30 16:20:41 UTC 2015


Module: Mesa
Branch: master
Commit: 1370fde8af1b0b5c5e6204c0dea6ebffb85dce0a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1370fde8af1b0b5c5e6204c0dea6ebffb85dce0a

Author: Rob Clark <robclark at freedesktop.org>
Date:   Fri Jun 26 14:32:08 2015 -0400

freedreno/ir3: fix crash in RA

Signed-off-by: Rob Clark <robclark at freedesktop.org>

---

 src/gallium/drivers/freedreno/ir3/ir3_ra.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_ra.c b/src/gallium/drivers/freedreno/ir3/ir3_ra.c
index 0436e01..ee610c7 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_ra.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_ra.c
@@ -403,6 +403,7 @@ get_definer(struct ir3_instruction *instr, int *sz, int *off)
 		 * the phi, so we don't need to chase definers
 		 */
 		struct ir3_register *src;
+		struct ir3_instruction *dd = d;
 
 		/* note: don't use foreach_ssa_src as this gets called once
 		 * while assigning regs (which clears SSA flag)
@@ -410,9 +411,11 @@ get_definer(struct ir3_instruction *instr, int *sz, int *off)
 		foreach_src(src, d) {
 			if (!src->instr)
 				continue;
-			if (src->instr->ip < d->ip)
-				d = src->instr;
+			if (src->instr->ip < dd->ip)
+				dd = src->instr;
 		}
+
+		d = dd;
 	}
 
 	if (is_meta(d) && (d->opc == OPC_META_FO)) {




More information about the mesa-commit mailing list