[pypy-svn] r31495 - in pypy/dist/pypy: jit/timeshifter rpython
arigo at codespeak.net
arigo at codespeak.net
Tue Aug 22 18:42:36 CEST 2006
Author: arigo
Date: Tue Aug 22 18:42:29 2006
New Revision: 31495
Modified:
pypy/dist/pypy/jit/timeshifter/rcontainer.py
pypy/dist/pypy/jit/timeshifter/rtimeshift.py
pypy/dist/pypy/rpython/rgenop.py
Log:
(pedronis, arigo)
Kill VARLIST. No reason at all for it, plain lists work.
Modified: pypy/dist/pypy/jit/timeshifter/rcontainer.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/rcontainer.py (original)
+++ pypy/dist/pypy/jit/timeshifter/rcontainer.py Tue Aug 22 18:42:29 2006
@@ -143,14 +143,12 @@
gv_sub = genvar
genop = builder.genop
for i in range(len(self.accessptrtype_gv)-1):
- op_args = lltype.malloc(rgenop.VARLIST.TO, 2)
- op_args[0] = gv_sub
- op_args[1] = self.fieldname_gv[i]
+ op_args = [gv_sub,
+ self.fieldname_gv[i]]
gv_sub = genop('getsubstruct', op_args, self.accessptrtype_gv[i+1])
- op_args = lltype.malloc(rgenop.VARLIST.TO, 3)
- op_args[0] = gv_sub
- op_args[1] = self.fieldname_gv[-1]
- op_args[2] = box.getgenvar(builder)
+ op_args = [gv_sub,
+ self.fieldname_gv[-1],
+ box.getgenvar(builder)]
genop('setfield', op_args, rgenop.gv_Void)
# ____________________________________________________________
@@ -210,14 +208,12 @@
typedesc = self.typedesc
boxes = self.content_boxes
self.content_boxes = None
- op_args = lltype.malloc(rgenop.VARLIST.TO, 1)
- op_args[0] = typedesc.gv_type
+ op_args = [typedesc.gv_type]
genvar = genop('malloc', op_args, typedesc.gv_ptrtype)
# force all the boxes pointing to this VirtualStruct
for box in self.substruct_boxes:
# XXX using getsubstruct would be nicer
- op_args = lltype.malloc(rgenop.VARLIST.TO, 1)
- op_args[0] = genvar
+ op_args = [genvar]
box.genvar = genop('cast_pointer', op_args, box.gv_type)
box.content = None
self.substruct_boxes = None
Modified: pypy/dist/pypy/jit/timeshifter/rtimeshift.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/rtimeshift.py (original)
+++ pypy/dist/pypy/jit/timeshifter/rtimeshift.py Tue Aug 22 18:42:29 2006
@@ -61,8 +61,7 @@
arg = rvalue.ll_getvalue(argbox, ARG0)
res = opdesc.llop(RESULT, arg)
return rvalue.ll_fromvalue(res)
- op_args = lltype.malloc(rgenop.VARLIST.TO, 1)
- op_args[0] = argbox.getgenvar(jitstate.curbuilder)
+ op_args = [argbox.getgenvar(jitstate.curbuilder)]
genvar = jitstate.curbuilder.genop(opdesc.opname, op_args,
opdesc.gv_RESULT)
return opdesc.redboxcls(opdesc.gv_RESULT, genvar)
@@ -78,9 +77,8 @@
arg1 = rvalue.ll_getvalue(argbox1, ARG1)
res = opdesc.llop(RESULT, arg0, arg1)
return rvalue.ll_fromvalue(res)
- op_args = lltype.malloc(rgenop.VARLIST.TO, 2)
- op_args[0] = argbox0.getgenvar(jitstate.curbuilder)
- op_args[1] = argbox1.getgenvar(jitstate.curbuilder)
+ op_args = [argbox0.getgenvar(jitstate.curbuilder),
+ argbox1.getgenvar(jitstate.curbuilder)]
genvar = jitstate.curbuilder.genop(opdesc.opname, op_args,
opdesc.gv_RESULT)
return opdesc.redboxcls(opdesc.gv_RESULT, genvar)
@@ -92,9 +90,8 @@
return rvalue.ll_fromvalue(res)
assert isinstance(argbox, rvalue.PtrRedBox)
if argbox.content is None:
- op_args = lltype.malloc(rgenop.VARLIST.TO, 2)
- op_args[0] = argbox.getgenvar(jitstate.curbuilder)
- op_args[1] = fielddesc.fieldname_gv[-1]
+ op_args = [argbox.getgenvar(jitstate.curbuilder),
+ fielddesc.fieldname_gv[-1]]
genvar = jitstate.curbuilder.genop('getfield', op_args,
fielddesc.gv_resulttype)
return fielddesc.redboxcls(fielddesc.gv_resulttype, genvar)
@@ -104,10 +101,9 @@
def ll_generate_setfield(jitstate, fielddesc, destbox, valuebox):
assert isinstance(destbox, rvalue.PtrRedBox)
if destbox.content is None:
- op_args = lltype.malloc(rgenop.VARLIST.TO, 3)
- op_args[0] = destbox.getgenvar(jitstate.curbuilder)
- op_args[1] = fielddesc.fieldname_gv[-1]
- op_args[2] = valuebox.getgenvar(jitstate.curbuilder)
+ op_args = [destbox.getgenvar(jitstate.curbuilder),
+ fielddesc.fieldname_gv[-1],
+ valuebox.getgenvar(jitstate.curbuilder)]
jitstate.curbuilder.genop('setfield', op_args,
rgenop.gv_Void)
else:
@@ -120,9 +116,8 @@
return rvalue.ll_fromvalue(res)
assert isinstance(argbox, rvalue.PtrRedBox)
if argbox.content is None:
- op_args = lltype.malloc(rgenop.VARLIST.TO, 2)
- op_args[0] = argbox.getgenvar(jitstate.curbuilder)
- op_args[1] = fielddesc.gv_fieldname
+ op_args = [argbox.getgenvar(jitstate.curbuilder),
+ fielddesc.gv_fieldname]
genvar = jitstate.curbuilder.genop('getsubstruct', op_args,
fielddesc.gv_resulttype)
return fielddesc.redboxcls(fielddesc.gv_resulttype, genvar)
@@ -135,9 +130,8 @@
array = rvalue.ll_getvalue(argbox, fielddesc.PTRTYPE)
res = array[rvalue.ll_getvalue(indexbox, lltype.Signed)]
return rvalue.ll_fromvalue(res)
- op_args = lltype.malloc(rgenop.VARLIST.TO, 2)
- op_args[0] = argbox.getgenvar(jitstate.curbuilder)
- op_args[1] = indexbox.getgenvar(jitstate.curbuilder)
+ op_args = [argbox.getgenvar(jitstate.curbuilder),
+ indexbox.getgenvar(jitstate.curbuilder)]
genvar = jitstate.curbuilder.genop('getarrayitem', op_args,
fielddesc.gv_resulttype)
return fielddesc.redboxcls(fielddesc.gv_resulttype, genvar)
@@ -254,8 +248,6 @@
jitstate.split_queue.append((exitindex, later_builder, redboxcopies))
return True
-novars = lltype.malloc(rgenop.VARLIST.TO, 0)
-
def dispatch_next(jitstate, outredboxes):
split_queue = jitstate.split_queue
if split_queue:
Modified: pypy/dist/pypy/rpython/rgenop.py
==============================================================================
--- pypy/dist/pypy/rpython/rgenop.py (original)
+++ pypy/dist/pypy/rpython/rgenop.py Tue Aug 22 18:42:29 2006
@@ -52,17 +52,18 @@
res.append(v)
return res
-# is opname a runtime value?
-def genop(blockcontainer, opname, vars, resulttype):
+def genop(blockcontainer, opname, vars_gv, gv_RESULT_TYPE):
+ # 'opname' is a constant string
+ # gv_RESULT_TYPE comes from constTYPE
if not isinstance(opname, str):
opname = LLSupport.from_rstr(opname)
block = from_opaque_object(blockcontainer.obj)
assert block.exits == [], "block already closed"
- if isinstance(resulttype, lltype.LowLevelType):
- RESULT_TYPE = resulttype
+ if isinstance(gv_RESULT_TYPE, lltype.LowLevelType):
+ RESULT_TYPE = gv_RESULT_TYPE
else:
- RESULT_TYPE = from_opaque_object(resulttype).value
- opvars = _inputvars(vars)
+ RESULT_TYPE = from_opaque_object(gv_RESULT_TYPE).value
+ opvars = _inputvars(vars_gv)
v = flowmodel.Variable()
v.concretetype = RESULT_TYPE
op = flowmodel.SpaceOperation(opname, opvars, v)
@@ -245,19 +246,6 @@
nulllink = lltype.nullptr(LINK.TO)
gv_Void = constTYPE(lltype.Void)
-# VARLIST
-def ll_fixed_items(l):
- return l
-
-def ll_fixed_length(l):
- return len(l)
-
-VARLIST = lltype.Ptr(lltype.GcArray(CONSTORVAR,
- adtmeths = {
- "ll_items": ll_fixed_items,
- "ll_length": ll_fixed_length
- }))
-
# helpers
def setannotation(func, annotation, specialize_as_constant=False):
More information about the Pypy-commit
mailing list