[pypy-commit] pypy optresult: start passing backend tests
fijal
noreply at buildbot.pypy.org
Wed May 27 11:18:39 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r77620:4f11e4ee675c
Date: 2015-05-27 11:05 +0200
http://bitbucket.org/pypy/pypy/changeset/4f11e4ee675c/
Log: start passing backend tests
diff --git a/rpython/jit/backend/llsupport/regalloc.py b/rpython/jit/backend/llsupport/regalloc.py
--- a/rpython/jit/backend/llsupport/regalloc.py
+++ b/rpython/jit/backend/llsupport/regalloc.py
@@ -1,7 +1,7 @@
import os
-from rpython.jit.metainterp.history import Const, Box, REF, JitCellToken
+from rpython.jit.metainterp.history import Const, REF, JitCellToken
from rpython.rlib.objectmodel import we_are_translated, specialize
-from rpython.jit.metainterp.resoperation import rop
+from rpython.jit.metainterp.resoperation import rop, AbstractValue
from rpython.rtyper.lltypesystem import lltype
from rpython.rtyper.lltypesystem.lloperation import llop
@@ -10,7 +10,7 @@
except ImportError:
OrderedDict = dict # too bad
-class TempBox(Box):
+class TempVar(AbstractValue):
def __init__(self):
pass
@@ -304,7 +304,7 @@
def _check_type(self, v):
if not we_are_translated() and self.box_types is not None:
- assert isinstance(v, TempBox) or v.type in self.box_types
+ assert isinstance(v, TempVar) or v.type in self.box_types
def possibly_free_var(self, v):
""" If v is stored in a register and v is not used beyond the
@@ -442,7 +442,7 @@
Will not spill a variable from 'forbidden_vars'.
"""
self._check_type(v)
- if isinstance(v, TempBox):
+ if isinstance(v, TempVar):
self.longevity[v] = (self.position, self.position)
loc = self.try_allocate_reg(v, selected_reg,
need_lower_byte=need_lower_byte)
@@ -691,7 +691,7 @@
opnum = op.getopnum()
for j in range(op.numargs()):
arg = op.getarg(j)
- if not isinstance(arg, Box):
+ if isinstance(arg, Const):
continue
if arg not in last_used:
last_used[arg] = i
@@ -702,14 +702,14 @@
for arg in op.getfailargs():
if arg is None: # hole
continue
- assert isinstance(arg, Box)
+ assert not isinstance(arg, Const)
if arg not in last_used:
last_used[arg] = i
#
longevity = {}
for i, arg in enumerate(operations):
if arg.type != 'v' and arg in last_used:
- assert isinstance(arg, Box)
+ assert not isinstance(arg, Const)
assert i < last_used[arg]
longevity[arg] = (i, last_used[arg])
del last_used[arg]
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -8,7 +8,7 @@
unpack_arraydescr, unpack_fielddescr, unpack_interiorfielddescr)
from rpython.jit.backend.llsupport.gcmap import allocate_gcmap
from rpython.jit.backend.llsupport.regalloc import (FrameManager, BaseRegalloc,
- RegisterManager, TempBox, compute_vars_longevity, is_comparison_or_ovf_op,
+ RegisterManager, TempVar, compute_vars_longevity, is_comparison_or_ovf_op,
valid_addressing_size)
from rpython.jit.backend.x86 import rx86
from rpython.jit.backend.x86.arch import (WORD, JITFRAME_FIXED_SIZE, IS_X86_32,
@@ -21,8 +21,8 @@
X86_64_SCRATCH_REG, X86_64_XMM_SCRATCH_REG)
from rpython.jit.codewriter import longlong
from rpython.jit.codewriter.effectinfo import EffectInfo
-from rpython.jit.metainterp.history import (Box, Const, ConstInt, ConstPtr,
- ConstFloat, BoxInt, BoxFloat, INT, REF, FLOAT, TargetToken)
+from rpython.jit.metainterp.history import (Const, ConstInt, ConstPtr,
+ ConstFloat, INT, REF, FLOAT, TargetToken)
from rpython.jit.metainterp.resoperation import rop, OpHelpers
from rpython.rlib import rgc
from rpython.rlib.objectmodel import we_are_translated
@@ -442,7 +442,7 @@
argloc = self.loc(y)
#
args = op.getarglist()
- loc = self.rm.force_result_in_reg(op.result, x, args)
+ loc = self.rm.force_result_in_reg(op, x, args)
return loc, argloc
def _consider_binop(self, op):
More information about the pypy-commit
mailing list