[pypy-commit] pypy llvm-translation-backend: Remove this because it probably prevents the JIT from emitting efficient code for longlong on 32-bit. This breaks LLVM translation on 32-bit.

Manuel Jacob noreply at buildbot.pypy.org
Sat Jan 25 16:09:18 CET 2014


Author: Manuel Jacob
Branch: llvm-translation-backend
Changeset: r68933:d460c0863b4a
Date: 2014-01-25 15:56 +0100
http://bitbucket.org/pypy/pypy/changeset/d460c0863b4a/

Log:	Remove this because it probably prevents the JIT from emitting
	efficient code for longlong on 32-bit. This breaks LLVM translation
	on 32-bit.

diff --git a/rpython/rtyper/rint.py b/rpython/rtyper/rint.py
--- a/rpython/rtyper/rint.py
+++ b/rpython/rtyper/rint.py
@@ -166,7 +166,11 @@
         repr = signed_repr
     else:
         repr = r_result
-    vlist = hop.inputargs(repr, repr)
+    if func.startswith(('lshift', 'rshift')):
+        repr2 = signed_repr
+    else:
+        repr2 = repr
+    vlist = hop.inputargs(repr, repr2)
     hop.exception_is_here()
 
     prefix = repr.opprefix
diff --git a/rpython/rtyper/test/test_rint.py b/rpython/rtyper/test/test_rint.py
--- a/rpython/rtyper/test/test_rint.py
+++ b/rpython/rtyper/test/test_rint.py
@@ -257,9 +257,6 @@
                     assert res == intmask(f(2147483647, 12))
                 else:
                     assert res == inttype(f(2147483647, 12))
-                # XXX: this assertion doesn't hold since e1d98ce26c7b
-                # because it breaked llvm translation on 32-bit
-                continue
                 #
                 # check that '*_[lr]shift' take an inttype and an
                 # int as arguments, without the need for a


More information about the pypy-commit mailing list