| 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 1455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1466 ASSERT(block_entry_->previous() == NULL); | 1466 ASSERT(block_entry_->previous() == NULL); |
| 1467 } | 1467 } |
| 1468 | 1468 |
| 1469 void Advance() { | 1469 void Advance() { |
| 1470 ASSERT(!Done()); | 1470 ASSERT(!Done()); |
| 1471 current_ = current_->previous(); | 1471 current_ = current_->previous(); |
| 1472 } | 1472 } |
| 1473 | 1473 |
| 1474 bool Done() const { return current_ == block_entry_; } | 1474 bool Done() const { return current_ == block_entry_; } |
| 1475 | 1475 |
| 1476 void RemoveCurrentFromGraph(); |
| 1477 |
| 1476 Instruction* Current() const { return current_; } | 1478 Instruction* Current() const { return current_; } |
| 1477 | 1479 |
| 1478 private: | 1480 private: |
| 1479 BlockEntryInstr* block_entry_; | 1481 BlockEntryInstr* block_entry_; |
| 1480 Instruction* current_; | 1482 Instruction* current_; |
| 1481 }; | 1483 }; |
| 1482 | 1484 |
| 1483 | 1485 |
| 1484 class GraphEntryInstr : public BlockEntryInstr { | 1486 class GraphEntryInstr : public BlockEntryInstr { |
| 1485 public: | 1487 public: |
| (...skipping 2265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3751 | 3753 |
| 3752 void set_is_initialization(bool value) { is_initialization_ = value; } | 3754 void set_is_initialization(bool value) { is_initialization_ = value; } |
| 3753 | 3755 |
| 3754 enum { | 3756 enum { |
| 3755 kInstancePos = 0, | 3757 kInstancePos = 0, |
| 3756 kValuePos = 1 | 3758 kValuePos = 1 |
| 3757 }; | 3759 }; |
| 3758 | 3760 |
| 3759 Value* instance() const { return inputs_[kInstancePos]; } | 3761 Value* instance() const { return inputs_[kInstancePos]; } |
| 3760 Value* value() const { return inputs_[kValuePos]; } | 3762 Value* value() const { return inputs_[kValuePos]; } |
| 3763 bool is_initialization() const { return is_initialization_; } |
| 3761 virtual intptr_t token_pos() const { return token_pos_; } | 3764 virtual intptr_t token_pos() const { return token_pos_; } |
| 3762 | 3765 |
| 3763 virtual CompileType* ComputeInitialType() const; | 3766 virtual CompileType* ComputeInitialType() const; |
| 3764 | 3767 |
| 3765 const Field& field() const { return field_; } | 3768 const Field& field() const { return field_; } |
| 3766 intptr_t offset_in_bytes() const { return offset_in_bytes_; } | 3769 intptr_t offset_in_bytes() const { return offset_in_bytes_; } |
| 3767 | 3770 |
| 3768 bool ShouldEmitStoreBarrier() const { | 3771 bool ShouldEmitStoreBarrier() const { |
| 3769 return value()->NeedsStoreBuffer() | 3772 return value()->NeedsStoreBuffer() |
| 3770 && (emit_store_barrier_ == kEmitStoreBarrier); | 3773 && (emit_store_barrier_ == kEmitStoreBarrier); |
| (...skipping 4182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7953 ForwardInstructionIterator* current_iterator_; | 7956 ForwardInstructionIterator* current_iterator_; |
| 7954 | 7957 |
| 7955 private: | 7958 private: |
| 7956 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 7959 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
| 7957 }; | 7960 }; |
| 7958 | 7961 |
| 7959 | 7962 |
| 7960 } // namespace dart | 7963 } // namespace dart |
| 7961 | 7964 |
| 7962 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 7965 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |