| Index: runtime/vm/intermediate_language.cc
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.cc (revision 20842)
|
| +++ runtime/vm/intermediate_language.cc (working copy)
|
| @@ -608,7 +608,8 @@
|
| BranchInstr::BranchInstr(ComparisonInstr* comparison, bool is_checked)
|
| : comparison_(comparison),
|
| is_checked_(is_checked),
|
| - constrained_type_(NULL) {
|
| + constrained_type_(NULL),
|
| + constant_target_(NULL) {
|
| for (intptr_t i = comparison->InputCount() - 1; i >= 0; --i) {
|
| comparison->InputAt(i)->set_instruction(this);
|
| }
|
| @@ -2192,6 +2193,19 @@
|
| }
|
|
|
|
|
| +bool Range::IsUnsatisfiable() const {
|
| + // Constant case: For example [0, -1].
|
| + if (Range::ConstantMin(this).value() > Range::ConstantMax(this).value()) {
|
| + return true;
|
| + }
|
| + // Symbol case: For example [v+1, v].
|
| + if (DependOnSameSymbol(min(), max()) && min().offset() > max().offset()) {
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +
|
| bool CheckArrayBoundInstr::IsFixedLengthArrayType(intptr_t cid) {
|
| return LoadFieldInstr::IsFixedLengthArrayCid(cid);
|
| }
|
|
|