diff options
author | Ilia Mirkin <[email protected]> | 2016-05-17 20:44:21 -0400 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2016-05-19 20:20:23 -0400 |
commit | 5c6b8cc7d056e8d78afb6fdbb25a03a665e96fda (patch) | |
tree | 828aea774404f2e8eea8c1239b5b06a19eb7b005 /src/gallium/drivers | |
parent | 65c2abf6fdd51b0a80a72caa0c52cf3f4578e743 (diff) |
nv50/ir: treat addresses as local
Address registers are always loaded right before use. Don't treat them
as "global", which will cause them to be put into the function's
linkage, and will make the register allocator hold onto that
register until the end of the function.
Signed-off-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index c085e3818ad..345008e23a0 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -1168,7 +1168,7 @@ bool Source::scanDeclaration(const struct tgsi_full_declaration *decl) si = decl->Semantic.Index; } - if (decl->Declaration.Local) { + if (decl->Declaration.Local || decl->Declaration.File == TGSI_FILE_ADDRESS) { for (i = first; i <= last; ++i) { for (c = 0; c < 4; ++c) { locals.insert( |