Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r59875:dce88c3d5657
Date: 2013-01-08 18:34 +0200
http://bitbucket.org/pypy/pypy/changeset/dce88c3d5657/

Log:    Kill this hack

diff --git a/pypy/jit/backend/llsupport/llmodel.py 
b/pypy/jit/backend/llsupport/llmodel.py
--- a/pypy/jit/backend/llsupport/llmodel.py
+++ b/pypy/jit/backend/llsupport/llmodel.py
@@ -193,12 +193,6 @@
 
     # ------------------- helpers and descriptions --------------------
 
-    def gc_set_extra_threshold(self):
-        llop.gc_set_extra_threshold(lltype.Void, self.deadframe_size_max)
-
-    def gc_clear_extra_threshold(self):
-        llop.gc_set_extra_threshold(lltype.Void, 0)
-
     @staticmethod
     def _cast_int_to_gcref(x):
         # dangerous!  only use if you are sure no collection could occur
diff --git a/pypy/jit/backend/x86/assembler.py 
b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -1958,7 +1958,7 @@
         return arglocs[:]
 
     @staticmethod
-    #@rgc.no_collect -- XXX still true, but hacked gc_set_extra_threshold
+    @rgc.no_collect
     def grab_frame_values(cpu, bytecode, frame_addr, allregisters):
         # no malloc allowed here!!  xxx apart from one, hacking a lot
         #self.fail_ebp = allregisters[16 + ebp.value]
@@ -1998,7 +1998,6 @@
             # that it is guaranteed that the following malloc() works
             # without requiring a collect(), but it needs to be re-added
             # as soon as possible.
-            cpu.gc_clear_extra_threshold()
             assert num <= cpu.get_failargs_limit()
             try:
                 deadframe = lltype.malloc(jitframe.DEADFRAME, num)
@@ -2088,8 +2087,7 @@
         return lltype.cast_opaque_ptr(llmemory.GCREF, deadframe)
 
     def setup_failure_recovery(self):
-
-        #@rgc.no_collect -- XXX still true, but hacked gc_set_extra_threshold
+        @rgc.no_collect
         def failure_recovery_func(registers):
             # 'registers' is a pointer to a structure containing the
             # original value of the registers, optionally the original
diff --git a/pypy/jit/backend/x86/runner.py b/pypy/jit/backend/x86/runner.py
--- a/pypy/jit/backend/x86/runner.py
+++ b/pypy/jit/backend/x86/runner.py
@@ -45,10 +45,6 @@
 
         self.profile_agent = profile_agent
 
-        from pypy.jit.backend.llsupport import jitframe
-        self.deadframe_size_max = llmemory.sizeof(jitframe.DEADFRAME,
-                                                  self.get_failargs_limit())
-
     def set_debug(self, flag):
         return self.assembler.set_debug(flag)
 
@@ -123,7 +119,6 @@
                 if not self.translate_support_code:
                     LLInterpreter.current_interpreter = prev_interpreter
             #llop.debug_print(lltype.Void, "<<<< Back")
-            self.gc_set_extra_threshold()
             return deadframe
         return execute_token
 
diff --git a/pypy/jit/backend/x86/test/test_assembler.py 
b/pypy/jit/backend/x86/test/test_assembler.py
--- a/pypy/jit/backend/x86/test/test_assembler.py
+++ b/pypy/jit/backend/x86/test/test_assembler.py
@@ -32,9 +32,6 @@
         assert num == 0x1C3
         return FakeFailDescr()
 
-    def gc_clear_extra_threshold(self):
-        pass
-
     def get_failargs_limit(self):
         return 1000
 
diff --git a/pypy/jit/metainterp/warmspot.py b/pypy/jit/metainterp/warmspot.py
--- a/pypy/jit/metainterp/warmspot.py
+++ b/pypy/jit/metainterp/warmspot.py
@@ -959,11 +959,8 @@
             EffectInfo.MOST_GENERAL)
 
         vinfo = jd.virtualizable_info
-        gc_set_extra_threshold = getattr(self.cpu, 'gc_set_extra_threshold',
-                                         lambda: None)
 
         def assembler_call_helper(deadframe, virtualizableref):
-            gc_set_extra_threshold()    # XXX temporary hack
             fail_descr = self.cpu.get_latest_descr(deadframe)
             if vinfo is not None:
                 virtualizable = lltype.cast_opaque_ptr(
diff --git a/pypy/rpython/lltypesystem/lloperation.py 
b/pypy/rpython/lltypesystem/lloperation.py
--- a/pypy/rpython/lltypesystem/lloperation.py
+++ b/pypy/rpython/lltypesystem/lloperation.py
@@ -499,7 +499,6 @@
     'gc_typeids_z'        : LLOp(),
     'gc_gcflag_extra'     : LLOp(),
     'gc_add_memory_pressure': LLOp(),
-    'gc_set_extra_threshold': LLOp(canrun=True, canmallocgc=True),
 
     # ------- JIT & GC interaction, only for some GCs ----------
 
diff --git a/pypy/rpython/lltypesystem/opimpl.py 
b/pypy/rpython/lltypesystem/opimpl.py
--- a/pypy/rpython/lltypesystem/opimpl.py
+++ b/pypy/rpython/lltypesystem/opimpl.py
@@ -644,9 +644,6 @@
 def op_gc_assume_young_pointers(addr):
     pass
 
-def op_gc_set_extra_threshold(threshold):
-    pass
-
 def op_shrink_array(array, smallersize):
     return False
 
diff --git a/pypy/rpython/memory/gc/minimark.py 
b/pypy/rpython/memory/gc/minimark.py
--- a/pypy/rpython/memory/gc/minimark.py
+++ b/pypy/rpython/memory/gc/minimark.py
@@ -1820,20 +1820,6 @@
         return self.id_or_identityhash(gcobj, True)
 
     # ----------
-    # set_extra_threshold support
-
-    def set_extra_threshold(self, reserved_size):
-        ll_assert(reserved_size <= self.nonlarge_max,
-                  "set_extra_threshold: too big!")
-        diff = reserved_size - self.extra_threshold
-        if diff > 0 and self.nursery_free + diff > self.nursery_top:
-            self.minor_collection()
-        self.nursery_size -= diff
-        self.nursery_top -= diff
-        self.extra_threshold += diff
-
-
-    # ----------
     # Finalizers
 
     def deal_with_young_objects_with_finalizers(self):
diff --git a/pypy/rpython/memory/gctransform/framework.py 
b/pypy/rpython/memory/gctransform/framework.py
--- a/pypy/rpython/memory/gctransform/framework.py
+++ b/pypy/rpython/memory/gctransform/framework.py
@@ -385,10 +385,6 @@
             self.obtainfreespace_ptr = getfn(GCClass.obtain_free_space.im_func,
                                              [s_gc, annmodel.SomeInteger()],
                                              annmodel.SomeAddress())
-        if getattr(GCClass, 'set_extra_threshold', False):
-            self.setextrathreshold_ptr = getfn(
-                GCClass.set_extra_threshold.im_func,
-                [s_gc, annmodel.SomeInteger()], annmodel.s_None)
 
         if GCClass.moving_gc:
             self.id_ptr = getfn(GCClass.id.im_func,
@@ -959,13 +955,6 @@
                   resultvar=hop.spaceop.result)
         self.pop_roots(hop, livevars)
 
-    def gct_gc_set_extra_threshold(self, hop):
-        livevars = self.push_roots(hop)
-        [v_size] = hop.spaceop.args
-        hop.genop("direct_call",
-                  [self.setextrathreshold_ptr, self.c_const_gc, v_size])
-        self.pop_roots(hop, livevars)
-
     def gct_gc_set_max_heap_size(self, hop):
         [v_size] = hop.spaceop.args
         hop.genop("direct_call", [self.set_max_heap_size_ptr,
diff --git a/pypy/rpython/memory/gctransform/test/test_framework.py 
b/pypy/rpython/memory/gctransform/test/test_framework.py
--- a/pypy/rpython/memory/gctransform/test/test_framework.py
+++ b/pypy/rpython/memory/gctransform/test/test_framework.py
@@ -97,13 +97,6 @@
     gg = graphof(t, g)
     assert CollectAnalyzer(t).analyze_direct_call(gg)
 
-def test_cancollect_some_operation():
-    def g():
-        llop.gc_set_extra_threshold(lltype.Void, 32)
-    t = rtype(g, [])
-    gg = graphof(t, g)
-    assert CollectAnalyzer(t).analyze_direct_call(gg)
-
 def test_no_collect():
     from pypy.rlib import rgc
     from pypy.translator.c.genc import CStandaloneBuilder
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to