| 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 792 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 803 // Returns set of effects created by this instruction. | 803 // Returns set of effects created by this instruction. |
| 804 virtual EffectSet Effects() const = 0; | 804 virtual EffectSet Effects() const = 0; |
| 805 | 805 |
| 806 // Returns set of effects that affect this instruction. | 806 // Returns set of effects that affect this instruction. |
| 807 virtual EffectSet Dependencies() const { | 807 virtual EffectSet Dependencies() const { |
| 808 UNREACHABLE(); | 808 UNREACHABLE(); |
| 809 return EffectSet::All(); | 809 return EffectSet::All(); |
| 810 } | 810 } |
| 811 | 811 |
| 812 // Get the block entry for this instruction. | 812 // Get the block entry for this instruction. |
| 813 virtual BlockEntryInstr* GetBlock() const; | 813 virtual BlockEntryInstr* GetBlock(); |
| 814 | 814 |
| 815 // Place identifiers used by the load optimization pass. | 815 // Place identifiers used by the load optimization pass. |
| 816 intptr_t place_id() const { return place_id_; } | 816 intptr_t place_id() const { return place_id_; } |
| 817 void set_place_id(intptr_t place_id) { place_id_ = place_id; } | 817 void set_place_id(intptr_t place_id) { place_id_ = place_id; } |
| 818 bool HasPlaceId() const { return place_id_ != kNoPlaceId; } | 818 bool HasPlaceId() const { return place_id_ != kNoPlaceId; } |
| 819 | 819 |
| 820 intptr_t inlining_id() const { return inlining_id_; } | 820 intptr_t inlining_id() const { return inlining_id_; } |
| 821 void set_inlining_id(intptr_t value) { | 821 void set_inlining_id(intptr_t value) { |
| 822 ASSERT(value >= 0); | 822 ASSERT(value >= 0); |
| 823 inlining_id_ = value; | 823 inlining_id_ = value; |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1174 // True for blocks inside a try { } region. | 1174 // True for blocks inside a try { } region. |
| 1175 bool InsideTryBlock() const { | 1175 bool InsideTryBlock() const { |
| 1176 return try_index_ != CatchClauseNode::kInvalidTryIndex; | 1176 return try_index_ != CatchClauseNode::kInvalidTryIndex; |
| 1177 } | 1177 } |
| 1178 | 1178 |
| 1179 BitVector* loop_info() const { return loop_info_; } | 1179 BitVector* loop_info() const { return loop_info_; } |
| 1180 void set_loop_info(BitVector* loop_info) { | 1180 void set_loop_info(BitVector* loop_info) { |
| 1181 loop_info_ = loop_info; | 1181 loop_info_ = loop_info; |
| 1182 } | 1182 } |
| 1183 | 1183 |
| 1184 virtual BlockEntryInstr* GetBlock() const { | 1184 virtual BlockEntryInstr* GetBlock() { |
| 1185 return const_cast<BlockEntryInstr*>(this); | 1185 return this; |
| 1186 } | 1186 } |
| 1187 | 1187 |
| 1188 // Helper to mutate the graph during inlining. This block should be | 1188 // Helper to mutate the graph during inlining. This block should be |
| 1189 // replaced with new_block as a predecessor of all of this block's | 1189 // replaced with new_block as a predecessor of all of this block's |
| 1190 // successors. | 1190 // successors. |
| 1191 void ReplaceAsPredecessorWith(BlockEntryInstr* new_block); | 1191 void ReplaceAsPredecessorWith(BlockEntryInstr* new_block); |
| 1192 | 1192 |
| 1193 void set_block_id(intptr_t block_id) { block_id_ = block_id; } | 1193 void set_block_id(intptr_t block_id) { block_id_ = block_id; } |
| 1194 | 1194 |
| 1195 intptr_t offset() const { return offset_; } | 1195 intptr_t offset() const { return offset_; } |
| (...skipping 683 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1879 is_alive_(false), | 1879 is_alive_(false), |
| 1880 representation_(kTagged), | 1880 representation_(kTagged), |
| 1881 reaching_defs_(NULL), | 1881 reaching_defs_(NULL), |
| 1882 loop_variable_info_(NULL) { | 1882 loop_variable_info_(NULL) { |
| 1883 for (intptr_t i = 0; i < num_inputs; ++i) { | 1883 for (intptr_t i = 0; i < num_inputs; ++i) { |
| 1884 inputs_.Add(NULL); | 1884 inputs_.Add(NULL); |
| 1885 } | 1885 } |
| 1886 } | 1886 } |
| 1887 | 1887 |
| 1888 // Get the block entry for that instruction. | 1888 // Get the block entry for that instruction. |
| 1889 virtual BlockEntryInstr* GetBlock() const { return block(); } | 1889 virtual BlockEntryInstr* GetBlock() { return block(); } |
| 1890 JoinEntryInstr* block() const { return block_; } | 1890 JoinEntryInstr* block() const { return block_; } |
| 1891 | 1891 |
| 1892 virtual CompileType ComputeType() const; | 1892 virtual CompileType ComputeType() const; |
| 1893 virtual bool RecomputeType(); | 1893 virtual bool RecomputeType(); |
| 1894 | 1894 |
| 1895 intptr_t InputCount() const { return inputs_.length(); } | 1895 intptr_t InputCount() const { return inputs_.length(); } |
| 1896 | 1896 |
| 1897 Value* InputAt(intptr_t i) const { return inputs_[i]; } | 1897 Value* InputAt(intptr_t i) const { return inputs_[i]; } |
| 1898 | 1898 |
| 1899 virtual bool CanDeoptimize() const { return false; } | 1899 virtual bool CanDeoptimize() const { return false; } |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1974 BlockEntryInstr* block, | 1974 BlockEntryInstr* block, |
| 1975 Register base_reg = FPREG) | 1975 Register base_reg = FPREG) |
| 1976 : index_(index), base_reg_(base_reg), block_(block) { } | 1976 : index_(index), base_reg_(base_reg), block_(block) { } |
| 1977 | 1977 |
| 1978 DECLARE_INSTRUCTION(Parameter) | 1978 DECLARE_INSTRUCTION(Parameter) |
| 1979 | 1979 |
| 1980 intptr_t index() const { return index_; } | 1980 intptr_t index() const { return index_; } |
| 1981 Register base_reg() const { return base_reg_; } | 1981 Register base_reg() const { return base_reg_; } |
| 1982 | 1982 |
| 1983 // Get the block entry for that instruction. | 1983 // Get the block entry for that instruction. |
| 1984 virtual BlockEntryInstr* GetBlock() const { return block_; } | 1984 virtual BlockEntryInstr* GetBlock() { return block_; } |
| 1985 | 1985 |
| 1986 intptr_t InputCount() const { return 0; } | 1986 intptr_t InputCount() const { return 0; } |
| 1987 Value* InputAt(intptr_t i) const { | 1987 Value* InputAt(intptr_t i) const { |
| 1988 UNREACHABLE(); | 1988 UNREACHABLE(); |
| 1989 return NULL; | 1989 return NULL; |
| 1990 } | 1990 } |
| 1991 | 1991 |
| 1992 virtual bool CanDeoptimize() const { return false; } | 1992 virtual bool CanDeoptimize() const { return false; } |
| 1993 | 1993 |
| 1994 virtual EffectSet Effects() const { return EffectSet::None(); } | 1994 virtual EffectSet Effects() const { return EffectSet::None(); } |
| (...skipping 6128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8123 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ | 8123 LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \ |
| 8124 UNIMPLEMENTED(); \ | 8124 UNIMPLEMENTED(); \ |
| 8125 return NULL; \ | 8125 return NULL; \ |
| 8126 } \ | 8126 } \ |
| 8127 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } | 8127 void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); } |
| 8128 | 8128 |
| 8129 | 8129 |
| 8130 } // namespace dart | 8130 } // namespace dart |
| 8131 | 8131 |
| 8132 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 8132 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |