OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_INSTRUCTION_H_ | 5 #ifndef V8_COMPILER_INSTRUCTION_H_ |
6 #define V8_COMPILER_INSTRUCTION_H_ | 6 #define V8_COMPILER_INSTRUCTION_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <iosfwd> | 9 #include <iosfwd> |
10 #include <map> | 10 #include <map> |
(...skipping 1282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1293 | 1293 |
1294 bool needs_frame() const { return needs_frame_; } | 1294 bool needs_frame() const { return needs_frame_; } |
1295 void mark_needs_frame() { needs_frame_ = true; } | 1295 void mark_needs_frame() { needs_frame_ = true; } |
1296 | 1296 |
1297 bool must_construct_frame() const { return must_construct_frame_; } | 1297 bool must_construct_frame() const { return must_construct_frame_; } |
1298 void mark_must_construct_frame() { must_construct_frame_ = true; } | 1298 void mark_must_construct_frame() { must_construct_frame_ = true; } |
1299 | 1299 |
1300 bool must_deconstruct_frame() const { return must_deconstruct_frame_; } | 1300 bool must_deconstruct_frame() const { return must_deconstruct_frame_; } |
1301 void mark_must_deconstruct_frame() { must_deconstruct_frame_ = true; } | 1301 void mark_must_deconstruct_frame() { must_deconstruct_frame_ = true; } |
1302 | 1302 |
1303 void set_last_deferred(RpoNumber last) { last_deferred_ = last; } | |
1304 RpoNumber last_deferred() const { return last_deferred_; } | |
1305 | |
1306 private: | 1303 private: |
1307 Successors successors_; | 1304 Successors successors_; |
1308 Predecessors predecessors_; | 1305 Predecessors predecessors_; |
1309 PhiInstructions phis_; | 1306 PhiInstructions phis_; |
1310 RpoNumber ao_number_; // Assembly order number. | 1307 RpoNumber ao_number_; // Assembly order number. |
1311 const RpoNumber rpo_number_; | 1308 const RpoNumber rpo_number_; |
1312 const RpoNumber loop_header_; | 1309 const RpoNumber loop_header_; |
1313 const RpoNumber loop_end_; | 1310 const RpoNumber loop_end_; |
1314 int32_t code_start_; // start index of arch-specific code. | 1311 int32_t code_start_; // start index of arch-specific code. |
1315 int32_t code_end_; // end index of arch-specific code. | 1312 int32_t code_end_; // end index of arch-specific code. |
1316 const bool deferred_; // Block contains deferred code. | 1313 const bool deferred_; // Block contains deferred code. |
1317 const bool handler_; // Block is a handler entry point. | 1314 const bool handler_; // Block is a handler entry point. |
1318 bool needs_frame_; | 1315 bool needs_frame_; |
1319 bool must_construct_frame_; | 1316 bool must_construct_frame_; |
1320 bool must_deconstruct_frame_; | 1317 bool must_deconstruct_frame_; |
1321 RpoNumber last_deferred_; | |
1322 }; | 1318 }; |
1323 | 1319 |
1324 class InstructionSequence; | 1320 class InstructionSequence; |
1325 | 1321 |
1326 struct PrintableInstructionBlock { | 1322 struct PrintableInstructionBlock { |
1327 const RegisterConfiguration* register_configuration_; | 1323 const RegisterConfiguration* register_configuration_; |
1328 const InstructionBlock* block_; | 1324 const InstructionBlock* block_; |
1329 const InstructionSequence* code_; | 1325 const InstructionSequence* code_; |
1330 }; | 1326 }; |
1331 | 1327 |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1536 | 1532 |
1537 | 1533 |
1538 std::ostream& operator<<(std::ostream& os, | 1534 std::ostream& operator<<(std::ostream& os, |
1539 const PrintableInstructionSequence& code); | 1535 const PrintableInstructionSequence& code); |
1540 | 1536 |
1541 } // namespace compiler | 1537 } // namespace compiler |
1542 } // namespace internal | 1538 } // namespace internal |
1543 } // namespace v8 | 1539 } // namespace v8 |
1544 | 1540 |
1545 #endif // V8_COMPILER_INSTRUCTION_H_ | 1541 #endif // V8_COMPILER_INSTRUCTION_H_ |
OLD | NEW |