Mesa (master): prog_optimize: Only merge writes to temporary registers
Ian Romanick
idr at kemper.freedesktop.org
Tue Aug 17 22:02:57 UTC 2010
Module: Mesa
Branch: master
Commit: 5a38e70d59eb54aa375fb0f19c824bb74b71486d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a38e70d59eb54aa375fb0f19c824bb74b71486d
Author: Benjamin Segovia <benjamin.segovia at intel.com>
Date: Mon Aug 16 20:40:09 2010 -0700
prog_optimize: Only merge writes to temporary registers
In one optimization pass, register files may have been messed therefore
merging instructions which use the same index in two different register
files.
---
src/mesa/program/prog_optimize.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/src/mesa/program/prog_optimize.c b/src/mesa/program/prog_optimize.c
index ab87875..0dc7790 100644
--- a/src/mesa/program/prog_optimize.c
+++ b/src/mesa/program/prog_optimize.c
@@ -758,7 +758,11 @@ _mesa_remove_extra_moves(struct gl_program *prog)
nesting--;
break;
case OPCODE_MOV:
- if (i > 0 && can_downward_mov_be_modifed(mov) && nesting == 0) {
+ if (i > 0 &&
+ can_downward_mov_be_modifed(mov) &&
+ mov->SrcReg[0].File == PROGRAM_TEMPORARY &&
+ nesting == 0)
+ {
/* see if this MOV can be removed */
const GLuint id = mov->SrcReg[0].Index;
More information about the mesa-commit
mailing list