[pypy-commit] pypy optresult-unroll: fix virtual_ref optimization
fijal
noreply at buildbot.pypy.org
Tue Sep 1 23:11:31 CEST 2015
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult-unroll
Changeset: r79366:04e67e43db5a
Date: 2015-09-01 23:11 +0200
http://bitbucket.org/pypy/pypy/changeset/04e67e43db5a/
Log: fix virtual_ref optimization
diff --git a/rpython/jit/metainterp/optimizeopt/virtualize.py b/rpython/jit/metainterp/optimizeopt/virtualize.py
--- a/rpython/jit/metainterp/optimizeopt/virtualize.py
+++ b/rpython/jit/metainterp/optimizeopt/virtualize.py
@@ -160,10 +160,11 @@
return False
tokeninfo = self.getptrinfo(tokenop)
if (tokeninfo is not None and tokeninfo.is_constant() and
- not tokeninfo.is_null()):
- forcedvalue = vref.getfield(vrefinfo.descr_forced, None)
- if forcedvalue is not None and not forcedvalue.is_null():
- self.make_equal_to(op, forcedvalue)
+ not tokeninfo.is_nonnull()):
+ forcedop = vref.getfield(vrefinfo.descr_forced, None)
+ forcedinfo = self.getptrinfo(forcedop)
+ if forcedinfo is not None and not forcedinfo.is_null():
+ self.make_equal_to(op, forcedop)
self.last_emitted_operation = REMOVED
return True
return False
More information about the pypy-commit
mailing list