From 5c6c33cf747912421d09ff18f62a4542ce0977b8 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Fri, 31 Mar 2017 13:02:54 +0200
Subject: [PATCH] Remove find_sumfact logic

---
 python/dune/perftool/sumfact/sumfact.py       |  1 -
 python/dune/perftool/sumfact/vectorization.py | 34 ++-----------------
 2 files changed, 3 insertions(+), 32 deletions(-)

diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py
index 3bf4668c..50ac3c02 100644
--- a/python/dune/perftool/sumfact/sumfact.py
+++ b/python/dune/perftool/sumfact/sumfact.py
@@ -62,7 +62,6 @@ from pymbolic.primitives import (Call,
                                  Variable,
                                  )
 from dune.perftool.sumfact.quadrature import quadrature_inames
-from dune.perftool.sumfact.vectorization import find_sumfact
 from loopy.symbolic import FunctionIdentifier, IdentityMapper
 from dune.perftool.sumfact.permutation import (_sf_permutation_strategy,
                                                _permute_backward,
diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py
index a2cd8ebb..7c3cfdd8 100644
--- a/python/dune/perftool/sumfact/vectorization.py
+++ b/python/dune/perftool/sumfact/vectorization.py
@@ -21,7 +21,8 @@ def _cache_vectorization_info(old, new):
     return new
 
 
-_collect_sumfact_nodes = generator_factory(item_tags=("sumfactnodes", "dryrundata"), no_deco=True)
+_collect_sumfact_nodes = generator_factory(item_tags=("sumfactnodes", "dryrundata"), context_tags="kernel", no_deco=True)
+
 
 def attach_vectorization_info(sf):
     assert isinstance(sf, SumfactKernel)
@@ -102,13 +103,7 @@ def decide_vectorization_strategy():
     as it is implemented through a post-processing (== loopy transformation) step.
     """
     from dune.perftool.generation import retrieve_cache_items
-    insns = [i for i in retrieve_cache_items("kernel_default and instruction")]
-
-    # Find all sum factorization kernels
-    sumfacts = frozenset()
-    for insn in insns:
-        if isinstance(insn, (lp.Assignment, lp.CallInstruction)):
-            sumfacts = sumfacts.union(find_sumfact(insn.expression))
+    sumfacts = [i for i in retrieve_cache_items("kernel_default and sumfactnodes")]
 
     if not get_option("vectorize_grads"):
         no_vectorization(sumfacts)
@@ -123,26 +118,3 @@ def decide_vectorization_strategy():
         for restriction in it.product(res, res):
             decide_stage_vectorization_strategy(sumfacts, 3, restriction)
 
-
-class HasSumfactMapper(lp.symbolic.CombineMapper):
-    def combine(self, *args):
-        return frozenset().union(*tuple(*args))
-
-    def map_constant(self, expr):
-        return frozenset()
-
-    def map_algebraic_leaf(self, expr):
-        return frozenset()
-
-    def map_loopy_function_identifier(self, expr):
-        return frozenset()
-
-    def map_sumfact_kernel(self, expr):
-        return frozenset({expr})
-
-    def map_tagged_variable(self, expr):
-        return frozenset()
-
-
-def find_sumfact(expr):
-    return HasSumfactMapper()(expr)
-- 
GitLab