Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(633)

Side by Side Diff: runtime/vm/intermediate_language.h

Issue 10071016: Eliminated last bailout (except for type checked mode) in the new compiler: generate type arguments… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_compiler_x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698