[pypy-svn] r74836 - pypy/branch/blackhole-improvement/pypy/jit/metainterp

arigo at codespeak.net arigo at codespeak.net
Fri May 28 10:46:36 CEST 2010


Author: arigo
Date: Fri May 28 10:46:34 2010
New Revision: 74836

Modified:
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/compile.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/resume.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmstate.py
Log:
Progress, really.


Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/compile.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/compile.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/compile.py	Fri May 28 10:46:34 2010
@@ -262,6 +262,7 @@
         else:
             from pypy.jit.metainterp.blackhole import resume_in_blackhole
             resume_in_blackhole(metainterp_sd, self)
+            assert 0, "unreachable"
 
     def _trace_and_compile_from_bridge(self, metainterp_sd):
         from pypy.jit.metainterp.pyjitpl import MetaInterp

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py	Fri May 28 10:46:34 2010
@@ -1057,7 +1057,6 @@
 # ____________________________________________________________
 
 class MetaInterpStaticData(object):
-    virtualizable_info = None
     logger_noopt = None
     logger_ops = None
 
@@ -1516,11 +1515,11 @@
         self.seen_can_enter_jit = False
         try:
             self.interpret()
-            assert False, "should always raise"
         except GenerateMergePoint, gmp:
             return self.designate_target_loop(gmp)
         except SwitchToBlackhole, stb:
             self.run_blackhole_interp_to_cancel_tracing(stb)
+        assert False, "should always raise"
 
     def handle_guard_failure(self, key):
         debug_start('jit-tracing')
@@ -1544,11 +1543,11 @@
         try:
             self.prepare_resume_from_failure(key.guard_opnum)
             self.interpret()
-            assert False, "should always raise"
         except GenerateMergePoint, gmp:
             return self.designate_target_loop(gmp)
         except SwitchToBlackhole, stb:
             self.run_blackhole_interp_to_cancel_tracing(stb)
+        assert False, "should always raise"
 
     def run_blackhole_interp_to_cancel_tracing(self, stb):
         # We got a SwitchToBlackhole exception.  Convert the framestack into

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/resume.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/resume.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/resume.py	Fri May 28 10:46:34 2010
@@ -793,6 +793,7 @@
         return vinfo.write_from_resume_data_partial(virtualizable, self, nums)
 
     def load_value_of_type(self, TYPE, tagged):
+        from pypy.jit.metainterp.warmstate import specialize_value
         kind = getkind(TYPE)
         if kind == 'int':
             x = self.decode_int(tagged)
@@ -802,7 +803,7 @@
             x = self.decode_float(tagged)
         else:
             raise AssertionError(kind)
-        return lltype._cast_whatever(TYPE, x)
+        return specialize_value(TYPE, x)
     load_value_of_type._annspecialcase_ = 'specialize:arg(1)'
 
     def consume_vref_and_vable(self, vrefinfo, vinfo):

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py	Fri May 28 10:46:34 2010
@@ -169,6 +169,8 @@
             from pypy.jit.metainterp.virtualizable import VirtualizableInfo
             self.virtualizable_info = VirtualizableInfo(self)
             self.codewriter.setup_virtualizable_info(self.virtualizable_info)
+        else:
+            self.virtualizable_info = None
         #
         self.make_exception_classes()
         self.make_driverhook_graphs()

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmstate.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmstate.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmstate.py	Fri May 28 10:46:34 2010
@@ -195,7 +195,7 @@
             return self.maybe_compile_and_run
 
         metainterp_sd = self.warmrunnerdesc.metainterp_sd
-        vinfo = metainterp_sd.virtualizable_info
+        vinfo = self.warmrunnerdesc.virtualizable_info
         num_green_args = self.warmrunnerdesc.num_green_args
         get_jitcell = self.make_jitcell_getter()
         set_future_values = self.make_set_future_values()
@@ -416,7 +416,7 @@
 
         warmrunnerdesc = self.warmrunnerdesc
         cpu = warmrunnerdesc.cpu
-        vinfo = warmrunnerdesc.metainterp_sd.virtualizable_info
+        vinfo = warmrunnerdesc.virtualizable_info
         red_args_types = unrolling_iterable(warmrunnerdesc.red_args_types)
         #
         def set_future_values(*redargs):



More information about the Pypy-commit mailing list