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