diff --git a/doc/reference.rst b/doc/reference.rst index 251d86eb44b01cd851a334f6389736b9fdc81549..fb579a2b560a120f65504c58c15f033d0f42aa82 100644 --- a/doc/reference.rst +++ b/doc/reference.rst @@ -133,6 +133,8 @@ Instructions .. _assignments: +.. autoclass:: UniqueName + Assignments ~~~~~~~~~~~ diff --git a/loopy/__init__.py b/loopy/__init__.py index f5056d123a96fb18aaa230a9ed77edba38032745..439388f4d471eb943cafc73a5ab80ed6472db85c 100644 --- a/loopy/__init__.py +++ b/loopy/__init__.py @@ -59,7 +59,7 @@ from loopy.kernel.tools import ( get_dot_dependency_graph, add_argument_dtypes, add_and_infer_argument_dtypes) -from loopy.kernel.creation import make_kernel +from loopy.kernel.creation import make_kernel, UniqueName from loopy.library.reduction import register_reduction_parser from loopy.subst import extract_subst, expand_subst from loopy.precompute import precompute @@ -86,7 +86,9 @@ __all__ = [ "default_function_mangler", "single_arg_function_mangler", "opencl_function_mangler", "opencl_symbol_mangler", "default_preamble_generator", - "make_kernel", + + "make_kernel", "UniqueName", + "register_reduction_parser", "extract_subst", "expand_subst", diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py index 8fed3bafeaa1963f37e17bc92a06ab6f36ad335c..d1ce500298ef5d7f121af7359fdc72e11375b7f7 100644 --- a/loopy/kernel/__init__.py +++ b/loopy/kernel/__init__.py @@ -178,11 +178,11 @@ class LoopKernel(Record): # {{{ make instruction ids unique - from loopy.kernel.creation import MakeUnique + from loopy.kernel.creation import UniqueName insn_ids = set() for insn in instructions: - if insn.id is not None and not isinstance(insn.id, MakeUnique): + if insn.id is not None and not isinstance(insn.id, UniqueName): if insn.id in insn_ids: raise RuntimeError("duplicate instruction id: %s" % insn.id) insn_ids.add(insn.id) @@ -195,7 +195,7 @@ class LoopKernel(Record): if insn.id is None: new_instructions.append( insn.copy(id=insn_id_gen("insn"))) - elif isinstance(insn.id, MakeUnique): + elif isinstance(insn.id, UniqueName): new_instructions.append( insn.copy(id=insn_id_gen(insn.id.name))) else: diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py index 8a25404a51276c7e39cbc98d6582f230b1cbfbee..d51f788a5c97888f1fc7a8c40a2013e917654933 100644 --- a/loopy/kernel/creation.py +++ b/loopy/kernel/creation.py @@ -47,7 +47,7 @@ def _gather_isl_identifiers(s): return set(_IDENTIFIER_RE.findall(s)) - set(["and", "or", "exists"]) -class MakeUnique: +class UniqueName: """A tag for a string that identifies a partial identifier that is to be made unique by the UI. """ @@ -200,7 +200,7 @@ def parse_insn(insn): if opt_key == "id": insn_id = opt_value elif opt_key == "id_prefix": - insn_id = MakeUnique(opt_value) + insn_id = UniqueName(opt_value) elif opt_key == "priority": priority = int(opt_value) elif opt_key == "dep":