From 5c6b8cc7d056e8d78afb6fdbb25a03a665e96fda Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Tue, 17 May 2016 20:44:21 -0400 Subject: [PATCH] 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 --- src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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( -- 2.11.0