Skip to content

Support List<KernelSignature>

Created by: tnguyen-ornl

Fixed https://github.com/ORNL-QCI/qcor/issues/156

  • Python: parse List type annotation and convert it to a list of function pointers.

  • C++ (syntax handler): when unpacking from Hetmap, parse the type string and convert from void* to KernelSignature and construct the vector.

Notes:

  • Since the KernelSignatures are in a vector, we cannot reliably use the list of kernel arguments to add kernel names to the list of kernels in the translation unit anymore. Instead, add a variadic method to iterate over the parameter pack and set the KernelSignature parent_kernel. We extend KernelSignature to support an operator() w/o an input Composite. In that case, just use the set parent_kernel member instead.

  • Also fixed a bug in PyXASM visitor failed to register for loop variables as internal variables. This is important to select b/w . and :: separators during codegen.

Merge request reports

Loading