[pypy-svn] r74547 - in pypy/branch/blackhole-improvement/pypy/jit: backend backend/llgraph codewriter
arigo at codespeak.net
arigo at codespeak.net
Tue May 18 18:53:10 CEST 2010
Author: arigo
Date: Tue May 18 18:53:09 2010
New Revision: 74547
Modified:
pypy/branch/blackhole-improvement/pypy/jit/backend/llgraph/runner.py
pypy/branch/blackhole-improvement/pypy/jit/backend/model.py
pypy/branch/blackhole-improvement/pypy/jit/codewriter/jtransform.py
Log:
Minor fixes.
Modified: pypy/branch/blackhole-improvement/pypy/jit/backend/llgraph/runner.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/backend/llgraph/runner.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/backend/llgraph/runner.py Tue May 18 18:53:09 2010
@@ -21,17 +21,13 @@
pass
-NO_VTABLE = lltype.nullptr(rclass.CLASSTYPE.TO)
-
class Descr(history.AbstractDescr):
- def __init__(self, ofs, typeinfo, extrainfo=None, name=None,
- vtable=NO_VTABLE):
+ def __init__(self, ofs, typeinfo, extrainfo=None, name=None):
self.ofs = ofs
self.typeinfo = typeinfo
self.extrainfo = extrainfo
self.name = name
- self.vtable = vtable
def get_return_type(self):
return self.typeinfo
@@ -102,13 +98,12 @@
assert self.translate_support_code
return False
- def getdescr(self, ofs, typeinfo='?', extrainfo=None, name=None,
- vtable=NO_VTABLE):
- key = (ofs, typeinfo, extrainfo, name, vtable._obj)
+ def getdescr(self, ofs, typeinfo='?', extrainfo=None, name=None):
+ key = (ofs, typeinfo, extrainfo, name)
try:
return self._descrs[key]
except KeyError:
- descr = Descr(ofs, typeinfo, extrainfo, name, vtable)
+ descr = Descr(ofs, typeinfo, extrainfo, name)
self._descrs[key] = descr
return descr
@@ -262,12 +257,9 @@
# ----------
- def sizeof(self, S, vtable=None):
+ def sizeof(self, S):
assert not isinstance(S, lltype.Ptr)
- if vtable is None:
- return self.getdescr(symbolic.get_size(S))
- else:
- return self.getdescr(symbolic.get_size(S), vtable=vtable)
+ return self.getdescr(symbolic.get_size(S))
class LLtypeCPU(BaseCPU):
Modified: pypy/branch/blackhole-improvement/pypy/jit/backend/model.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/backend/model.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/backend/model.py Tue May 18 18:53:09 2010
@@ -121,7 +121,7 @@
raise NotImplementedError
@staticmethod
- def sizeof(S, vtable=None):
+ def sizeof(S):
raise NotImplementedError
@staticmethod
Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/jtransform.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/jtransform.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/jtransform.py Tue May 18 18:53:09 2010
@@ -33,9 +33,17 @@
if block.operations == ():
return
renamings = {}
+ renamings_constants = {} # subset of 'renamings', {Var:Const} only
newoperations = []
#
+ def do_rename(var, var_or_const):
+ renamings[var] = var_or_const
+ if isinstance(var_or_const, Constant):
+ renamings_constants[var] = var_or_const
+ #
for op in block.operations:
+ if renamings_constants:
+ op = self._do_renaming(renamings_constants, op)
oplist = self.rewrite_operation(op)
#
count_before_last_operation = len(newoperations)
@@ -48,10 +56,10 @@
# rewrite_operation() returns None to mean "has no real
# effect, the result should just be renamed to args[0]"
if op.result is not None:
- renamings[op.result] = renamings.get(op.args[0],
- op.args[0])
+ do_rename(op.result, renamings.get(op.args[0],
+ op.args[0]))
elif isinstance(op1, Constant):
- renamings[op.result] = op1
+ do_rename(op.result, op1)
else:
raise TypeError(repr(op1))
#
More information about the Pypy-commit
mailing list