Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79492:6054a6f8a5eb
Date: 2015-09-07 09:20 +0200
http://bitbucket.org/pypy/pypy/changeset/6054a6f8a5eb/
Log: a fix for a crash, but not ideal things emitted
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -4255,6 +4255,32 @@
"""
self.optimize_strunicode_loop(ops, expected)
+ def test_str_concat_vstr2_str_2(self):
+ ops = """
+ [i0, i1, p2]
+ p1 = newstr(2)
+ strsetitem(p1, 0, i0)
+ strsetitem(p1, 1, i1)
+ escape_n(p1)
+ p3 = call_r(0, p1, p2, descr=strconcatdescr)
+ jump(i1, i0, p3)
+ """
+ expected = """
+ [i0, i1, p2]
+ p1 = newstr(2)
+ strsetitem(p1, 0, i0)
+ strsetitem(p1, 1, i1)
+ escape_n(p1)
+ i2 = strlen(p2)
+ i3 = int_add(2, i2)
+ p3 = newstr(i3)
+ strsetitem(p3, 0, i0)
+ strsetitem(p3, 1, i1)
+ copystrcontent(p2, p3, 0, 2, i2)
+ jump(i1, i0, p3)
+ """
+ self.optimize_strunicode_loop(ops, expected)
+
def test_str_concat_str_vstr2(self):
ops = """
[i0, i1, p2]
diff --git a/rpython/jit/metainterp/optimizeopt/vstring.py
b/rpython/jit/metainterp/optimizeopt/vstring.py
--- a/rpython/jit/metainterp/optimizeopt/vstring.py
+++ b/rpython/jit/metainterp/optimizeopt/vstring.py
@@ -187,11 +187,9 @@
def string_copy_parts(self, op, string_optimizer, targetbox, offsetbox,
mode):
- if not self.is_virtual():
- # and not self.is_completely_initialized():
- raise Exception("implement me")
- return VAbstractStringValue.string_copy_parts(
- self, string_optimizer, targetbox, offsetbox, mode)
+ if not self.is_virtual(): # and not self.is_completely_initialized():
+ return StrPtrInfo.string_copy_parts(self, op, string_optimizer,
+ targetbox, offsetbox, mode)
else:
return self.initialize_forced_string(op, string_optimizer,
targetbox, offsetbox, mode)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit