Ilia Mirkin
2014-May-03 18:40 UTC
[Nouveau] [PATCH] nv50/ir: allow load propagation when flags are defined
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
Seemingly Similar Threads
- [PATCH 1/2] nv50/ir: fix s32 x s32 -> high s32 multiply logic
- [PATCH 1/3] nv50/ir: Add support for MAD short+IMM notation
- [PATCH 1/3] nv50/ir: Add support for MAD short+IMM notation
- [PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers
- [PATCH mesa v2 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers