[pypy-commit] pypy optresult: fix fix fix
fijal
noreply at buildbot.pypy.org
Sun Nov 23 09:09:00 CET 2014
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r74645:fc8a57d8fa92
Date: 2014-11-23 10:08 +0200
http://bitbucket.org/pypy/pypy/changeset/fc8a57d8fa92/
Log: fix fix fix
diff --git a/rpython/jit/metainterp/optimizeopt/heap.py b/rpython/jit/metainterp/optimizeopt/heap.py
--- a/rpython/jit/metainterp/optimizeopt/heap.py
+++ b/rpython/jit/metainterp/optimizeopt/heap.py
@@ -7,7 +7,7 @@
from rpython.jit.metainterp.optimizeopt.optimizer import Optimization, MODE_ARRAY, LEVEL_KNOWNCLASS, REMOVED
from rpython.jit.metainterp.optimizeopt.util import make_dispatcher_method
from rpython.jit.metainterp.optimize import InvalidLoop
-from rpython.jit.metainterp.resoperation import rop, ResOperation
+from rpython.jit.metainterp.resoperation import rop, ResOperation, OpHelpers
from rpython.rlib.objectmodel import we_are_translated
@@ -462,7 +462,7 @@
optimize_GETFIELD_GC_PURE_F = optimize_GETFIELD_GC_PURE_I
def optimize_SETFIELD_GC(self, op):
- opnum = self.optimizer.getfield_pure_for_descr(op.getdescr())
+ opnum = OpHelpers.getfield_pure_for_descr(op.getdescr())
if self.has_pure_result(opnum, [op.getarg(0)],
op.getdescr()):
os.write(2, '[bogus _immutable_field_ declaration: %s]\n' %
@@ -520,7 +520,7 @@
optimize_GETARRAYITEM_GC_PURE_F = optimize_GETARRAYITEM_GC_PURE_I
def optimize_SETARRAYITEM_GC(self, op):
- opnum = self.optimizer.getarrayitem_pure_for_descr(op.getdescr())
+ opnum = OpHelpers.getarrayitem_pure_for_descr(op.getdescr())
if self.has_pure_result(opnum, [op.getarg(0), op.getarg(1)],
op.getdescr()):
os.write(2, '[bogus immutable array declaration: %s]\n' %
diff --git a/rpython/jit/metainterp/optimizeopt/pure.py b/rpython/jit/metainterp/optimizeopt/pure.py
--- a/rpython/jit/metainterp/optimizeopt/pure.py
+++ b/rpython/jit/metainterp/optimizeopt/pure.py
@@ -1,5 +1,5 @@
from rpython.jit.metainterp.optimizeopt.optimizer import Optimization, REMOVED
-from rpython.jit.metainterp.resoperation import rop, ResOperation
+from rpython.jit.metainterp.resoperation import rop, ResOperation, OpHelpers
from rpython.jit.metainterp.optimizeopt.util import (make_dispatcher_method,
args_dict)
@@ -82,7 +82,7 @@
# replace CALL_PURE with just CALL
args = op.getarglist()
- opnum = self.optimizer.call_for_descr(op.getdescr())
+ opnum = OpHelpers.call_for_descr(op.getdescr())
newop = ResOperation(opnum, args, op.getdescr())
self.getvalue(op).box = newop
self.emit_operation(newop)
diff --git a/rpython/jit/metainterp/optimizeopt/rewrite.py b/rpython/jit/metainterp/optimizeopt/rewrite.py
--- a/rpython/jit/metainterp/optimizeopt/rewrite.py
+++ b/rpython/jit/metainterp/optimizeopt/rewrite.py
@@ -8,7 +8,8 @@
from rpython.jit.metainterp.optimizeopt.optimizer import (Optimization, REMOVED,
CONST_0, CONST_1)
from rpython.jit.metainterp.optimizeopt.util import _findall, make_dispatcher_method
-from rpython.jit.metainterp.resoperation import rop, ResOperation, opclasses
+from rpython.jit.metainterp.resoperation import rop, ResOperation, opclasses,\
+ OpHelpers
from rpython.rlib.rarithmetic import highest_bit
import math
@@ -404,7 +405,7 @@
# change the op to be a normal call, from the backend's point of view
# there is no reason to have a separate operation for this
self.loop_invariant_producer[key] = op
- opnum = self.optimizer.call_for_descr(op.getdescr())
+ opnum = OpHelpers.call_for_descr(op.getdescr())
newop = self.optimizer.replace_op_with(op, opnum)
self.emit_operation(newop)
resvalue = self.getvalue(op)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -6,16 +6,16 @@
import rpython.jit.metainterp.optimizeopt.optimizer as optimizeopt
import rpython.jit.metainterp.optimizeopt.virtualize as virtualize
from rpython.jit.metainterp.optimize import InvalidLoop
-from rpython.jit.metainterp.history import ConstInt, BoxInt, get_const_ptr_for_string
+from rpython.jit.metainterp.history import ConstInt, get_const_ptr_for_string
from rpython.jit.metainterp import executor, compile, resume
-from rpython.jit.metainterp.resoperation import rop, ResOperation
+from rpython.jit.metainterp.resoperation import rop, ResOperation, InputArgInt
from rpython.rlib.rarithmetic import LONG_BIT
def test_store_final_boxes_in_guard():
from rpython.jit.metainterp.compile import ResumeGuardDescr
from rpython.jit.metainterp.resume import tag, TAGBOX
- b0 = BoxInt()
- b1 = BoxInt()
+ b0 = InputArgInt()
+ b1 = InputArgInt()
opt = optimizeopt.Optimizer(FakeMetaInterpStaticData(LLtypeMixin.cpu),
None)
fdescr = ResumeGuardDescr()
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -6,20 +6,18 @@
OBJECT, OBJECT_VTABLE, FieldListAccessor, IR_QUASIIMMUTABLE)
from rpython.jit.backend.llgraph import runner
-from rpython.jit.metainterp.history import (BoxInt, BoxPtr, ConstInt, ConstPtr,
- Const, TreeLoop, AbstractDescr,
- JitCellToken, TargetToken)
+from rpython.jit.metainterp.history import (TreeLoop, AbstractDescr,
+ JitCellToken, TargetToken)
from rpython.jit.metainterp.optimizeopt.util import sort_descrs, equaloplists
-from rpython.jit.metainterp.optimize import InvalidLoop
from rpython.jit.codewriter.effectinfo import EffectInfo
-from rpython.jit.codewriter.heaptracker import register_known_gctype, adr2int
+from rpython.jit.codewriter.heaptracker import register_known_gctype
from rpython.jit.tool.oparser import parse, pure_parse
from rpython.jit.metainterp.quasiimmut import QuasiImmutDescr
from rpython.jit.metainterp import compile, resume, history
from rpython.jit.metainterp.jitprof import EmptyProfiler
from rpython.jit.metainterp.counter import DeterministicJitCounter
from rpython.config.translationoption import get_combined_translation_config
-from rpython.jit.metainterp.resoperation import rop, opname, ResOperation
+from rpython.jit.metainterp.resoperation import rop, ResOperation
from rpython.jit.metainterp.optimizeopt.unroll import Inliner
def test_sort_descrs():
@@ -101,11 +99,10 @@
node.parent.typeptr = node_vtable
node2 = lltype.malloc(NODE2)
node2.parent.parent.typeptr = node_vtable2
- nodebox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, node))
- myptr = nodebox.value
+ myptr = lltype.cast_opaque_ptr(llmemory.GCREF, node)
myptr2 = lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(NODE))
nullptr = lltype.nullptr(llmemory.GCREF.TO)
- nodebox2 = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, node2))
+ #nodebox2 = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, node2))
nodesize = cpu.sizeof(NODE)
nodesize2 = cpu.sizeof(NODE2)
valuedescr = cpu.fielddescrof(NODE, 'value')
@@ -123,10 +120,8 @@
quasi = lltype.malloc(QUASI, immortal=True)
quasi.inst_field = -4247
quasifielddescr = cpu.fielddescrof(QUASI, 'inst_field')
- quasibox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, quasi))
- quasiptr = quasibox.value
- quasiimmutdescr = QuasiImmutDescr(cpu, quasibox,
- quasifielddescr,
+ quasiptr = lltype.cast_opaque_ptr(llmemory.GCREF, quasi)
+ quasiimmutdescr = QuasiImmutDescr(cpu, quasiptr, quasifielddescr,
cpu.fielddescrof(QUASI, 'mutate_field'))
NODEOBJ = lltype.GcStruct('NODEOBJ', ('parent', OBJECT),
@@ -159,7 +154,7 @@
ssize = cpu.sizeof(S)
adescr = cpu.fielddescrof(S, 'a')
bdescr = cpu.fielddescrof(S, 'b')
- sbox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(S)))
+ #sbox = BoxPtr(lltype.cast_opaque_ptr(llmemory.GCREF, lltype.malloc(S)))
arraydescr2 = cpu.arraydescrof(lltype.GcArray(lltype.Ptr(S)))
T = lltype.GcStruct('TUPLE',
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
@@ -466,21 +466,24 @@
indexbox, arraydescr)
@arguments("box", "box", "descr")
- def _opimpl_getarrayitem_raw_any(self, arraybox, indexbox, arraydescr):
- return self.execute_with_descr(rop.GETARRAYITEM_RAW,
+ def opimpl_getarrayitem_raw_i(self, arraybox, indexbox, arraydescr):
+ return self.execute_with_descr(rop.GETARRAYITEM_RAW_I,
arraydescr, arraybox, indexbox)
- opimpl_getarrayitem_raw_i = _opimpl_getarrayitem_raw_any
- opimpl_getarrayitem_raw_f = _opimpl_getarrayitem_raw_any
+ @arguments("box", "box", "descr")
+ def opimpl_getarrayitem_raw_f(self, arraybox, indexbox, arraydescr):
+ return self.execute_with_descr(rop.GETARRAYITEM_RAW_F,
+ arraydescr, arraybox, indexbox)
@arguments("box", "box", "descr")
- def _opimpl_getarrayitem_raw_pure_any(self, arraybox, indexbox,
- arraydescr):
- return self.execute_with_descr(rop.GETARRAYITEM_RAW_PURE,
+ def opimpl_getarrayitem_raw_pure_i(self, arraybox, indexbox, arraydescr):
+ return self.execute_with_descr(rop.GETARRAYITEM_RAW_PURE_I,
arraydescr, arraybox, indexbox)
- opimpl_getarrayitem_raw_i_pure = _opimpl_getarrayitem_raw_pure_any
- opimpl_getarrayitem_raw_f_pure = _opimpl_getarrayitem_raw_pure_any
+ @arguments("box", "box", "descr")
+ def opimpl_getarrayitem_raw_pure_f(self, arraybox, indexbox, arraydescr):
+ return self.execute_with_descr(rop.GETARRAYITEM_RAW_PURE_F,
+ arraydescr, arraybox, indexbox)
@arguments("box", "box", "descr")
def opimpl_getarrayitem_gc_i_pure(self, arraybox, indexbox, arraydescr):
diff --git a/rpython/jit/metainterp/quasiimmut.py b/rpython/jit/metainterp/quasiimmut.py
--- a/rpython/jit/metainterp/quasiimmut.py
+++ b/rpython/jit/metainterp/quasiimmut.py
@@ -101,32 +101,23 @@
class QuasiImmutDescr(AbstractDescr):
- structbox = None
-
- def __init__(self, cpu, structbox, fielddescr, mutatefielddescr):
+ def __init__(self, cpu, struct, fielddescr, mutatefielddescr):
self.cpu = cpu
- self.structbox = structbox
+ self.struct = struct
self.fielddescr = fielddescr
self.mutatefielddescr = mutatefielddescr
- gcref = structbox.getref_base()
- self.qmut = get_current_qmut_instance(cpu, gcref, mutatefielddescr)
+ self.qmut = get_current_qmut_instance(cpu, struct, mutatefielddescr)
self.constantfieldbox = self.get_current_constant_fieldvalue()
def get_current_constant_fieldvalue(self):
- from rpython.jit.metainterp import executor
- from rpython.jit.metainterp.resoperation import rop
+ struct = self.struct
+ fielddescr = self.fielddescr
if self.fielddescr.is_pointer_field():
- return ConstPtr(executor.do_getfield_gc_r(self.cpu, None, rop.GETFIELD_GC_R,
- self.fielddescr, self.structbox))
+ return ConstPtr(self.cpu.bh_getfield_gc_r(struct, fielddescr))
elif self.fielddescr.is_float_field():
- return ConstFloat(executor.execute(self.cpu, None,
- rop.GETFIELD_GC_F,
- self.fielddescr, self.structbox))
-
+ return ConstFloat(self.cpu.bh_getfield_gc_f(struct, fielddescr))
else:
- return ConstInt(executor.do_getfield_gc_i(self.cpu, None,
- self.structbox,
- self.fielddescr))
+ return ConstInt(self.cpu.bh_getfield_gc_i(struct, fielddescr))
def is_still_valid_for(self, structconst):
assert self.structbox is not None
diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py
--- a/rpython/jit/metainterp/resume.py
+++ b/rpython/jit/metainterp/resume.py
@@ -1142,9 +1142,9 @@
box = self.consts[num]
elif tag == TAGVIRTUAL:
if kind == INT:
- box = self.getvirtual_int(num)
+ box = InputArgInt(self.getvirtual_int(num))
else:
- box = self.getvirtual_ptr(num)
+ box = InputArgRef(self.getvirtual_ptr(num))
elif tag == TAGINT:
box = ConstInt(num)
else:
More information about the pypy-commit
mailing list