Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Unified Diff: tests/compiler/dart2js/js_backend_cps_ir_gvn_test.dart

Issue 1512303002: dart2js cps: Add instruction for bounds checks. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Update gvn_test output Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/compiler/dart2js/js_backend_cps_ir_gvn_test.dart
diff --git a/tests/compiler/dart2js/js_backend_cps_ir_gvn_test.dart b/tests/compiler/dart2js/js_backend_cps_ir_gvn_test.dart
index 873afa8fe6364a7487ea095e0cf5f38fe95d00ae..27cfbae06480d932021d6342ddc976b1eaad3e05 100644
--- a/tests/compiler/dart2js/js_backend_cps_ir_gvn_test.dart
+++ b/tests/compiler/dart2js/js_backend_cps_ir_gvn_test.dart
@@ -13,7 +13,8 @@ const List<TestEntry> tests = const [
foo(x, list) {
var sum = 0;
for (int k = 0; k < 10; k++) {
- // Everything can be hoisted out, except the bounds check and sum += z.
+ // Everything can be hoisted out up to the index access which is
+ // blocked by the bounds check.
var a = x.left.left;
var b = x.left.right;
var c = x.right.left;
@@ -51,10 +52,16 @@ main() {
}
""",r"""
function(x, list) {
- var v0 = x.left, a = v0.left, b = v0.right, sum = 0, k = 0, c = (v0 = x.right).left, d = v0.right, i = a.value + c.value, v1 = list[v0 = i * (b.value + d.value)];
- for (; k < 10; sum = sum + (v1 + i), k = k + 1)
- if (v0 < 0 || v0 >= 10)
- return H.ioore(list, v0);
+ var v0 = x.left, a = v0.left, b = v0.right, sum = 0, k = 0, c = (v0 = x.right).left, d = v0.right, v1, v2, v3, i, v4;
+ v0 = a.value;
+ v1 = c.value;
+ v2 = b.value;
+ for (v3 = d.value; k < 10; sum = sum + (i + list[v4]), k = k + 1) {
+ i = v0 + v1;
+ v4 = i * (v2 + v3);
+ if (v4 < 0 || v4 >= 10)
+ return H.ioore(list, v4);
+ }
return sum;
}"""),
];
« no previous file with comments | « pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698