From: Ilia Mirkin Date: Wed, 18 May 2016 00:44:21 +0000 (-0400) Subject: nv50/ir: treat addresses as local X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5c6b8cc7d056e8d78afb6fdbb25a03a665e96fda;p=mesa.git 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 --- 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(