[pypy-commit] pypy no-release-gil: Port c7cebe44256d: add rgc.no_release_gil to places that may access the
arigo
noreply at buildbot.pypy.org
Fri Aug 30 11:52:33 CEST 2013
Author: Armin Rigo <arigo at tunes.org>
Branch: no-release-gil
Changeset: r66448:c80c1d567172
Date: 2013-08-30 09:20 +0100
http://bitbucket.org/pypy/pypy/changeset/c80c1d567172/
Log: Port c7cebe44256d: add rgc.no_release_gil to places that may access
the prebuilt assembler object
diff --git a/rpython/jit/backend/arm/assembler.py b/rpython/jit/backend/arm/assembler.py
--- a/rpython/jit/backend/arm/assembler.py
+++ b/rpython/jit/backend/arm/assembler.py
@@ -29,6 +29,7 @@
from rpython.rtyper.annlowlevel import llhelper, cast_instance_to_gcref
from rpython.rtyper.lltypesystem import lltype, rffi
from rpython.jit.backend.arm import callbuilder
+from rpython.rtyper.lltypesystem.lloperation import llop
class AssemblerARM(ResOpAssembler):
@@ -1488,7 +1489,9 @@
def not_implemented(msg):
- os.write(2, '[ARM/asm] %s\n' % msg)
+ msg = '[ARM/asm] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
diff --git a/rpython/jit/backend/llsupport/regalloc.py b/rpython/jit/backend/llsupport/regalloc.py
--- a/rpython/jit/backend/llsupport/regalloc.py
+++ b/rpython/jit/backend/llsupport/regalloc.py
@@ -2,6 +2,8 @@
from rpython.jit.metainterp.history import Const, Box, REF, JitCellToken
from rpython.rlib.objectmodel import we_are_translated, specialize
from rpython.jit.metainterp.resoperation import rop
+from rpython.rtyper.lltypesystem import lltype
+from rpython.rtyper.lltypesystem.lloperation import llop
try:
from collections import OrderedDict
@@ -753,5 +755,7 @@
def not_implemented(msg):
- os.write(2, '[llsupport/regalloc] %s\n' % msg)
+ msg = '[llsupport/regalloc] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -434,6 +434,7 @@
else:
self.wb_slowpath[withcards + 2 * withfloats] = rawstart
+ @rgc.no_release_gil
def assemble_loop(self, logger, loopname, inputargs, operations, looptoken,
log):
'''adds the following attributes to looptoken:
@@ -513,6 +514,7 @@
return AsmInfo(ops_offset, rawstart + looppos,
size_excluding_failure_stuff - looppos)
+ @rgc.no_release_gil
def assemble_bridge(self, logger, faildescr, inputargs, operations,
original_loop_token, log):
if not we_are_translated():
@@ -2388,7 +2390,9 @@
return AddressLoc(ImmedLoc(addr), imm0, 0, 0)
def not_implemented(msg):
- os.write(2, '[x86/asm] %s\n' % msg)
+ msg = '[x86/asm] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
cond_call_register_arguments = [edi, esi, edx, ecx]
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -28,6 +28,7 @@
from rpython.rlib.rarithmetic import r_longlong, r_uint
from rpython.rtyper.annlowlevel import cast_instance_to_gcref
from rpython.rtyper.lltypesystem import lltype, rffi, rstr
+from rpython.rtyper.lltypesystem.lloperation import llop
class X86RegisterManager(RegisterManager):
@@ -1375,7 +1376,9 @@
return base_ofs + WORD * (position + JITFRAME_FIXED_SIZE)
def not_implemented(msg):
- os.write(2, '[x86/regalloc] %s\n' % msg)
+ msg = '[x86/regalloc] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
# xxx hack: set a default value for TargetToken._ll_loop_code.
diff --git a/rpython/jit/backend/x86/runner.py b/rpython/jit/backend/x86/runner.py
--- a/rpython/jit/backend/x86/runner.py
+++ b/rpython/jit/backend/x86/runner.py
@@ -1,6 +1,7 @@
import py
from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
from rpython.rlib.jit_hooks import LOOP_RUN_CONTAINER
+from rpython.rlib import rgc
from rpython.jit.backend.x86.assembler import Assembler386
from rpython.jit.backend.x86.regalloc import gpr_reg_mgr_cls, xmm_reg_mgr_cls
from rpython.jit.backend.x86.profagent import ProfileAgent
@@ -63,10 +64,12 @@
assert self.assembler is not None
return RegAlloc(self.assembler, False)
+ @rgc.no_release_gil
def setup_once(self):
self.profile_agent.startup()
self.assembler.setup_once()
+ @rgc.no_release_gil
def finish_once(self):
self.assembler.finish_once()
self.profile_agent.shutdown()
More information about the pypy-commit
mailing list