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 anoperator()
w/o an input Composite. In that case, just use the setparent_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.