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 VM_INTERMEDIATE_LANGUAGE_H_ | 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ |
6 #define VM_INTERMEDIATE_LANGUAGE_H_ | 6 #define 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 4182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4193 } | 4193 } |
4194 | 4194 |
4195 virtual bool CanDeoptimize() const { return false; } | 4195 virtual bool CanDeoptimize() const { return false; } |
4196 virtual EffectSet Effects() const { return EffectSet::None(); } | 4196 virtual EffectSet Effects() const { return EffectSet::None(); } |
4197 | 4197 |
4198 Location* locations() { return locations_; } | 4198 Location* locations() { return locations_; } |
4199 void set_locations(Location* locations) { locations_ = locations; } | 4199 void set_locations(Location* locations) { locations_ = locations; } |
4200 | 4200 |
4201 virtual bool MayThrow() const { return false; } | 4201 virtual bool MayThrow() const { return false; } |
4202 | 4202 |
| 4203 void RemapRegisters(intptr_t* fpu_reg_slots, |
| 4204 intptr_t* cpu_reg_slots); |
| 4205 |
4203 private: | 4206 private: |
4204 virtual void RawSetInputAt(intptr_t i, Value* value) { | 4207 virtual void RawSetInputAt(intptr_t i, Value* value) { |
4205 (*values_)[i] = value; | 4208 (*values_)[i] = value; |
4206 } | 4209 } |
4207 | 4210 |
4208 const Class& cls_; | 4211 const Class& cls_; |
4209 const ZoneGrowableArray<const Object*>& slots_; | 4212 const ZoneGrowableArray<const Object*>& slots_; |
4210 ZoneGrowableArray<Value*>* values_; | 4213 ZoneGrowableArray<Value*>* values_; |
4211 Location* locations_; | 4214 Location* locations_; |
4212 | 4215 |
(...skipping 3500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7713 } | 7716 } |
7714 | 7717 |
7715 const Code& code() const { return code_; } | 7718 const Code& code() const { return code_; } |
7716 | 7719 |
7717 Environment* DeepCopy() const { return DeepCopy(Length()); } | 7720 Environment* DeepCopy() const { return DeepCopy(Length()); } |
7718 | 7721 |
7719 void DeepCopyTo(Instruction* instr) const; | 7722 void DeepCopyTo(Instruction* instr) const; |
7720 void DeepCopyToOuter(Instruction* instr) const; | 7723 void DeepCopyToOuter(Instruction* instr) const; |
7721 | 7724 |
7722 void PrintTo(BufferFormatter* f) const; | 7725 void PrintTo(BufferFormatter* f) const; |
| 7726 const char* ToCString() const; |
7723 | 7727 |
7724 private: | 7728 private: |
7725 friend class ShallowIterator; | 7729 friend class ShallowIterator; |
7726 | 7730 |
7727 Environment(intptr_t length, | 7731 Environment(intptr_t length, |
7728 intptr_t fixed_parameter_count, | 7732 intptr_t fixed_parameter_count, |
7729 intptr_t deopt_id, | 7733 intptr_t deopt_id, |
7730 const Code& code, | 7734 const Code& code, |
7731 Environment* outer) | 7735 Environment* outer) |
7732 : values_(length), | 7736 : values_(length), |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7782 ForwardInstructionIterator* current_iterator_; | 7786 ForwardInstructionIterator* current_iterator_; |
7783 | 7787 |
7784 private: | 7788 private: |
7785 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 7789 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
7786 }; | 7790 }; |
7787 | 7791 |
7788 | 7792 |
7789 } // namespace dart | 7793 } // namespace dart |
7790 | 7794 |
7791 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 7795 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
OLD | NEW |