Author: Antonio Cuni <[email protected]>
Branch: faster-rstruct
Changeset: r80934:909baa7fdb8e
Date: 2015-11-25 11:09 +0100
http://bitbucket.org/pypy/pypy/changeset/909baa7fdb8e/

Log:    partial backout of 89a3ecaf0b2d, we no longer need to compare field
        offsets before translation

diff --git a/rpython/rtyper/lltypesystem/llmemory.py 
b/rpython/rtyper/lltypesystem/llmemory.py
--- a/rpython/rtyper/lltypesystem/llmemory.py
+++ b/rpython/rtyper/lltypesystem/llmemory.py
@@ -214,20 +214,6 @@
         dst = cast_adr_to_ptr(dstadr, PTR)
         _reccopy(src, dst)
 
-    def force_as_int(self):
-        """
-        NOT_RPYTHON
-        Return the actual offset as an integer.
-        """
-        if self.TYPE._arrayfld:
-            obj = lltype.malloc(self.TYPE, 0)
-        else:
-            obj = lltype.malloc(self.TYPE)
-        baseadr = cast_ptr_to_adr(obj)
-        interioradr = baseadr + self
-        return cast_adr_to_int(interioradr, 'forced') - 
cast_adr_to_int(baseadr, 'forced')
-
-
 
 class CompositeOffset(AddressOffset):
 
diff --git a/rpython/rtyper/lltypesystem/opimpl.py 
b/rpython/rtyper/lltypesystem/opimpl.py
--- a/rpython/rtyper/lltypesystem/opimpl.py
+++ b/rpython/rtyper/lltypesystem/opimpl.py
@@ -103,13 +103,6 @@
 
 
 def op_int_eq(x, y):
-    # so far we support only == and only for FieldOffset. In theory, we could
-    # generalize support for direct comparisons of AddressOffsets
-    if isinstance(x, llmemory.FieldOffset):
-        x = x.force_as_int()
-    if isinstance(y, llmemory.FieldOffset):
-        y = y.force_as_int()
-    #
     if not isinstance(x, (int, long)):
         from rpython.rtyper.lltypesystem import llgroup
         assert isinstance(x, llgroup.CombinedSymbolic), (
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to