Reviewers: Toon Verwaest,
Message:
PTAL.
Description:
Fix overflow check computation for Smi Phis
BUG=v8:2836
Please review this at https://codereview.chromium.org/22629011/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/hydrogen-representation-changes.cc
A + test/mjsunit/regress/regress-2836.js
Index: src/hydrogen-representation-changes.cc
diff --git a/src/hydrogen-representation-changes.cc
b/src/hydrogen-representation-changes.cc
index
63b7b4d6ec8e326a2900e1be3c8b4557fabe70f5..ddb206ccaf561b90f98e145db247bba99e0924ae
100644
--- a/src/hydrogen-representation-changes.cc
+++ b/src/hydrogen-representation-changes.cc
@@ -127,7 +127,7 @@ void HRepresentationChangesPhase::Run() {
!(input_representation.IsInteger32() &&
use->CheckFlag(HValue::kTruncatingToInt32))) ||
(phi->representation().IsSmi() &&
- !(input_representation.IsSmi() ||
+ !(input_representation.IsSmi() &&
use->CheckFlag(HValue::kTruncatingToSmi)))) {
if (FLAG_trace_representation) {
PrintF("#%d Phi is not truncating because of #%d %s\n",
Index: test/mjsunit/regress/regress-2836.js
diff --git a/test/mjsunit/regress/regress-2671-1.js
b/test/mjsunit/regress/regress-2836.js
similarity index 89%
copy from test/mjsunit/regress/regress-2671-1.js
copy to test/mjsunit/regress/regress-2836.js
index
042a501e5adb86cd7d868ec721edef8edde27274..682cc5e841fa3c9d4d62106437883779ce677bc0
100644
--- a/test/mjsunit/regress/regress-2671-1.js
+++ b/test/mjsunit/regress/regress-2836.js
@@ -27,19 +27,12 @@
// Flags: --allow-natives-syntax
-var y;
function f() {
- var a = [];
- a[20] = 0;
- y = 3;
- var i = 7 * (y + -0);
- a[i]++;
- assertTrue(isNaN(a[i]));
+ var end = 1073741823; // 2^30 - 1
+ var start = end - 100000; // Run long enough to trigger OSR.
+ for (var i = start; i <= end; ++i) {
+ assertTrue(i >= start); // No overflow allowed!
+ }
}
f();
-f();
-f();
-%OptimizeFunctionOnNextCall(f);
-f();
-
--
--
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/groups/opt_out.