From: Tom Stellard Date: Sat, 19 Jun 2010 03:42:33 +0000 (-0700) Subject: r300/compiler: Don't continue copy propagation inside loops. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0dbdcb43215c13dd7d7f83c1f1cdbfe6706109f0;p=mesa.git r300/compiler: Don't continue copy propagation inside loops. --- diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c index e760b59bd41..eca06515367 100644 --- a/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c +++ b/src/mesa/drivers/dri/r300/compiler/radeon_optimize.c @@ -162,6 +162,11 @@ static void peephole(struct radeon_compiler * c, struct rc_instruction * inst_mo for(struct rc_instruction * inst = inst_mov->Next; inst != &c->Program.Instructions; inst = inst->Next) { + /* XXX In the future we might be able to make the optimizer + * smart enough to handle loops. */ + if(inst->U.I.Opcode == RC_OPCODE_BGNLOOP){ + return; + } rc_for_all_reads_mask(inst, peephole_scan_read, &s); rc_for_all_writes_mask(inst, peephole_scan_write, &s); if (s.Conflict)