Browse Source

Cache _globs as well

Yentl Van Tendeloo 7 years ago
parent
commit
f10fb69c2c
2 changed files with 6 additions and 3 deletions
  1. 5 2
      kernel/modelverse_kernel/main.py
  2. 1 1
      wrappers/modelverse_SCCD.py

+ 5 - 2
kernel/modelverse_kernel/main.py

@@ -383,10 +383,13 @@ class ModelverseKernel(object):
 
 
         #print("Reading function: %s" % suggested_name)
         #print("Reading function: %s" % suggested_name)
         (prev, printed), = yield [("CALL_ARGS", [self.print_instruction, (inst, 1)])]
         (prev, printed), = yield [("CALL_ARGS", [self.print_instruction, (inst, 1)])]
-        preamble = "  _globs, = yield [('RD', [kwargs['task_root'], 'globals'])]\n" + \
+        preamble = "  _mvk = kwargs['mvk']\n" + \
                    "  _root = kwargs['task_root']\n" + \
                    "  _root = kwargs['task_root']\n" + \
                    "  _taskname = kwargs['taskname']\n" + \
                    "  _taskname = kwargs['taskname']\n" + \
-                   "  _mvk = kwargs['mvk']\n"
+                   "  _globs = _mvk.jit.cache[_taskname].get('_globs', None)\n" + \
+                   "  if _globs is None:\n" + \
+                   "    _globs, = yield [('RD', [kwargs['task_root'], 'globals'])]\n" + \
+                   "    _mvk.jit.cache[_taskname]['_globs'] = _globs\n"
         printed = preamble + prev + printed
         printed = preamble + prev + printed
         #print("Total printed function: ")
         #print("Total printed function: ")
         if params:
         if params:

+ 1 - 1
wrappers/modelverse_SCCD.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Wed May 23 19:22:08 2018
+Date:   Wed May 23 19:31:09 2018
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server