| Index: runtime/vm/flow_graph_type_propagator.cc
|
| diff --git a/runtime/vm/flow_graph_type_propagator.cc b/runtime/vm/flow_graph_type_propagator.cc
|
| index 37715ed965671f187aaeac418a80667b4c072a02..f702ed5a1e1721f86eb496dcf525c8ce1ad9b43c 100644
|
| --- a/runtime/vm/flow_graph_type_propagator.cc
|
| +++ b/runtime/vm/flow_graph_type_propagator.cc
|
| @@ -1009,6 +1009,12 @@ CompileType LoadFieldInstr::ComputeType() const {
|
| }
|
|
|
|
|
| +CompileType BinaryInt32OpInstr::ComputeType() const {
|
| + // TODO(vegorov): range analysis information shall be used here.
|
| + return CompileType::Int();
|
| +}
|
| +
|
| +
|
| CompileType BinarySmiOpInstr::ComputeType() const {
|
| return CompileType::FromCid(kSmiCid);
|
| }
|
| @@ -1063,6 +1069,21 @@ bool BoxIntegerInstr::RecomputeType() {
|
| }
|
|
|
|
|
| +CompileType BoxIntNInstr::ComputeType() const {
|
| + return ValueFitsSmi() ? CompileType::FromCid(kSmiCid) : CompileType::Int();
|
| +}
|
| +
|
| +
|
| +CompileType UnboxIntNInstr::ComputeType() const {
|
| + return CompileType::Int();
|
| +}
|
| +
|
| +
|
| +bool BoxIntNInstr::RecomputeType() {
|
| + return UpdateType(ComputeType());
|
| +}
|
| +
|
| +
|
| CompileType UnboxIntegerInstr::ComputeType() const {
|
| return CompileType::Int();
|
| }
|
| @@ -1305,6 +1326,11 @@ CompileType BoxInt32x4Instr::ComputeType() const {
|
| }
|
|
|
|
|
| +CompileType Int32ToDoubleInstr::ComputeType() const {
|
| + return CompileType::FromCid(kDoubleCid);
|
| +}
|
| +
|
| +
|
| CompileType SmiToDoubleInstr::ComputeType() const {
|
| return CompileType::FromCid(kDoubleCid);
|
| }
|
|
|