[Mesa-dev] [PATCH] nv50/ir: allow load propagation when flags are defined
Ilia Mirkin
imirkin at alum.mit.edu
Sat May 3 11:40:43 PDT 2014
The old condition disallowed load propagation any time flags were
defined, even with e.g. set and a constbuf reference. The new condition
disallows it only with immediate propagation. (There are no opcodes that
set the condition flag and have an immediate argument.)
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp
index 0b2f27a..32ba5c8 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp
@@ -275,9 +275,10 @@ TargetNV50::insnCanLoad(const Instruction *i, int s,
return false;
// NOTE: don't rely on flagsDef
- for (int d = 0; i->defExists(d); ++d)
- if (i->def(d).getFile() == FILE_FLAGS)
- return false;
+ if (sf == FILE_IMMEDIATE)
+ for (int d = 0; i->defExists(d); ++d)
+ if (i->def(d).getFile() == FILE_FLAGS)
+ return false;
unsigned mode = 0;
--
1.8.3.2
More information about the mesa-dev
mailing list