| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| 6 #define RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| 7 | 7 |
| 8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
| 9 #include "vm/ast.h" | 9 #include "vm/ast.h" |
| 10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
| (...skipping 4467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4478 | 4478 |
| 4479 DECLARE_INSTRUCTION(LoadField) | 4479 DECLARE_INSTRUCTION(LoadField) |
| 4480 virtual CompileType ComputeType() const; | 4480 virtual CompileType ComputeType() const; |
| 4481 | 4481 |
| 4482 virtual bool ComputeCanDeoptimize() const { return false; } | 4482 virtual bool ComputeCanDeoptimize() const { return false; } |
| 4483 | 4483 |
| 4484 virtual void InferRange(RangeAnalysis* analysis, Range* range); | 4484 virtual void InferRange(RangeAnalysis* analysis, Range* range); |
| 4485 | 4485 |
| 4486 bool IsImmutableLengthLoad() const; | 4486 bool IsImmutableLengthLoad() const; |
| 4487 | 4487 |
| 4488 // Try evaluating this load against the given constant value of |
| 4489 // the instance. Returns true if evaluation succeeded and |
| 4490 // puts result into result. |
| 4491 // Note: we only evaluate loads when we can ensure that |
| 4492 // instance has the field. |
| 4493 bool Evaluate(const Object& instance_value, Object* result); |
| 4494 |
| 4488 virtual Definition* Canonicalize(FlowGraph* flow_graph); | 4495 virtual Definition* Canonicalize(FlowGraph* flow_graph); |
| 4489 | 4496 |
| 4490 static MethodRecognizer::Kind RecognizedKindFromArrayCid(intptr_t cid); | 4497 static MethodRecognizer::Kind RecognizedKindFromArrayCid(intptr_t cid); |
| 4491 | 4498 |
| 4492 static bool IsFixedLengthArrayCid(intptr_t cid); | 4499 static bool IsFixedLengthArrayCid(intptr_t cid); |
| 4493 | 4500 |
| 4494 virtual bool AllowsCSE() const { return immutable_; } | 4501 virtual bool AllowsCSE() const { return immutable_; } |
| 4495 virtual EffectSet Effects() const { return EffectSet::None(); } | 4502 virtual EffectSet Effects() const { return EffectSet::None(); } |
| 4496 virtual EffectSet Dependencies() const; | 4503 virtual EffectSet Dependencies() const; |
| 4497 virtual bool AttributesEqual(Instruction* other) const; | 4504 virtual bool AttributesEqual(Instruction* other) const; |
| (...skipping 3672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8170 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ | 8177 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ |
| 8171 UNIMPLEMENTED(); \ | 8178 UNIMPLEMENTED(); \ |
| 8172 return NULL; \ | 8179 return NULL; \ |
| 8173 } \ | 8180 } \ |
| 8174 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 8181 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } |
| 8175 | 8182 |
| 8176 | 8183 |
| 8177 } // namespace dart | 8184 } // namespace dart |
| 8178 | 8185 |
| 8179 #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ | 8186 #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |