From cc567e7e38fe2eec0d2e061024f8381447eb39d5 Mon Sep 17 00:00:00 2001
From: Matt Wala <wala1@illinois.edu>
Date: Fri, 17 Feb 2017 15:54:12 -0600
Subject: [PATCH] codegen: wrap implemented_domains in a
 LazilyUnpicklingDictionary.

---
 loopy/codegen/__init__.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/loopy/codegen/__init__.py b/loopy/codegen/__init__.py
index 6f312ec79..738def915 100644
--- a/loopy/codegen/__init__.py
+++ b/loopy/codegen/__init__.py
@@ -397,10 +397,13 @@ def generate_code_v2(kernel):
     if CACHING_ENABLED:
         input_kernel = kernel
         try:
+            print("===trying to find kernel")
             result = code_gen_cache[input_kernel]
+            print("===FOUND")
             logger.debug("%s: code generation cache hit" % kernel.name)
             return result
         except KeyError:
+            print("===NOT FOUND")
             pass
 
     # }}}
@@ -506,6 +509,12 @@ def generate_code_v2(kernel):
 
     # }}}
 
+    # For faster unpickling in the common case when implemented_domains isn't needed.
+    from loopy.tools import LazilyUnpicklingDictionary
+    codegen_result = codegen_result.copy(
+            implemented_domains=LazilyUnpicklingDictionary(
+                    codegen_result.implemented_domains))
+
     logger.info("%s: generate code: done" % kernel.name)
 
     if CACHING_ENABLED:
-- 
GitLab