summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorIlia Mirkin <imirkin@alum.mit.edu>2016-05-17 20:44:21 -0400
committerIlia Mirkin <imirkin@alum.mit.edu>2016-05-19 20:20:23 -0400
commit5c6b8cc7d056e8d78afb6fdbb25a03a665e96fda (patch)
tree828aea774404f2e8eea8c1239b5b06a19eb7b005 /src/gallium
parent65c2abf6fdd51b0a80a72caa0c52cf3f4578e743 (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 <imirkin@alum.mit.edu>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp2
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(