From a870d75a935f7ea751dc0bc85e1a3790eb3e1cea Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Tue, 6 Dec 2016 11:19:34 +0100
Subject: [PATCH] Make opcounting work withou volume integrals present

---
 python/dune/perftool/pdelab/localoperator.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 98232579..bab76141 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -9,6 +9,7 @@ from dune.perftool.generation import (backend,
                                       constructor_parameter,
                                       domain,
                                       dump_accumulate_timer,
+                                      generator_factory,
                                       get_backend,
                                       get_global_context_value,
                                       global_context,
@@ -569,12 +570,19 @@ def name_time_dumper_exec():
     return "exec"
 
 
+@generator_factory(item_tags=("cached",), cache_key_generator=lambda **kw: None)
+def name_example_kernel(name=None):
+    return name
+
+
 class TimerMethod(ClassMember):
     def __init__(self):
         os = name_time_dumper_os()
         reset = name_time_dumper_reset()
         t = name_time_dumper_t()
         ex = name_time_dumper_exec()
+        knl = name_example_kernel()
+        assert(knl is not None)
 
         # TODO: operator counting only works if alpha_volume_kernel exists
         content = ["template <typename Stream>",
@@ -582,7 +590,7 @@ class TimerMethod(ClassMember):
                    "{",
                    "  double {} = 0.0;".format(t),
                    "#ifdef ENABLE_COUNTER",
-                   "  auto counter = HP_TIMER_OPCOUNTERS(alpha_volume_kernel);",
+                   "  auto counter = HP_TIMER_OPCOUNTERS({});".format(knl),
                    "  counter.reset();",
                    "#endif",
                    ""]
@@ -617,6 +625,7 @@ class LoopyKernelMethod(ClassMember):
             # Start timer
             if add_timings and get_option('timer'):
                 timer_name = assembler_routine_name() + '_kernel'
+                name_example_kernel(name=timer_name)
                 post_include('HP_DECLARE_TIMER({});'.format(timer_name), filetag='operatorfile')
                 content.append('  ' + 'HP_TIMER_START({});'.format(timer_name))
                 dump_accumulate_timer(timer_name)
-- 
GitLab