Updates:
        Summary: --always-opt keeps optimized code around that's no longer valid
        Status: Started
        Owner: [email protected]
        Labels: -Priority-Medium Priority-Low

Comment #3 on issue 4375 by [email protected]: --always-opt keeps optimized code around that's no longer valid
https://code.google.com/p/v8/issues/detail?id=4375

The solution is not to use --always-opt.

What happens is that there's a special case for --always-opt in Runtime_NotifyDeoptimized: in order to avoid doing too many recompilations, optimized code is kept around on deopt rather than thrown away as it usually would be. If you construct a case where assumptions that the code made get invalidated (so it would *need* to be thrown away), this unsurprisingly causes wrong behavior.

The invalidated assumption in this case is the elements kind of the array literal. Math.min is working fine, but optimized code for matrix() stores the value as a Smi even after the literal has migrated to Double elements.

Very low priority since production is not affected (only tests). In local testing, removing the special case doesn't seem to slow down the test suite so we can probably land that fix.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to