[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