[pypy-commit] pypy optresult-unroll: ups
fijal
noreply at buildbot.pypy.org
Thu Sep 3 20:24:05 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r79401:9b54c2978f05
Date: 2015-09-03 20:21 +0200
http://bitbucket.org/pypy/pypy/changeset/9b54c2978f05/
Log: ups
diff --git a/rpython/jit/metainterp/optimizeopt/optimizer.py b/rpython/jit/metainterp/optimizeopt/optimizer.py
--- a/rpython/jit/metainterp/optimizeopt/optimizer.py
+++ b/rpython/jit/metainterp/optimizeopt/optimizer.py
@@ -302,6 +302,10 @@
return info.force_at_the_end_of_preamble(box,
self.optearlyforce, rec)
return box
+ if box.type == 'i':
+ info = self.getrawptrinfo(box)
+ return info.force_at_the_end_of_preamble(box, self.optearlyforce,
+ None)
return box
def flush(self):
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizeopt.py
@@ -8726,5 +8726,13 @@
"""
self.optimize_loop(ops, expected, preamble)
+ def test_raw_buffer_in_preamble(self):
+ ops = """
+ [i1]
+ i0 = call_i(123, 10, descr=raw_malloc_descr)
+ jump(i0)
+ """
+ self.optimize_loop(ops, ops)
+
class TestLLtype(OptimizeOptTest, LLtypeMixin):
pass
diff --git a/rpython/jit/metainterp/optimizeopt/virtualstate.py b/rpython/jit/metainterp/optimizeopt/virtualstate.py
--- a/rpython/jit/metainterp/optimizeopt/virtualstate.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualstate.py
@@ -350,8 +350,7 @@
constbox = None
known_class = None
- def __init__(self, cpu, type, info, is_opaque=False):
- self.is_opaque = is_opaque
+ def __init__(self, cpu, type, info):
if info and info.is_constant():
self.level = LEVEL_CONSTANT
self.constbox = info.getconst()
@@ -382,8 +381,6 @@
return False
def _generate_guards(self, other, box, runtime_box, state):
- if self.is_opaque:
- box = None # generating guards for opaque pointers isn't safe
# XXX This will always retrace instead of forcing anything which
# might be what we want sometimes?
if not isinstance(other, NotVirtualStateInfo):
@@ -668,7 +665,6 @@
return VirtualState(state)
def visit_not_virtual(self, box):
- is_opaque = box in self.optimizer.opaque_pointers
return NotVirtualStateInfo(self.optimizer.cpu, box.type,
self.optimizer.getinfo(box))
More information about the pypy-commit
mailing list