nv50/ir: don't consider the main compute function as taking arguments
authorIlia Mirkin <imirkin@alum.mit.edu>
Fri, 26 Jul 2019 05:18:23 +0000 (01:18 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sat, 27 Jul 2019 22:24:11 +0000 (18:24 -0400)
With OpenCL, kernels can take arguments and return values (?). However
in practice, there is no more TGSI compute implementation, and even if
there were, it would probably have named functions and no explicit main.

This improves RA considerably for compute shaders, since temps are not
kept around as return values.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp

index 9d0ab33..2dd13e7 100644 (file)
@@ -4298,7 +4298,7 @@ Converter::BindArgumentsPass::visit(Function *f)
       }
    }
 
-   if (func == prog->main && prog->getType() != Program::TYPE_COMPUTE)
+   if (func == prog->main /* && prog->getType() != Program::TYPE_COMPUTE */)
       return true;
    updatePrototype(&BasicBlock::get(f->cfg.getRoot())->liveSet,
                    &Function::buildLiveSets, &Function::ins);