Author: Maciej Fijalkowski <[email protected]>
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
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit