[pypy-commit] pypy optimizeopt-cleanup: simplify metainterp_sd creation in optimizeopt tests
rlamy
pypy.commits at gmail.com
Wed May 15 11:53:54 EDT 2019
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: optimizeopt-cleanup
Changeset: r96622:0aaebc5466a7
Date: 2019-05-15 16:52 +0100
http://bitbucket.org/pypy/pypy/changeset/0aaebc5466a7/
Log: simplify metainterp_sd creation in optimizeopt tests
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_costmodel.py b/rpython/jit/metainterp/optimizeopt/test/test_costmodel.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_costmodel.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_costmodel.py
@@ -7,7 +7,7 @@
from rpython.jit.metainterp.optimizeopt.dependency import DependencyGraph
from rpython.jit.metainterp.optimizeopt.test.test_schedule import SchedulerBaseTest
from rpython.jit.metainterp.optimizeopt.test.test_vecopt import (
- FakeMetaInterpStaticData, FakeJitDriverStaticData)
+ FakeJitDriverStaticData)
class FakeMemoryRef(object):
def __init__(self, array, iv):
@@ -80,9 +80,8 @@
class TestCostModel(SchedulerBaseTest):
def savings(self, loop):
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
jitdriver_sd = FakeJitDriverStaticData()
- opt = VectorizingOptimizer(metainterp_sd, jitdriver_sd, 0)
+ opt = VectorizingOptimizer(self.metainterp_sd, jitdriver_sd, 0)
opt.orig_label_args = loop.label.getarglist()[:]
graph = opt.dependency_graph = DependencyGraph(loop)
self.show_dot_graph(graph, 'costmodel')
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_dependency.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_dependency.py
@@ -7,8 +7,7 @@
IndexVar, MemoryRef, Node)
from rpython.jit.metainterp.optimizeopt.vector import VectorLoop
from rpython.jit.metainterp.optimizeopt.test.test_util import (
- BaseTest, FakeMetaInterpStaticData, convert_old_style_to_targets,
- FakeJitDriverStaticData)
+ BaseTest, convert_old_style_to_targets, FakeJitDriverStaticData)
from rpython.jit.metainterp.resoperation import rop, ResOperation
from rpython.jit.backend.llgraph.runner import ArrayDescr
from rpython.jit.tool.oparser import OpParser
@@ -109,7 +108,7 @@
loop = VectorLoop(label, loop.operations[0:-1], jump)
loop.jump.setdescr(token)
class Optimizer(object):
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
+ metainterp_sd = self.metainterp_sd
jitdriver_sd = FakeJitDriverStaticData()
opt = Optimizer()
opt.jitdriver_sd.vec = True
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,7 +6,7 @@
from rpython.rtyper import rclass
from rpython.rtyper.lltypesystem import lltype
from rpython.jit.metainterp.optimizeopt.test.test_util import (
- BaseTest, FakeMetaInterpStaticData, convert_old_style_to_targets)
+ BaseTest, convert_old_style_to_targets)
from rpython.jit.metainterp.history import (
JitCellToken, ConstInt, get_const_ptr_for_string)
from rpython.jit.metainterp import executor, compile
@@ -32,7 +32,7 @@
exp = parse(optops, namespace=self.namespace.copy())
expected = convert_old_style_to_targets(exp, jump=True)
call_pure_results = self._convert_call_pure_results(call_pure_results)
- trace = convert_loop_to_trace(loop, FakeMetaInterpStaticData(self.cpu))
+ trace = convert_loop_to_trace(loop, self.metainterp_sd)
compile_data = compile.SimpleCompileData(
trace, call_pure_results=call_pure_results)
info, ops = self._do_optimize_loop(compile_data)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebridge.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebridge.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebridge.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebridge.py
@@ -1,5 +1,5 @@
from rpython.jit.metainterp.optimizeopt.test.test_util import (
- BaseTest, convert_old_style_to_targets, FakeMetaInterpStaticData)
+ BaseTest, convert_old_style_to_targets)
from rpython.jit.metainterp import compile
from rpython.jit.tool import oparser
from rpython.jit.metainterp.resoperation import ResOperation, rop
@@ -27,8 +27,7 @@
bridge = self.parse(bridge_ops)
bridge.operations[-1].setdescr(jitcell_token)
self.add_guard_future_condition(bridge)
- trace = oparser.convert_loop_to_trace(
- bridge, FakeMetaInterpStaticData(self.cpu))
+ trace = oparser.convert_loop_to_trace(bridge, self.metainterp_sd)
data = compile.BridgeCompileData(
trace,
self.convert_values(bridge.operations[-1].getarglist(), bridge_values),
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_schedule.py b/rpython/jit/metainterp/optimizeopt/test/test_schedule.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_schedule.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_schedule.py
@@ -13,7 +13,7 @@
from rpython.jit.metainterp.optimizeopt.test.test_dependency import (
DependencyBaseTest)
from rpython.jit.metainterp.optimizeopt.test.test_vecopt import (
- FakeMetaInterpStaticData, FakeJitDriverStaticData, FakePackSet)
+ FakeJitDriverStaticData, FakePackSet)
from rpython.jit.metainterp.resoperation import (
rop, ResOperation, VectorizationInfo)
@@ -60,9 +60,8 @@
for name, overwrite in (overwrite_funcs or {}).items():
setattr(state, name, overwrite)
renamer = Renamer()
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
jitdriver_sd = FakeJitDriverStaticData()
- opt = VectorizingOptimizer(metainterp_sd, jitdriver_sd, 0)
+ opt = VectorizingOptimizer(self.metainterp_sd, jitdriver_sd, 0)
opt.packset = packset
opt.combine_packset()
opt.schedule(state)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_unroll.py b/rpython/jit/metainterp/optimizeopt/test/test_unroll.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_unroll.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_unroll.py
@@ -2,8 +2,7 @@
More direct tests for unrolling
"""
-from rpython.jit.metainterp.optimizeopt.test.test_util import (
- BaseTest, FakeMetaInterpStaticData)
+from rpython.jit.metainterp.optimizeopt.test.test_util import BaseTest
from rpython.jit.metainterp.optimizeopt.util import equaloplists
from rpython.jit.metainterp.history import TreeLoop
from rpython.jit.metainterp.resoperation import (
@@ -42,7 +41,7 @@
assert jumpop.getopnum() == rop.JUMP
inputargs = loop.inputargs
preamble = TreeLoop('preamble')
- trace = oparser.convert_loop_to_trace(loop, FakeMetaInterpStaticData(self.cpu))
+ trace = oparser.convert_loop_to_trace(loop, self.metainterp_sd)
compile_data = PreambleCompileData(trace, inputargs)
start_state, newops = self._do_optimize_loop(compile_data)
preamble.operations = newops
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
@@ -515,6 +515,13 @@
class BaseTest(LLtypeMixin):
+ @pytest.fixture(autouse=True)
+ def cls_attributes(self):
+ metainterp_sd = FakeMetaInterpStaticData(self.cpu)
+ metainterp_sd.virtualref_info = self.vrefinfo
+ compute_bitstrings(self.cpu.fetch_all_descrs())
+ self.metainterp_sd = metainterp_sd
+
def parse(self, s, boxkinds=None, want_fail_descr=True, postprocess=None):
AbstractValue._repr_memo.counter = 0
self.oparse = OpParser(s, self.cpu, self.namespace, boxkinds,
@@ -538,12 +545,8 @@
expected.operations, False, remap, text_right)
def _do_optimize_loop(self, compile_data):
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
- metainterp_sd.virtualref_info = self.vrefinfo
- compute_bitstrings(self.cpu.fetch_all_descrs())
- #
compile_data.enable_opts = self.enable_opts
- state = compile_data.optimize_trace(metainterp_sd, None, {})
+ state = compile_data.optimize_trace(self.metainterp_sd, None, {})
return state
def _convert_call_pure_results(self, d):
@@ -580,7 +583,7 @@
runtime_boxes = self.pack_into_boxes(jump_op, jump_values)
jump_op.setdescr(celltoken)
call_pure_results = self._convert_call_pure_results(call_pure_results)
- t = convert_loop_to_trace(loop, FakeMetaInterpStaticData(self.cpu))
+ t = convert_loop_to_trace(loop, self.metainterp_sd)
preamble_data = compile.PreambleCompileData(
t, runtime_boxes, call_pure_results, enable_opts=self.enable_opts)
start_state, preamble_ops = self._do_optimize_loop(preamble_data)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_vecopt.py
@@ -2,8 +2,6 @@
import sys
import pytest
-from rpython.jit.metainterp.optimizeopt.test.test_util import (
- FakeMetaInterpStaticData)
from rpython.jit.metainterp.optimizeopt.test.test_dependency import DependencyBaseTest
from rpython.jit.metainterp.optimizeopt.vector import (VectorizingOptimizer,
MemoryRef, isomorphic, Pair, NotAVectorizeableLoop,
@@ -80,13 +78,12 @@
def assert_vectorize(self, loop, expected_loop, call_pure_results=None):
jump = ResOperation(rop.JUMP, loop.jump.getarglist(), loop.jump.getdescr())
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
warmstate = FakeWarmState()
loop.operations += [loop.jump]
loop_info = BasicLoopInfo(loop.jump.getarglist(), None, jump)
loop_info.label_op = ResOperation(
rop.LABEL, loop.jump.getarglist(), loop.jump.getdescr())
- optimize_vector(None, metainterp_sd, self.jitdriver_sd, warmstate,
+ optimize_vector(None, self.metainterp_sd, self.jitdriver_sd, warmstate,
loop_info, loop.operations)
loop.operations = loop.operations[:-1]
#loop.label = state[0].label_op
@@ -94,9 +91,8 @@
self.assert_equal(loop, expected_loop)
def vectoroptimizer(self, loop):
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
jitdriver_sd = FakeJitDriverStaticData()
- opt = VectorizingOptimizer(metainterp_sd, jitdriver_sd, 0)
+ opt = VectorizingOptimizer(self.metainterp_sd, jitdriver_sd, 0)
opt.orig_label_args = loop.label.getarglist()[:]
return opt
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py b/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_virtualstate.py
@@ -1,25 +1,23 @@
from __future__ import with_statement
import py
-from rpython.jit.metainterp.optimizeopt.virtualstate import VirtualStateInfo,\
- VStructStateInfo, LEVEL_CONSTANT,\
- VArrayStateInfo, not_virtual, VirtualState,\
- GenerateGuardState, VirtualStatesCantMatch, VArrayStructStateInfo,\
- VirtualStateConstructor
+from rpython.jit.metainterp.optimizeopt.virtualstate import (
+ VirtualStateInfo, VStructStateInfo, LEVEL_CONSTANT, VArrayStateInfo,
+ not_virtual, VirtualState, GenerateGuardState, VirtualStatesCantMatch,
+ VArrayStructStateInfo, VirtualStateConstructor)
from rpython.jit.metainterp.history import ConstInt, ConstPtr, TargetToken
-from rpython.jit.metainterp.resoperation import InputArgInt, InputArgRef,\
- InputArgFloat
+from rpython.jit.metainterp.resoperation import (
+ InputArgInt, InputArgRef, InputArgFloat)
from rpython.jit.backend.llgraph.runner import ArrayDescr
from rpython.rtyper.lltypesystem import lltype, llmemory
from rpython.rtyper import rclass
-from rpython.jit.metainterp.optimizeopt.test.test_util import LLtypeMixin, BaseTest, \
- equaloplists
-from rpython.jit.metainterp.optimizeopt.intutils import IntBound,\
- ConstIntBound, IntLowerBound, IntUpperBound, IntUnbounded
-from rpython.jit.metainterp.history import TreeLoop, JitCellToken
-from rpython.jit.metainterp.optimizeopt.test.test_util import FakeMetaInterpStaticData
+from rpython.jit.metainterp.optimizeopt.test.test_util import (
+ LLtypeMixin, BaseTest, equaloplists)
+from rpython.jit.metainterp.optimizeopt.intutils import (
+ IntBound, ConstIntBound, IntLowerBound, IntUnbounded)
+from rpython.jit.metainterp.history import JitCellToken
from rpython.jit.metainterp.optimizeopt.optimizer import Optimizer
from rpython.jit.metainterp.resoperation import ResOperation, rop
-from rpython.jit.metainterp import resume, compile
+from rpython.jit.metainterp import compile
from rpython.jit.metainterp.optimizeopt import info
from rpython.jit.tool import oparser
@@ -99,14 +97,14 @@
optimizer = FakeOptimizer(self.cpu)
classbox1 = self.cpu.cls_of_box(InputArgRef(self.nodeaddr))
innervalue1 = info.InstancePtrInfo(
- known_class=classbox1, is_virtual=True,
- descr=self.valuedescr.get_parent_descr())
+ known_class=classbox1, is_virtual=True,
+ descr=self.valuedescr.get_parent_descr())
for field in self.valuedescr.get_parent_descr().get_all_fielddescrs():
innervalue1.setfield(field, None, ConstInt(42))
classbox2 = self.cpu.cls_of_box(InputArgRef(self.myptr3))
innervalue2 = info.InstancePtrInfo(
- known_class=classbox2, is_virtual=True,
- descr=self.valuedescr3.get_parent_descr())
+ known_class=classbox2, is_virtual=True,
+ descr=self.valuedescr3.get_parent_descr())
for field in self.valuedescr3.get_parent_descr().get_all_fielddescrs():
innervalue2.setfield(field, None, ConstInt(42))
@@ -860,17 +858,14 @@
if call_pure_results is not None:
for k, v in call_pure_results.items():
bridge.call_pure_results[list(k)] = v
- metainterp_sd = FakeMetaInterpStaticData(self.cpu)
- metainterp_sd.virtualref_info = self.vrefinfo
- #
- trace = oparser.convert_loop_to_trace(bridge, metainterp_sd)
+ trace = oparser.convert_loop_to_trace(bridge, self.metainterp_sd)
runtime_boxes = self.convert_values(bridge.operations[-1].getarglist(),
values)
data = compile.BridgeCompileData(trace, runtime_boxes,
enable_opts=self.enable_opts, inline_short_preamble=True)
- info, newops = data.optimize_trace(metainterp_sd, None, {})
+ info, newops = data.optimize_trace(self.metainterp_sd, None, {})
if info.final():
bridge.operations = newops
bridge.inputargs = info.inputargs
More information about the pypy-commit
mailing list