[pypy-commit] pypy optresult: small fixes
fijal
noreply at buildbot.pypy.org
Wed Jun 3 13:50:42 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r77814:4af0d7e2cd93
Date: 2015-06-03 13:50 +0200
http://bitbucket.org/pypy/pypy/changeset/4af0d7e2cd93/
Log: small fixes
diff --git a/rpython/jit/metainterp/optimizeopt/info.py b/rpython/jit/metainterp/optimizeopt/info.py
--- a/rpython/jit/metainterp/optimizeopt/info.py
+++ b/rpython/jit/metainterp/optimizeopt/info.py
@@ -1,5 +1,5 @@
-from rpython.rlib.objectmodel import specialize
+from rpython.rlib.objectmodel import specialize, we_are_translated
from rpython.jit.metainterp.resoperation import AbstractValue, ResOperation,\
rop
from rpython.jit.metainterp.history import ConstInt, Const
@@ -213,7 +213,15 @@
return self.size != -1
def _force_elements(self, op, optforce, descr):
- xxx
+ self.size = -1
+ for i in range(len(self.buffer.offsets)):
+ # write the value
+ offset = self.buffer.offsets[i]
+ descr = self.buffer.descrs[i]
+ itembox = self.buffer.values[i]
+ op = ResOperation(rop.RAW_STORE,
+ [op, ConstInt(offset), itembox], descr=descr)
+ optforce.emit_operation(op)
def visitor_walk_recursive(self, op, visitor, optimizer):
itemboxes = self.buffer.values
diff --git a/rpython/jit/metainterp/test/test_virtualref.py b/rpython/jit/metainterp/test/test_virtualref.py
--- a/rpython/jit/metainterp/test/test_virtualref.py
+++ b/rpython/jit/metainterp/test/test_virtualref.py
@@ -103,10 +103,10 @@
[guard_op] = [op for op in ops
if op.getopnum() == rop.GUARD_NOT_FORCED]
bxs1 = [box for box in guard_op.getfailargs()
- if str(box._getrepr_()).endswith('.X')]
+ if '.X' in str(box)]
assert len(bxs1) == 1
bxs2 = [box for box in guard_op.getfailargs()
- if str(box._getrepr_()).endswith('JitVirtualRef')]
+ if 'JitVirtualRef' in str(box)]
assert len(bxs2) == 1
JIT_VIRTUAL_REF = self.vrefinfo.JIT_VIRTUAL_REF
FOO = lltype.GcStruct('FOO')
More information about the pypy-commit
mailing list