Author: Maciej Fijalkowski <[email protected]>
Branch: result-in-resops
Changeset: r57580:22a9e301efd5
Date: 2012-09-25 17:02 +0200
http://bitbucket.org/pypy/pypy/changeset/22a9e301efd5/

Log:    (arigo) improve hashing

diff --git a/pypy/jit/metainterp/optimizeopt/rewrite.py 
b/pypy/jit/metainterp/optimizeopt/rewrite.py
--- a/pypy/jit/metainterp/optimizeopt/rewrite.py
+++ b/pypy/jit/metainterp/optimizeopt/rewrite.py
@@ -57,7 +57,7 @@
             key_op = op.copy_and_change(oldopnum)
             oldop = self.get_pure_result(key_op)
             if oldop is not None and oldop.getdescr() is op.getdescr():
-                self.make_equal_to(op, self.getvalue(oldop))
+                self.replace(op, oldop)
                 return True
 
         oldopnum = opboolinvers[opboolreflex[op.getopnum()]]
diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py 
b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -2101,8 +2101,8 @@
     def test_oois_of_itself(self):
         ops = """
         [p0]
-        p1 = getfield_gc(p0, descr=nextdescr)
-        p2 = getfield_gc(p0, descr=nextdescr)
+        p1 = getfield_gc_p(p0, descr=nextdescr)
+        p2 = getfield_gc_p(p0, descr=nextdescr)
         i1 = ptr_eq(p1, p2)
         guard_true(i1) []
         i2 = ptr_ne(p1, p2)
@@ -2111,7 +2111,7 @@
         """
         expected = """
         [p0]
-        p1 = getfield_gc(p0, descr=nextdescr)
+        p1 = getfield_gc_p(p0, descr=nextdescr)
         jump(p0)
         """
         self.optimize_loop(ops, expected)
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
@@ -706,9 +706,9 @@
         """
         if self._hash != 0:
             return self._hash
-        hash = (intmask(self.getopnum() << 18) +
-                intmask(self.get_result_hash() << 13) +
-                intmask(self.get_descr_hash() << 5) +
+        hash = (self.getopnum() ^
+                self.get_result_hash() ^
+                self.get_descr_hash() ^
                 self.get_arg_hash())
         if hash == 0:
             hash = -1
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to