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