Skip to content
Snippets Groups Projects

Object-Oriented CPU JIT API and Prototype Implementation

Merged Frederik Hennig requested to merge fhennig/pybind11-jit into v2.0-dev
@@ -57,6 +57,7 @@ from ..extensions.foreign_ast import PsForeignExpression
@@ -57,6 +57,7 @@ from ..extensions.foreign_ast import PsForeignExpression
from ..memory import PsSymbol
from ..memory import PsSymbol
from ..constants import PsConstant
from ..constants import PsConstant
from ...types import PsType
from ...types import PsType
 
from ...codegen import Target
if TYPE_CHECKING:
if TYPE_CHECKING:
from ...codegen import Kernel
from ...codegen import Kernel
@@ -375,11 +376,16 @@ class BasePrinter(ABC):
@@ -375,11 +376,16 @@ class BasePrinter(ABC):
)
)
def print_signature(self, func: Kernel) -> str:
def print_signature(self, func: Kernel) -> str:
prefix = self._func_prefix
params_str = ", ".join(
params_str = ", ".join(
f"{self._type_str(p.dtype)} {p.name}" for p in func.parameters
f"{self._type_str(p.dtype)} {p.name}" for p in func.parameters
)
)
sig_parts = ([prefix] if prefix is not None else []) + ["void", func.name, f"({params_str})"]
 
from ...codegen import GpuKernel
 
 
sig_parts = [self._func_prefix] if self._func_prefix is not None else []
 
if isinstance(func, GpuKernel) and func.target == Target.CUDA:
 
sig_parts.append("__global__")
 
sig_parts += ["void", func.name, f"({params_str})"]
signature = " ".join(sig_parts)
signature = " ".join(sig_parts)
return signature
return signature