| Index: runtime/vm/intermediate_language.h
|
| ===================================================================
|
| --- runtime/vm/intermediate_language.h (revision 17967)
|
| +++ runtime/vm/intermediate_language.h (working copy)
|
| @@ -3108,6 +3108,12 @@
|
| return recognized_kind_;
|
| }
|
|
|
| + bool IsImmutableLengthLoad() const;
|
| +
|
| + virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
|
| +
|
| + static MethodRecognizer::Kind RecognizedKindFromArrayCid(intptr_t cid);
|
| +
|
| private:
|
| const intptr_t offset_in_bytes_;
|
| const AbstractType& type_;
|
| @@ -4208,14 +4214,14 @@
|
|
|
| class CheckArrayBoundInstr : public TemplateInstruction<2> {
|
| public:
|
| - CheckArrayBoundInstr(Value* array,
|
| + CheckArrayBoundInstr(Value* length,
|
| Value* index,
|
| intptr_t array_type,
|
| InstanceCallInstr* instance_call)
|
| : array_type_(array_type) {
|
| - ASSERT(array != NULL);
|
| + ASSERT(length != NULL);
|
| ASSERT(index != NULL);
|
| - inputs_[0] = array;
|
| + inputs_[0] = length;
|
| inputs_[1] = index;
|
| deopt_id_ = instance_call->deopt_id();
|
| }
|
| @@ -4233,7 +4239,7 @@
|
|
|
| virtual bool AffectedBySideEffect() const { return false; }
|
|
|
| - Value* array() const { return inputs_[0]; }
|
| + Value* length() const { return inputs_[0]; }
|
| Value* index() const { return inputs_[1]; }
|
|
|
| intptr_t array_type() const { return array_type_; }
|
|
|