Author: Ronan Lamy <[email protected]>
Branch: jit-cleanup
Changeset: r96395:5cde9f06eb6a
Date: 2019-04-01 04:39 +0100
http://bitbucket.org/pypy/pypy/changeset/5cde9f06eb6a/

Log:    Remove functionptr, nullptr, BASETYPE from llhelper

diff --git a/rpython/jit/metainterp/blackhole.py 
b/rpython/jit/metainterp/blackhole.py
--- a/rpython/jit/metainterp/blackhole.py
+++ b/rpython/jit/metainterp/blackhole.py
@@ -1622,7 +1622,7 @@
         elif kind == 'i':
             raise jitexc.DoneWithThisFrameInt(self.get_tmpreg_i())
         elif kind == 'r':
-            raise jitexc.DoneWithThisFrameRef(self.cpu, self.get_tmpreg_r())
+            raise jitexc.DoneWithThisFrameRef(self.get_tmpreg_r())
         elif kind == 'f':
             raise jitexc.DoneWithThisFrameFloat(self.get_tmpreg_f())
         else:
@@ -1631,7 +1631,7 @@
     def _exit_frame_with_exception(self, e):
         sd = self.builder.metainterp_sd
         e = lltype.cast_opaque_ptr(llmemory.GCREF, e)
-        raise jitexc.ExitFrameWithExceptionRef(self.cpu, e)
+        raise jitexc.ExitFrameWithExceptionRef(e)
 
     def _handle_jitexception_in_portal(self, e):
         # This case is really rare, but can occur if
diff --git a/rpython/jit/metainterp/compile.py 
b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -654,6 +654,7 @@
 class DoneWithThisFrameDescrInt(_DoneWithThisFrameDescr):
     def get_result(self, cpu, deadframe):
         return cpu.get_int_value(deadframe, 0)
+
     def handle_fail(self, deadframe, metainterp_sd, jitdriver_sd):
         assert jitdriver_sd.result_type == history.INT
         cpu = metainterp_sd.cpu
@@ -662,14 +663,16 @@
 class DoneWithThisFrameDescrRef(_DoneWithThisFrameDescr):
     def get_result(self, cpu, deadframe):
         return cpu.get_ref_value(deadframe, 0)
+
     def handle_fail(self, deadframe, metainterp_sd, jitdriver_sd):
         assert jitdriver_sd.result_type == history.REF
         cpu = metainterp_sd.cpu
-        raise jitexc.DoneWithThisFrameRef(cpu, self.get_result(cpu, deadframe))
+        raise jitexc.DoneWithThisFrameRef(self.get_result(cpu, deadframe))
 
 class DoneWithThisFrameDescrFloat(_DoneWithThisFrameDescr):
     def get_result(self, cpu, deadframe):
         return cpu.get_float_value(deadframe, 0)
+
     def handle_fail(self, deadframe, metainterp_sd, jitdriver_sd):
         assert jitdriver_sd.result_type == history.FLOAT
         cpu = metainterp_sd.cpu
@@ -679,7 +682,7 @@
     def handle_fail(self, deadframe, metainterp_sd, jitdriver_sd):
         cpu = metainterp_sd.cpu
         value = cpu.get_ref_value(deadframe, 0)
-        raise jitexc.ExitFrameWithExceptionRef(cpu, value)
+        raise jitexc.ExitFrameWithExceptionRef(value)
 
 
 def make_and_attach_done_descrs(targets):
@@ -1120,7 +1123,7 @@
         if not exception:
             exception = cast_instance_to_gcref(memory_error)
         assert exception, "PropagateExceptionDescr: no exception??"
-        raise jitexc.ExitFrameWithExceptionRef(cpu, exception)
+        raise jitexc.ExitFrameWithExceptionRef(exception)
 
 def compile_tmp_callback(cpu, jitdriver_sd, greenboxes, redargtypes,
                          memory_manager=None):
diff --git a/rpython/jit/metainterp/jitexc.py b/rpython/jit/metainterp/jitexc.py
--- a/rpython/jit/metainterp/jitexc.py
+++ b/rpython/jit/metainterp/jitexc.py
@@ -1,6 +1,6 @@
 from rpython.rtyper.annlowlevel import cast_instance_to_base_ptr
 from rpython.rtyper.annlowlevel import cast_base_ptr_to_instance
-from rpython.rtyper.lltypesystem import lltype
+from rpython.rtyper.lltypesystem import lltype, llmemory
 from rpython.rtyper import rclass
 from rpython.rtyper.llinterp import LLException
 from rpython.rlib.objectmodel import we_are_translated
@@ -22,13 +22,15 @@
     def __init__(self, result):
         assert lltype.typeOf(result) is lltype.Signed
         self.result = result
+
     def __str__(self):
         return 'DoneWithThisFrameInt(%s)' % (self.result,)
 
 class DoneWithThisFrameRef(JitException):
-    def __init__(self, cpu, result):
-        assert lltype.typeOf(result) == cpu.ts.BASETYPE
+    def __init__(self, result):
+        assert lltype.typeOf(result) == llmemory.GCREF
         self.result = result
+
     def __str__(self):
         return 'DoneWithThisFrameRef(%s)' % (self.result,)
 
@@ -36,13 +38,15 @@
     def __init__(self, result):
         assert lltype.typeOf(result) is longlong.FLOATSTORAGE
         self.result = result
+
     def __str__(self):
         return 'DoneWithThisFrameFloat(%s)' % (self.result,)
 
 class ExitFrameWithExceptionRef(JitException):
-    def __init__(self, cpu, value):
-        assert lltype.typeOf(value) == cpu.ts.BASETYPE
+    def __init__(self, value):
+        assert lltype.typeOf(value) == llmemory.GCREF
         self.value = value
+
     def __str__(self):
         return 'ExitFrameWithExceptionRef(%s)' % (self.value,)
 
diff --git a/rpython/jit/metainterp/pyjitpl.py 
b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -2131,7 +2131,7 @@
             elif result_type == history.INT:
                 raise jitexc.DoneWithThisFrameInt(int(resultbox.getint()))
             elif result_type == history.REF:
-                raise jitexc.DoneWithThisFrameRef(self.cpu, 
resultbox.getref_base())
+                raise jitexc.DoneWithThisFrameRef(resultbox.getref_base())
             elif result_type == history.FLOAT:
                 raise 
jitexc.DoneWithThisFrameFloat(resultbox.getfloatstorage())
             else:
@@ -2165,7 +2165,8 @@
             self.compile_exit_frame_with_exception(self.last_exc_box)
         except SwitchToBlackhole as stb:
             self.aborted_tracing(stb.reason)
-        raise jitexc.ExitFrameWithExceptionRef(self.cpu, 
lltype.cast_opaque_ptr(llmemory.GCREF, excvalue))
+        raise jitexc.ExitFrameWithExceptionRef(
+            lltype.cast_opaque_ptr(llmemory.GCREF, excvalue))
 
     def check_recursion_invariant(self):
         portal_call_depth = -1
@@ -2632,16 +2633,24 @@
         num_green_args = self.jitdriver_sd.num_green_args
         num_red_args = self.jitdriver_sd.num_red_args
         for box in live_arg_boxes[num_green_args:num_green_args+num_red_args]:
-            if   box.type == history.INT: args.append(box.getint())
-            elif box.type == history.REF: args.append(box.getref_base())
-            elif box.type == history.FLOAT: args.append(box.getfloatstorage())
-            else: assert 0
+            if box.type == history.INT:
+                args.append(box.getint())
+            elif box.type == history.REF:
+                args.append(box.getref_base())
+            elif box.type == history.FLOAT:
+                args.append(box.getfloatstorage())
+            else:
+                assert 0
         res = self.jitdriver_sd.warmstate.execute_assembler(loop_token, *args)
         kind = history.getkind(lltype.typeOf(res))
-        if kind == 'void':  raise jitexc.DoneWithThisFrameVoid()
-        if kind == 'int':   raise jitexc.DoneWithThisFrameInt(res)
-        if kind == 'ref':   raise jitexc.DoneWithThisFrameRef(self.cpu, res)
-        if kind == 'float': raise jitexc.DoneWithThisFrameFloat(res)
+        if kind == 'void':
+            raise jitexc.DoneWithThisFrameVoid()
+        if kind == 'int':
+            raise jitexc.DoneWithThisFrameInt(res)
+        if kind == 'ref':
+            raise jitexc.DoneWithThisFrameRef(res)
+        if kind == 'float':
+            raise jitexc.DoneWithThisFrameFloat(res)
         raise AssertionError(kind)
 
     def prepare_resume_from_failure(self, deadframe, inputargs, resumedescr):
diff --git a/rpython/jit/metainterp/test/test_warmspot.py 
b/rpython/jit/metainterp/test/test_warmspot.py
--- a/rpython/jit/metainterp/test/test_warmspot.py
+++ b/rpython/jit/metainterp/test/test_warmspot.py
@@ -601,7 +601,6 @@
                     exc = lltype.malloc(OBJECT)
                     exc.typeptr = exc_vtable
                     raise jitexc.ExitFrameWithExceptionRef(
-                        metainterp_sd.cpu,
                         lltype.cast_opaque_ptr(llmemory.GCREF, exc))
                 assert 0
 
diff --git a/rpython/jit/metainterp/typesystem.py 
b/rpython/jit/metainterp/typesystem.py
--- a/rpython/jit/metainterp/typesystem.py
+++ b/rpython/jit/metainterp/typesystem.py
@@ -29,10 +29,7 @@
 class LLTypeHelper(TypeSystemHelper):
 
     name = 'lltype'
-    functionptr = staticmethod(lltype.functionptr)
-    nullptr = staticmethod(lltype.nullptr)
     cast_instance_to_base_ref = staticmethod(cast_instance_to_base_ptr)
-    BASETYPE = llmemory.GCREF
     loops_done_with_this_frame_ref = None # patched by compile.py
 
     def get_typeptr(self, obj):
diff --git a/rpython/jit/metainterp/warmspot.py 
b/rpython/jit/metainterp/warmspot.py
--- a/rpython/jit/metainterp/warmspot.py
+++ b/rpython/jit/metainterp/warmspot.py
@@ -909,8 +909,8 @@
         #
         from rpython.jit.metainterp.warmstate import specialize_value
         from rpython.jit.metainterp.warmstate import unspecialize_value
-        portal_ptr = self.cpu.ts.functionptr(PORTALFUNC, 'portal',
-                                         graph=portalgraph)
+        portal_ptr = lltype.functionptr(
+            PORTALFUNC, 'portal', graph=portalgraph)
         jd._portal_ptr = portal_ptr
         #
         portalfunc_ARGS = []
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to