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