[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