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

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

Issue 1308013002: Addressed review comments from previous CLs; adding more Symbols::FromConcat (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « no previous file | runtime/vm/flow_graph_compiler.cc » ('j') | runtime/vm/flow_graph_compiler.cc » ('J')
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_FLOW_GRAPH_COMPILER_H_ 5 #ifndef VM_FLOW_GRAPH_COMPILER_H_
6 #define VM_FLOW_GRAPH_COMPILER_H_ 6 #define VM_FLOW_GRAPH_COMPILER_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/assembler.h" 9 #include "vm/assembler.h"
10 #include "vm/code_descriptors.h" 10 #include "vm/code_descriptors.h"
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 656
657 #if defined(DEBUG) 657 #if defined(DEBUG)
658 void FrameStateUpdateWith(Instruction* instr); 658 void FrameStateUpdateWith(Instruction* instr);
659 void FrameStatePush(Definition* defn); 659 void FrameStatePush(Definition* defn);
660 void FrameStatePop(intptr_t count); 660 void FrameStatePop(intptr_t count);
661 bool FrameStateIsSafeToCall(); 661 bool FrameStateIsSafeToCall();
662 void FrameStateClear(); 662 void FrameStateClear();
663 #endif 663 #endif
664 664
665 // This struct contains either function or code, the other one being NULL. 665 // This struct contains either function or code, the other one being NULL.
666 struct StaticCallsStruct { 666 class StaticCallsStruct : public ZoneAllocated {
667 intptr_t offset; 667 public:
668 const intptr_t offset;
668 const Function* function; // Can be NULL. 669 const Function* function; // Can be NULL.
669 const Code* code; // Can be NULL. 670 const Code* code; // Can be NULL.
670 StaticCallsStruct(intptr_t offset_arg, 671 StaticCallsStruct(intptr_t offset_arg,
671 const Function* function_arg, 672 const Function* function_arg,
672 const Code* code_arg) 673 const Code* code_arg)
673 : offset(offset_arg), function(function_arg), code(code_arg) {} 674 : offset(offset_arg), function(function_arg), code(code_arg) {
675 ASSERT((function == NULL) || function->IsZoneHandle());
676 ASSERT((code == NULL) || code->IsZoneHandle());
677 }
678
679 private:
680 DISALLOW_COPY_AND_ASSIGN(StaticCallsStruct);
674 }; 681 };
675 682
676 Isolate* isolate_; 683 Isolate* isolate_;
677 Zone* zone_; 684 Zone* zone_;
678 Assembler* assembler_; 685 Assembler* assembler_;
679 const ParsedFunction& parsed_function_; 686 const ParsedFunction& parsed_function_;
680 const FlowGraph& flow_graph_; 687 const FlowGraph& flow_graph_;
681 const GrowableArray<BlockEntryInstr*>& block_order_; 688 const GrowableArray<BlockEntryInstr*>& block_order_;
682 689
683 #if defined(DEBUG) 690 #if defined(DEBUG)
684 GrowableArray<Representation> frame_state_; 691 GrowableArray<Representation> frame_state_;
685 #endif 692 #endif
686 693
687 // Compiler specific per-block state. Indexed by postorder block number 694 // Compiler specific per-block state. Indexed by postorder block number
688 // for convenience. This is not the block's index in the block order, 695 // for convenience. This is not the block's index in the block order,
689 // which is reverse postorder. 696 // which is reverse postorder.
690 BlockEntryInstr* current_block_; 697 BlockEntryInstr* current_block_;
691 ExceptionHandlerList* exception_handlers_list_; 698 ExceptionHandlerList* exception_handlers_list_;
692 DescriptorList* pc_descriptors_list_; 699 DescriptorList* pc_descriptors_list_;
693 StackmapTableBuilder* stackmap_table_builder_; 700 StackmapTableBuilder* stackmap_table_builder_;
694 GrowableArray<BlockInfo*> block_info_; 701 GrowableArray<BlockInfo*> block_info_;
695 GrowableArray<CompilerDeoptInfo*> deopt_infos_; 702 GrowableArray<CompilerDeoptInfo*> deopt_infos_;
696 GrowableArray<SlowPathCode*> slow_path_code_; 703 GrowableArray<SlowPathCode*> slow_path_code_;
697 // Stores static call targets as well as stub targets. 704 // Stores static call targets as well as stub targets.
698 // TODO(srdjan): Evaluate if we should store allocation stub targets into a 705 // TODO(srdjan): Evaluate if we should store allocation stub targets into a
699 // separate table? 706 // separate table?
700 GrowableArray<StaticCallsStruct> static_calls_target_table_; 707 GrowableArray<StaticCallsStruct*> static_calls_target_table_;
701 const bool is_optimizing_; 708 const bool is_optimizing_;
702 // Set to true if optimized code has IC calls. 709 // Set to true if optimized code has IC calls.
703 bool may_reoptimize_; 710 bool may_reoptimize_;
704 // True while emitting intrinsic code. 711 // True while emitting intrinsic code.
705 bool intrinsic_mode_; 712 bool intrinsic_mode_;
706 Label intrinsic_slow_path_label_; 713 Label intrinsic_slow_path_label_;
707 714
708 const Class& double_class_; 715 const Class& double_class_;
709 const Class& mint_class_; 716 const Class& mint_class_;
710 const Class& float32x4_class_; 717 const Class& float32x4_class_;
(...skipping 18 matching lines...) Expand all
729 Array& inlined_code_intervals_; 736 Array& inlined_code_intervals_;
730 const GrowableArray<const Function*>& inline_id_to_function_; 737 const GrowableArray<const Function*>& inline_id_to_function_;
731 const GrowableArray<intptr_t>& caller_inline_id_; 738 const GrowableArray<intptr_t>& caller_inline_id_;
732 739
733 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); 740 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
734 }; 741 };
735 742
736 } // namespace dart 743 } // namespace dart
737 744
738 #endif // VM_FLOW_GRAPH_COMPILER_H_ 745 #endif // VM_FLOW_GRAPH_COMPILER_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/flow_graph_compiler.cc » ('j') | runtime/vm/flow_graph_compiler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698