Chromium Code Reviews| Index: runtime/vm/intermediate_language.cc |
| =================================================================== |
| --- runtime/vm/intermediate_language.cc (revision 18705) |
| +++ runtime/vm/intermediate_language.cc (working copy) |
| @@ -850,6 +850,14 @@ |
| return (right_range == NULL) |
| || !right_range->IsWithin(0, RangeBoundary::kPlusInfinity); |
| } |
| + case Token::kSHL: { |
| + Range* right_range = this->right()->definition()->range(); |
| + if ((right_range != NULL) && is_truncating()) { |
| + // Can deoptimize if right can be negative. |
| + return !right_range->IsWithin(0, RangeBoundary::kPlusInfinity); |
| + } |
| + return overflow_; |
|
Vyacheslav Egorov (Google)
2013/02/20 00:37:06
I think this can be just return true;
srdjan
2013/02/21 00:47:17
Done.
|
| + } |
| default: |
| return overflow_; |
| } |