| 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 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 DISALLOW_COPY_AND_ASSIGN(BooleanNegateComp); | 600 DISALLOW_COPY_AND_ASSIGN(BooleanNegateComp); |
| 601 }; | 601 }; |
| 602 | 602 |
| 603 | 603 |
| 604 class InstanceOfComp : public Computation { | 604 class InstanceOfComp : public Computation { |
| 605 public: | 605 public: |
| 606 InstanceOfComp(intptr_t node_id, | 606 InstanceOfComp(intptr_t node_id, |
| 607 intptr_t token_index, | 607 intptr_t token_index, |
| 608 intptr_t try_index, | 608 intptr_t try_index, |
| 609 Value* value, | 609 Value* value, |
| 610 Value* type_arguments, // Can be NULL. |
| 610 const AbstractType& type, | 611 const AbstractType& type, |
| 611 bool negate_result) | 612 bool negate_result) |
| 612 : node_id_(node_id), | 613 : node_id_(node_id), |
| 613 token_index_(token_index), | 614 token_index_(token_index), |
| 614 try_index_(try_index), | 615 try_index_(try_index), |
| 615 value_(value), | 616 value_(value), |
| 617 type_arguments_(type_arguments), |
| 616 type_(type), | 618 type_(type), |
| 617 negate_result_(negate_result) {} | 619 negate_result_(negate_result) { |
| 620 ASSERT(value_ != NULL); |
| 621 ASSERT(!type.IsNull()); |
| 622 } |
| 618 | 623 |
| 619 DECLARE_COMPUTATION(InstanceOf) | 624 DECLARE_COMPUTATION(InstanceOf) |
| 620 | 625 |
| 621 Value* value() const { return value_; } | 626 Value* value() const { return value_; } |
| 627 Value* type_arguments() const { return type_arguments_; } |
| 622 bool negate_result() const { return negate_result_; } | 628 bool negate_result() const { return negate_result_; } |
| 623 const AbstractType& type() const { return type_; } | 629 const AbstractType& type() const { return type_; } |
| 624 intptr_t node_id() const { return node_id_; } | 630 intptr_t node_id() const { return node_id_; } |
| 625 intptr_t token_index() const { return token_index_; } | 631 intptr_t token_index() const { return token_index_; } |
| 626 intptr_t try_index() const { return try_index_; } | 632 intptr_t try_index() const { return try_index_; } |
| 627 | 633 |
| 628 private: | 634 private: |
| 629 const intptr_t node_id_; | 635 const intptr_t node_id_; |
| 630 const intptr_t token_index_; | 636 const intptr_t token_index_; |
| 631 const intptr_t try_index_; | 637 const intptr_t try_index_; |
| 632 Value* value_; | 638 Value* value_; |
| 639 Value* type_arguments_; |
| 633 const AbstractType& type_; | 640 const AbstractType& type_; |
| 634 const bool negate_result_; | 641 const bool negate_result_; |
| 635 | 642 |
| 636 DISALLOW_COPY_AND_ASSIGN(InstanceOfComp); | 643 DISALLOW_COPY_AND_ASSIGN(InstanceOfComp); |
| 637 }; | 644 }; |
| 638 | 645 |
| 639 | 646 |
| 640 class AllocateObjectComp : public Computation { | 647 class AllocateObjectComp : public Computation { |
| 641 public: | 648 public: |
| 642 AllocateObjectComp(ConstructorCallNode* node, | 649 AllocateObjectComp(ConstructorCallNode* node, |
| (...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1441 const GrowableArray<BlockEntryInstr*>& block_order_; | 1448 const GrowableArray<BlockEntryInstr*>& block_order_; |
| 1442 | 1449 |
| 1443 private: | 1450 private: |
| 1444 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); | 1451 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); |
| 1445 }; | 1452 }; |
| 1446 | 1453 |
| 1447 | 1454 |
| 1448 } // namespace dart | 1455 } // namespace dart |
| 1449 | 1456 |
| 1450 #endif // VM_INTERMEDIATE_LANGUAGE_H_ | 1457 #endif // VM_INTERMEDIATE_LANGUAGE_H_ |
| OLD | NEW |