| Index: runtime/vm/aot_optimizer.cc
|
| diff --git a/runtime/vm/aot_optimizer.cc b/runtime/vm/aot_optimizer.cc
|
| index c938bc3799a82e1860e3385892e05e7e663c503f..b76cffe3aa746530acb22c53360578e1bcf5c197 100644
|
| --- a/runtime/vm/aot_optimizer.cc
|
| +++ b/runtime/vm/aot_optimizer.cc
|
| @@ -1819,7 +1819,21 @@ void AotOptimizer::VisitInstanceCall(InstanceCallInstr* instr) {
|
| case Token::kLT:
|
| case Token::kLTE:
|
| case Token::kGT:
|
| - case Token::kGTE:
|
| + case Token::kGTE: {
|
| + if (HasOnlyTwoOf(*instr->ic_data(), kSmiCid) ||
|
| + HasLikelySmiOperand(instr)) {
|
| + Definition* left = instr->ArgumentAt(0);
|
| + Definition* right = instr->ArgumentAt(1);
|
| + CheckedSmiComparisonInstr* smi_op =
|
| + new(Z) CheckedSmiComparisonInstr(instr->token_kind(),
|
| + new(Z) Value(left),
|
| + new(Z) Value(right),
|
| + instr);
|
| + ReplaceCall(instr, smi_op);
|
| + return;
|
| + }
|
| + break;
|
| + }
|
| case Token::kBIT_OR:
|
| case Token::kBIT_XOR:
|
| case Token::kBIT_AND:
|
|
|