OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
770 intptr_t fixed_parameter_count); | 770 intptr_t fixed_parameter_count); |
771 | 771 |
772 void AddCatchEntry(TargetEntryInstr* entry) { catch_entries_.Add(entry); } | 772 void AddCatchEntry(TargetEntryInstr* entry) { catch_entries_.Add(entry); } |
773 | 773 |
774 virtual void PrepareEntry(FlowGraphCompiler* compiler); | 774 virtual void PrepareEntry(FlowGraphCompiler* compiler); |
775 | 775 |
776 Environment* start_env() const { return start_env_; } | 776 Environment* start_env() const { return start_env_; } |
777 void set_start_env(Environment* env) { start_env_ = env; } | 777 void set_start_env(Environment* env) { start_env_ = env; } |
778 | 778 |
779 ConstantInstr* constant_null() const { return constant_null_; } | 779 ConstantInstr* constant_null() const { return constant_null_; } |
| 780 void set_constant_null(ConstantInstr* instr) { constant_null_ = instr; } |
780 | 781 |
781 intptr_t spill_slot_count() const { return spill_slot_count_; } | 782 intptr_t spill_slot_count() const { return spill_slot_count_; } |
782 void set_spill_slot_count(intptr_t count) { | 783 void set_spill_slot_count(intptr_t count) { |
783 ASSERT(count >= 0); | 784 ASSERT(count >= 0); |
784 spill_slot_count_ = count; | 785 spill_slot_count_ = count; |
785 } | 786 } |
786 | 787 |
787 TargetEntryInstr* normal_entry() const { return normal_entry_; } | 788 TargetEntryInstr* normal_entry() const { return normal_entry_; } |
788 | 789 |
789 virtual void PrintTo(BufferFormatter* f) const; | 790 virtual void PrintTo(BufferFormatter* f) const; |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1147 virtual intptr_t Hashcode() const { | 1148 virtual intptr_t Hashcode() const { |
1148 UNREACHABLE(); | 1149 UNREACHABLE(); |
1149 return 0; | 1150 return 0; |
1150 } | 1151 } |
1151 | 1152 |
1152 virtual intptr_t ResultCid() const { | 1153 virtual intptr_t ResultCid() const { |
1153 UNREACHABLE(); | 1154 UNREACHABLE(); |
1154 return kIllegalCid; | 1155 return kIllegalCid; |
1155 } | 1156 } |
1156 | 1157 |
1157 virtual void PrintTo(BufferFormatter* f) const; | 1158 virtual void PrintOperandsTo(BufferFormatter* f) const; |
1158 virtual void PrintToVisualizer(BufferFormatter* f) const; | 1159 virtual void PrintToVisualizer(BufferFormatter* f) const; |
1159 | 1160 |
1160 private: | 1161 private: |
1161 const intptr_t index_; | 1162 const intptr_t index_; |
1162 GraphEntryInstr* block_; | 1163 GraphEntryInstr* block_; |
1163 | 1164 |
1164 DISALLOW_COPY_AND_ASSIGN(ParameterInstr); | 1165 DISALLOW_COPY_AND_ASSIGN(ParameterInstr); |
1165 }; | 1166 }; |
1166 | 1167 |
1167 | 1168 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1202 return locs_; | 1203 return locs_; |
1203 } | 1204 } |
1204 | 1205 |
1205 virtual intptr_t Hashcode() const { | 1206 virtual intptr_t Hashcode() const { |
1206 UNREACHABLE(); | 1207 UNREACHABLE(); |
1207 return 0; | 1208 return 0; |
1208 } | 1209 } |
1209 | 1210 |
1210 virtual bool CanDeoptimize() const { return false; } | 1211 virtual bool CanDeoptimize() const { return false; } |
1211 | 1212 |
1212 virtual void PrintTo(BufferFormatter* f) const; | 1213 virtual void PrintOperandsTo(BufferFormatter* f) const; |
1213 virtual void PrintToVisualizer(BufferFormatter* f) const; | 1214 virtual void PrintToVisualizer(BufferFormatter* f) const; |
1214 | 1215 |
1215 private: | 1216 private: |
1216 Value* value_; | 1217 Value* value_; |
1217 LocationSummary* locs_; | 1218 LocationSummary* locs_; |
1218 | 1219 |
1219 DISALLOW_COPY_AND_ASSIGN(PushArgumentInstr); | 1220 DISALLOW_COPY_AND_ASSIGN(PushArgumentInstr); |
1220 }; | 1221 }; |
1221 | 1222 |
1222 | 1223 |
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1738 } | 1739 } |
1739 | 1740 |
1740 DECLARE_INSTRUCTION(PolymorphicInstanceCall) | 1741 DECLARE_INSTRUCTION(PolymorphicInstanceCall) |
1741 virtual RawAbstractType* CompileType() const; | 1742 virtual RawAbstractType* CompileType() const; |
1742 | 1743 |
1743 const ICData& ic_data() const { return ic_data_; } | 1744 const ICData& ic_data() const { return ic_data_; } |
1744 | 1745 |
1745 virtual bool CanDeoptimize() const { return true; } | 1746 virtual bool CanDeoptimize() const { return true; } |
1746 virtual intptr_t ResultCid() const { return kDynamicCid; } | 1747 virtual intptr_t ResultCid() const { return kDynamicCid; } |
1747 | 1748 |
1748 virtual void PrintTo(BufferFormatter* f) const; | 1749 virtual void PrintOperandsTo(BufferFormatter* f) const; |
1749 | 1750 |
1750 private: | 1751 private: |
1751 InstanceCallInstr* instance_call_; | 1752 InstanceCallInstr* instance_call_; |
1752 const ICData& ic_data_; | 1753 const ICData& ic_data_; |
1753 const bool with_checks_; | 1754 const bool with_checks_; |
1754 | 1755 |
1755 DISALLOW_COPY_AND_ASSIGN(PolymorphicInstanceCallInstr); | 1756 DISALLOW_COPY_AND_ASSIGN(PolymorphicInstanceCallInstr); |
1756 }; | 1757 }; |
1757 | 1758 |
1758 | 1759 |
(...skipping 1540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3299 ForwardInstructionIterator* current_iterator_; | 3300 ForwardInstructionIterator* current_iterator_; |
3300 | 3301 |
3301 private: | 3302 private: |
3302 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 3303 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
3303 }; | 3304 }; |
3304 | 3305 |
3305 | 3306 |
3306 } // namespace dart | 3307 } // namespace dart |
3307 | 3308 |
3308 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 3309 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
OLD | NEW |