From afcc773d66b0590a796470d51adbdae30add9440 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Tue, 24 Jan 2017 17:00:35 +0100
Subject: [PATCH] Avoid warnings for precomputation temporaries

---
 python/dune/perftool/pdelab/localoperator.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 9cb31a24..271432b5 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -505,8 +505,16 @@ def extract_kernel_from_cache(tag, wrap_in_cgen=True):
     # Precompute all the substrules
     for sr in substrules:
         try:
-            kernel = lp.precompute(kernel, sr.name)
-        except:
+            tmpname = "precompute_{}".format(sr.name)
+            kernel = lp.precompute(kernel,
+                                   sr.name,
+                                   temporary_name=tmpname,
+                                   )
+            # Vectorization strategies are actually very likely to eliminate the
+            # precomputation temporary. To avoid the temporary elimination warning
+            # we need to explicitly disable it.
+            kernel = kernel.copy(silenced_warnings=kernel.silenced_warnings + ["temp_to_write({})".format(tmpname)])
+        except RunTimeError:
             pass
 
     from loopy import make_reduction_inames_unique
-- 
GitLab