Skip to content

Commit 94adcfc

Browse files
committed
add support for forwarded arguments
1 parent 4084b9e commit 94adcfc

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

pyop2/sequential.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ def _compute(self, part, fun, *arglist):
156156
fun(part.offset, part.offset + part.size, *arglist)
157157

158158

159-
def generate_cell_wrapper(itspace, args, kernel_name=None, wrapper_name=None):
159+
def generate_cell_wrapper(itspace, args, forward_args=(), kernel_name=None, wrapper_name=None):
160160
direct = all(a.map is None for a in args)
161161
snippets = host.wrapper_snippets(itspace, args, kernel_name=kernel_name, wrapper_name=wrapper_name)
162162

@@ -170,7 +170,10 @@ def generate_cell_wrapper(itspace, args, kernel_name=None, wrapper_name=None):
170170
snippets['nlayers_arg'] = ""
171171
snippets['extr_pos_loop'] = ""
172172

173-
template = """static inline void %(wrapper_name)s(%(wrapper_args)s%(const_args)s%(nlayers_arg)s, int cell)
173+
snippets['wrapper_fargs'] = "".join("{1} farg{0}, ".format(i, arg) for i, arg in enumerate(forward_args))
174+
snippets['kernel_fargs'] = "".join("farg{0}, ".format(i) for i in xrange(len(forward_args)))
175+
176+
template = """static inline void %(wrapper_name)s(%(wrapper_fargs)s%(wrapper_args)s%(const_args)s%(nlayers_arg)s, int cell)
174177
{
175178
%(user_code)s
176179
%(wrapper_decs)s;
@@ -186,7 +189,7 @@ def generate_cell_wrapper(itspace, args, kernel_name=None, wrapper_name=None):
186189
%(map_bcs_m)s;
187190
%(buffer_decl)s;
188191
%(buffer_gather)s
189-
%(kernel_name)s(%(kernel_args)s);
192+
%(kernel_name)s(%(kernel_fargs)s%(kernel_args)s);
190193
%(itset_loop_body)s
191194
%(map_bcs_p)s;
192195
}

0 commit comments

Comments
 (0)