[pypy-commit] pypy default: pass jitdriver_sd instead of is_portal to jitcode
fijal
noreply at buildbot.pypy.org
Thu Apr 9 14:08:42 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch:
Changeset: r76755:97dab258e764
Date: 2015-04-09 14:02 +0200
http://bitbucket.org/pypy/pypy/changeset/97dab258e764/
Log: pass jitdriver_sd instead of is_portal to jitcode
diff --git a/rpython/jit/codewriter/call.py b/rpython/jit/codewriter/call.py
--- a/rpython/jit/codewriter/call.py
+++ b/rpython/jit/codewriter/call.py
@@ -143,7 +143,7 @@
def grab_initial_jitcodes(self):
for jd in self.jitdrivers_sd:
jd.mainjitcode = self.get_jitcode(jd.portal_graph)
- jd.mainjitcode.is_portal = True
+ jd.mainjitcode.jitdriver_sd = jd
def enum_pending_graphs(self):
while self.unfinished_graphs:
diff --git a/rpython/jit/codewriter/jitcode.py b/rpython/jit/codewriter/jitcode.py
--- a/rpython/jit/codewriter/jitcode.py
+++ b/rpython/jit/codewriter/jitcode.py
@@ -12,7 +12,7 @@
self.name = name
self.fnaddr = fnaddr
self.calldescr = calldescr
- self.is_portal = False
+ self.jitdriver_sd = None # None for non-portals
self._called_from = called_from # debugging
self._ssarepr = None # debugging
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
@@ -1624,7 +1624,7 @@
def _handle_jitexception(blackholeinterp, exc):
# See comments in _handle_jitexception_in_portal().
- while not blackholeinterp.jitcode.is_portal:
+ while blackholeinterp.jitcode.jitdriver_sd is None:
blackholeinterp.builder.release_interp(blackholeinterp)
blackholeinterp = blackholeinterp.nextblackholeinterp
if blackholeinterp.nextblackholeinterp is None:
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
@@ -1778,7 +1778,7 @@
return self.jitdriver_sd is not None and jitcode is self.jitdriver_sd.mainjitcode
def newframe(self, jitcode, greenkey=None):
- if jitcode.is_portal:
+ if jitcode.jitdriver_sd:
self.portal_call_depth += 1
self.call_ids.append(self.current_call_id)
self.current_call_id += 1
@@ -1796,7 +1796,7 @@
def popframe(self):
frame = self.framestack.pop()
jitcode = frame.jitcode
- if jitcode.is_portal:
+ if jitcode.jitdriver_sd:
self.portal_call_depth -= 1
self.call_ids.pop()
if frame.greenkey is not None and self.is_main_jitcode(jitcode):
@@ -1860,17 +1860,14 @@
portal_call_depth = -1
for frame in self.framestack:
jitcode = frame.jitcode
- assert jitcode.is_portal == len([
- jd for jd in self.staticdata.jitdrivers_sd
- if jd.mainjitcode is jitcode])
- if jitcode.is_portal:
+ if jitcode.jitdriver_sd:
portal_call_depth += 1
if portal_call_depth != self.portal_call_depth:
print "portal_call_depth problem!!!"
print portal_call_depth, self.portal_call_depth
for frame in self.framestack:
jitcode = frame.jitcode
- if jitcode.is_portal:
+ if jitcode.jitdriver_sd:
print "P",
else:
print " ",
diff --git a/rpython/jit/metainterp/test/test_blackhole.py b/rpython/jit/metainterp/test/test_blackhole.py
--- a/rpython/jit/metainterp/test/test_blackhole.py
+++ b/rpython/jit/metainterp/test/test_blackhole.py
@@ -119,7 +119,7 @@
"\x01\x02", # int_return/i
[],
num_regs_i=3, num_regs_r=0, num_regs_f=0)
- jitcode.is_portal = True
+ jitcode.jitdriver_sd = "foo" # not none
pc = 1
registers_i = [history.BoxInt(40), history.ConstInt(2), None]
class MyMetaInterp:
More information about the pypy-commit
mailing list