Files
sdk/tests/language/vm/optimized_testsmi_test.dart
T
fschneider@google.com 8b0b3fde4d Generalize if-conversion to arbitrary smi comparisons.
Until now only == and != comparisons were supported.

Further changes are:
 Remove flag FLAG_new_identity_spec: It is not needed anymore.
 Invoke Canonicalize another time before branch optimizations.
 Fixes support for TestSmiInstr with the branch-simplifier pass.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org//78733002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30622 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-25 12:57:21 +00:00

31 lines
687 B
Dart

// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// VMOptions=--optimization_counter_threshold=10
// Test branch optimization for TestSmiInstr
import "package:expect/expect.dart";
test(bool b) {
var a = 0;
if (b) {
a++;
} else {
a += 2;
}
if (a & 1 == 0) {
return "even";
}
return "odd";
}
main() {
Expect.equals("odd", test(true));
Expect.equals("even", test(false));
for (var i=0; i<20; i++) test(false);
Expect.equals("odd", test(true));
Expect.equals("even", test(false));
}