From 78ec206c07783697a68acb9dc5ece3d341a223df Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 2 Nov 2011 17:16:37 -0400 Subject: [PATCH] Change mechanism for specifying default tag in CSEs/prefetches. --- loopy/__init__.py | 4 ++-- loopy/cse.py | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/loopy/__init__.py b/loopy/__init__.py index ba05ddff4..6d64589c8 100644 --- a/loopy/__init__.py +++ b/loopy/__init__.py @@ -418,7 +418,7 @@ def tag_dimensions(kernel, iname_to_tag, force=False): # {{{ convenience: add_prefetch -def add_prefetch(kernel, var_name, fetch_dims=[], new_inames=None): +def add_prefetch(kernel, var_name, fetch_dims=[], new_inames=None, default_tag="l.auto"): used_cse_tags = set() def map_cse(expr, rec): used_cse_tags.add(expr.tag) @@ -447,7 +447,7 @@ def add_prefetch(kernel, var_name, fetch_dims=[], new_inames=None): for cse_tag in new_cse_tags: kernel = realize_cse(kernel, cse_tag, dtype, fetch_dims, - new_inames=new_inames) + new_inames=new_inames, default_tag=default_tag) return kernel diff --git a/loopy/cse.py b/loopy/cse.py index ee29ef9c9..14980b823 100644 --- a/loopy/cse.py +++ b/loopy/cse.py @@ -333,7 +333,7 @@ def make_compute_insn(kernel, lead_csed, target_var_name, target_var_is_local, def realize_cse(kernel, cse_tag, dtype, independent_inames=[], - ind_iname_to_tag={}, new_inames=None, default_tag_class=AutoFitLocalIndexTag, + ind_iname_to_tag={}, new_inames=None, default_tag="l.auto", follow_tag=None): """ :arg independent_inames: which inames are supposed to be separate loops @@ -352,8 +352,10 @@ def realize_cse(kernel, cse_tag, dtype, independent_inames=[], ind_iname_to_tag = ind_iname_to_tag.copy() + from loopy.kernel import parse_tag + default_tag = parse_tag(default_tag) for iname in independent_inames: - ind_iname_to_tag.setdefault(iname, default_tag_class()) + ind_iname_to_tag.setdefault(iname, default_tag) if not set(ind_iname_to_tag.iterkeys()) <= set(independent_inames): raise RuntimeError("tags for non-new inames may not be passed") -- GitLab