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

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

Issue 410333003: Shorter TryAllocate instruction sequence on ARM/ARM64/MIPS. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 5 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
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 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 void AddSlowPathCode(SlowPathCode* slow_path); 438 void AddSlowPathCode(SlowPathCode* slow_path);
439 439
440 void FinalizeExceptionHandlers(const Code& code); 440 void FinalizeExceptionHandlers(const Code& code);
441 void FinalizePcDescriptors(const Code& code); 441 void FinalizePcDescriptors(const Code& code);
442 void FinalizeDeoptInfo(const Code& code); 442 void FinalizeDeoptInfo(const Code& code);
443 void FinalizeStackmaps(const Code& code); 443 void FinalizeStackmaps(const Code& code);
444 void FinalizeVarDescriptors(const Code& code); 444 void FinalizeVarDescriptors(const Code& code);
445 void FinalizeStaticCallTargetsTable(const Code& code); 445 void FinalizeStaticCallTargetsTable(const Code& code);
446 446
447 const Class& double_class() const { return double_class_; } 447 const Class& double_class() const { return double_class_; }
448 const Class& mint_class() const { return mint_class_; }
448 const Class& float32x4_class() const { return float32x4_class_; } 449 const Class& float32x4_class() const { return float32x4_class_; }
449 const Class& float64x2_class() const { return float64x2_class_; } 450 const Class& float64x2_class() const { return float64x2_class_; }
450 const Class& int32x4_class() const { return int32x4_class_; } 451 const Class& int32x4_class() const { return int32x4_class_; }
451 452
452 void SaveLiveRegisters(LocationSummary* locs); 453 void SaveLiveRegisters(LocationSummary* locs);
453 void RestoreLiveRegisters(LocationSummary* locs); 454 void RestoreLiveRegisters(LocationSummary* locs);
454 455
455 Environment* SlowPathEnvironmentFor(Instruction* instruction); 456 Environment* SlowPathEnvironmentFor(Instruction* instruction);
456 457
457 intptr_t CurrentTryIndex() const { 458 intptr_t CurrentTryIndex() const {
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 GrowableArray<BlockInfo*> block_info_; 605 GrowableArray<BlockInfo*> block_info_;
605 GrowableArray<CompilerDeoptInfo*> deopt_infos_; 606 GrowableArray<CompilerDeoptInfo*> deopt_infos_;
606 GrowableArray<SlowPathCode*> slow_path_code_; 607 GrowableArray<SlowPathCode*> slow_path_code_;
607 // Stores: [code offset, function, null(code)]. 608 // Stores: [code offset, function, null(code)].
608 const GrowableObjectArray& static_calls_target_table_; 609 const GrowableObjectArray& static_calls_target_table_;
609 const bool is_optimizing_; 610 const bool is_optimizing_;
610 // Set to true if optimized code has IC calls. 611 // Set to true if optimized code has IC calls.
611 bool may_reoptimize_; 612 bool may_reoptimize_;
612 613
613 const Class& double_class_; 614 const Class& double_class_;
615 const Class& mint_class_;
614 const Class& float32x4_class_; 616 const Class& float32x4_class_;
615 const Class& float64x2_class_; 617 const Class& float64x2_class_;
616 const Class& int32x4_class_; 618 const Class& int32x4_class_;
617 const Class& list_class_; 619 const Class& list_class_;
618 620
619 ParallelMoveResolver parallel_move_resolver_; 621 ParallelMoveResolver parallel_move_resolver_;
620 622
621 // Currently instructions generate deopt stubs internally by 623 // Currently instructions generate deopt stubs internally by
622 // calling AddDeoptStub. To communicate deoptimization environment 624 // calling AddDeoptStub. To communicate deoptimization environment
623 // that should be used when deoptimizing we store it in this variable. 625 // that should be used when deoptimizing we store it in this variable.
624 // In future AddDeoptStub should be moved out of the instruction template. 626 // In future AddDeoptStub should be moved out of the instruction template.
625 Environment* pending_deoptimization_env_; 627 Environment* pending_deoptimization_env_;
626 628
627 intptr_t entry_patch_pc_offset_; 629 intptr_t entry_patch_pc_offset_;
628 intptr_t patch_code_pc_offset_; 630 intptr_t patch_code_pc_offset_;
629 intptr_t lazy_deopt_pc_offset_; 631 intptr_t lazy_deopt_pc_offset_;
630 632
631 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_; 633 ZoneGrowableArray<const ICData*>* deopt_id_to_ic_data_;
632 634
633 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler); 635 DISALLOW_COPY_AND_ASSIGN(FlowGraphCompiler);
634 }; 636 };
635 637
636 } // namespace dart 638 } // namespace dart
637 639
638 #endif // VM_FLOW_GRAPH_COMPILER_H_ 640 #endif // VM_FLOW_GRAPH_COMPILER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698