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 9d0ab336c751bbdb3dba76e27c8baca36e46b9ca..2dd13e70d0ee400ee0946a50f5ccd20261921be6 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);