[pypy-svn] r37156 - in pypy/dist/pypy/rpython: . test
pedronis at codespeak.net
pedronis at codespeak.net
Mon Jan 22 19:38:39 CET 2007
Author: pedronis
Date: Mon Jan 22 19:38:36 2007
New Revision: 37156
Modified:
pypy/dist/pypy/rpython/rstr.py
pypy/dist/pypy/rpython/test/test_rstr.py
pypy/dist/pypy/rpython/test/tool.py
Log:
(arre, pedronis) don't emit folded string concatenation at rtyping time.
Modified: pypy/dist/pypy/rpython/rstr.py
==============================================================================
--- pypy/dist/pypy/rpython/rstr.py (original)
+++ pypy/dist/pypy/rpython/rstr.py Mon Jan 22 19:38:36 2007
@@ -291,6 +291,8 @@
class __extend__(pairtype(AbstractStringRepr, AbstractStringRepr)):
def rtype_add((r_str1, r_str2), hop):
string_repr = hop.rtyper.type_system.rstr.string_repr
+ if hop.s_result.is_constant():
+ return hop.inputconst(string_repr, hop.s_result.const)
v_str1, v_str2 = hop.inputargs(string_repr, string_repr)
return hop.gendirectcall(r_str1.ll.ll_strconcat, v_str1, v_str2)
rtype_inplace_add = rtype_add
Modified: pypy/dist/pypy/rpython/test/test_rstr.py
==============================================================================
--- pypy/dist/pypy/rpython/test/test_rstr.py (original)
+++ pypy/dist/pypy/rpython/test/test_rstr.py Mon Jan 22 19:38:36 2007
@@ -6,6 +6,7 @@
from pypy.rpython.rtyper import RPythonTyper, TyperError
from pypy.rpython.test.tool import BaseRtypingTest, LLRtypeMixin, OORtypeMixin
from pypy.rpython.llinterp import LLException
+from pypy.objspace.flow.model import summary
def test_parse_fmt():
parse = AbstractLLHelpers.parse_fmt_string
@@ -708,6 +709,19 @@
else:
assert False
+ def test_fold_concat(self):
+ def g(tail):
+ return "head"+tail
+ def f():
+ return g("tail")
+ from pypy import conftest
+
+ t, typer, fgraph = self.gengraph(f, [], backendopt=True)
+ if conftest.option.view:
+ t.view()
+ assert summary(fgraph) == {}
+
+
def FIXME_test_str_to_pystringobj():
def f(n):
if n >= 0:
Modified: pypy/dist/pypy/rpython/test/tool.py
==============================================================================
--- pypy/dist/pypy/rpython/test/tool.py (original)
+++ pypy/dist/pypy/rpython/test/tool.py Mon Jan 22 19:38:36 2007
@@ -1,9 +1,15 @@
import py
from pypy.rpython.ootypesystem import ootype
from pypy.rpython.lltypesystem import lltype
-from pypy.rpython.test.test_llinterp import interpret, interpret_raises
+from pypy.rpython.test.test_llinterp import gengraph, interpret, interpret_raises
class BaseRtypingTest(object):
+
+ def gengraph(self, func, argtypes=[], viewbefore='auto', policy=None,
+ backendopt=False, config=None):
+ return gengraph(func, argtypes, viewbefore, policy, type_system=self.type_system,
+ backendopt=backendopt, config=config)
+
def interpret(self, fn, args, **kwds):
return interpret(fn, args, type_system=self.type_system, **kwds)
More information about the Pypy-commit
mailing list