[pypy-commit] pypy result-in-resops: slow progress. disable consistency checking, we'll think later what to do

fijal noreply at buildbot.pypy.org
Sun Aug 26 11:52:10 CEST 2012


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: result-in-resops
Changeset: r56862:0c409a6610f3
Date: 2012-08-26 11:07 +0200
http://bitbucket.org/pypy/pypy/changeset/0c409a6610f3/

Log:	slow progress. disable consistency checking, we'll think later what
	to do

diff --git a/pypy/jit/metainterp/history.py b/pypy/jit/metainterp/history.py
--- a/pypy/jit/metainterp/history.py
+++ b/pypy/jit/metainterp/history.py
@@ -725,6 +725,7 @@
 
     @staticmethod
     def check_consistency_of_branch(operations, seen):
+        return # XXX think about it later
         "NOT_RPYTHON"
         for op in operations:
             for i in range(op.numargs()):
diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py b/pypy/jit/metainterp/optimizeopt/optimizer.py
--- a/pypy/jit/metainterp/optimizeopt/optimizer.py
+++ b/pypy/jit/metainterp/optimizeopt/optimizer.py
@@ -337,12 +337,10 @@
         self.metainterp_sd = metainterp_sd
         self.cpu = metainterp_sd.cpu
         self.loop = loop
-        self.values = {}
         self.interned_refs = self.cpu.ts.new_ref_dict()
         self.interned_ints = {}
         self.resumedata_memo = resume.ResumeDataLoopMemo(metainterp_sd)
         self.bool_boxes = {}
-        self.producer = {}
         self.pendingfields = []
         self.quasi_immutable_deps = None
         self.opaque_pointers = {}
@@ -513,7 +511,6 @@
         self.first_optimization.propagate_forward(op)
 
     def propagate_forward(self, op):
-        self.producer[op] = op
         dispatch_opt(self, op)
 
     def emit_operation(self, op):
@@ -523,7 +520,7 @@
 
     def get_value_replacement(self, v):
         try:
-            value = self.values[v]
+            value = v.get_extra("opt_replacement")
         except KeyError:
             return None
         else:
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_util.py b/pypy/jit/metainterp/optimizeopt/test/test_util.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_util.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_util.py
@@ -1,25 +1,21 @@
 import py, random
 
-from pypy.rpython.lltypesystem import lltype, llmemory, rclass, rstr
-from pypy.rpython.ootypesystem import ootype
+from pypy.rpython.lltypesystem import lltype, llmemory, rclass
 from pypy.rpython.lltypesystem.rclass import OBJECT, OBJECT_VTABLE
 from pypy.rpython.rclass import FieldListAccessor, IR_QUASIIMMUTABLE
 
 from pypy.jit.backend.llgraph import runner
-from pypy.jit.metainterp.history import (BoxInt, BoxPtr, ConstInt, ConstPtr,
-                                         Const, TreeLoop, BoxObj,
-                                         ConstObj, AbstractDescr,
+from pypy.jit.metainterp.history import (BoxPtr, TreeLoop, AbstractDescr,
                                          JitCellToken, TargetToken)
 from pypy.jit.metainterp.optimizeopt.util import sort_descrs, equaloplists
-from pypy.jit.metainterp.optimize import InvalidLoop
 from pypy.jit.codewriter.effectinfo import EffectInfo
-from pypy.jit.codewriter.heaptracker import register_known_gctype, adr2int
+from pypy.jit.codewriter.heaptracker import register_known_gctype
 from pypy.jit.tool.oparser import parse, pure_parse
 from pypy.jit.metainterp.quasiimmut import QuasiImmutDescr
 from pypy.jit.metainterp import compile, resume, history
 from pypy.jit.metainterp.jitprof import EmptyProfiler
 from pypy.config.pypyoption import get_pypy_config
-from pypy.jit.metainterp.resoperation import rop, opname, ResOperation
+from pypy.jit.metainterp.resoperation import rop, create_resop
 from pypy.jit.metainterp.optimizeopt.unroll import Inliner
 
 def test_sort_descrs():
diff --git a/pypy/jit/metainterp/resoperation.py b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -170,6 +170,14 @@
     def is_constant(self):
         return False
 
+    @specialize.arg(1)
+    def get_extra(self, key):
+        raise KeyError
+
+    @specialize.arg(1)
+    def set_extra(self, key, value):
+        raise KeyError
+
 class AbstractResOp(AbstractValue):
     """The central ResOperation class, representing one operation."""
 
@@ -186,6 +194,8 @@
 
     @specialize.arg(1)
     def get_extra(self, key):
+        if not hasattr(self, key):
+            raise KeyError
         return getattr(self, key)
 
     @specialize.arg(1)


More information about the pypy-commit mailing list