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

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

Issue 23691024: If a rethrow is encountered in the catch block, then its handler must be marked that it needs stack… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 3 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/code_descriptors.h ('k') | runtime/vm/flow_graph_builder.cc » ('j') | 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_FLOW_GRAPH_BUILDER_H_ 5 #ifndef VM_FLOW_GRAPH_BUILDER_H_
6 #define VM_FLOW_GRAPH_BUILDER_H_ 6 #define VM_FLOW_GRAPH_BUILDER_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 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 intptr_t context_level() const { return context_level_; } 121 intptr_t context_level() const { return context_level_; }
122 122
123 void IncrementLoopDepth() { ++loop_depth_; } 123 void IncrementLoopDepth() { ++loop_depth_; }
124 void DecrementLoopDepth() { --loop_depth_; } 124 void DecrementLoopDepth() { --loop_depth_; }
125 intptr_t loop_depth() const { return loop_depth_; } 125 intptr_t loop_depth() const { return loop_depth_; }
126 126
127 // Manage the currently active try index. 127 // Manage the currently active try index.
128 void set_try_index(intptr_t value) { try_index_ = value; } 128 void set_try_index(intptr_t value) { try_index_ = value; }
129 intptr_t try_index() const { return try_index_; } 129 intptr_t try_index() const { return try_index_; }
130 130
131 // Manage the currently active catch-handler try index.
132 void set_catch_try_index(intptr_t value) { catch_try_index_ = value; }
133 intptr_t catch_try_index() const { return catch_try_index_; }
134
131 void AddCatchEntry(CatchBlockEntryInstr* entry); 135 void AddCatchEntry(CatchBlockEntryInstr* entry);
132 136
133 intptr_t num_copied_params() const { 137 intptr_t num_copied_params() const {
134 return num_copied_params_; 138 return num_copied_params_;
135 } 139 }
136 intptr_t num_non_copied_params() const { 140 intptr_t num_non_copied_params() const {
137 return num_non_copied_params_; 141 return num_non_copied_params_;
138 } 142 }
139 intptr_t num_stack_locals() const { 143 intptr_t num_stack_locals() const {
140 return num_stack_locals_; 144 return num_stack_locals_;
(...skipping 21 matching lines...) Expand all
162 const Array& ic_data_array_; 166 const Array& ic_data_array_;
163 167
164 const intptr_t num_copied_params_; 168 const intptr_t num_copied_params_;
165 const intptr_t num_non_copied_params_; 169 const intptr_t num_non_copied_params_;
166 const intptr_t num_stack_locals_; // Does not include any parameters. 170 const intptr_t num_stack_locals_; // Does not include any parameters.
167 InlineExitCollector* const exit_collector_; 171 InlineExitCollector* const exit_collector_;
168 172
169 intptr_t last_used_block_id_; 173 intptr_t last_used_block_id_;
170 intptr_t context_level_; 174 intptr_t context_level_;
171 intptr_t try_index_; 175 intptr_t try_index_;
176 intptr_t catch_try_index_;
172 intptr_t loop_depth_; 177 intptr_t loop_depth_;
173 GraphEntryInstr* graph_entry_; 178 GraphEntryInstr* graph_entry_;
174 179
175 // Outgoing argument stack height. 180 // Outgoing argument stack height.
176 intptr_t args_pushed_; 181 intptr_t args_pushed_;
177 182
178 // The deopt id of the OSR entry or Isolate::kNoDeoptId if not compiling 183 // The deopt id of the OSR entry or Isolate::kNoDeoptId if not compiling
179 // for OSR. 184 // for OSR.
180 const intptr_t osr_id_; 185 const intptr_t osr_id_;
181 186
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 // Output parameters. 520 // Output parameters.
516 GrowableArray<TargetEntryInstr**> true_successor_addresses_; 521 GrowableArray<TargetEntryInstr**> true_successor_addresses_;
517 GrowableArray<TargetEntryInstr**> false_successor_addresses_; 522 GrowableArray<TargetEntryInstr**> false_successor_addresses_;
518 523
519 intptr_t condition_token_pos_; 524 intptr_t condition_token_pos_;
520 }; 525 };
521 526
522 } // namespace dart 527 } // namespace dart
523 528
524 #endif // VM_FLOW_GRAPH_BUILDER_H_ 529 #endif // VM_FLOW_GRAPH_BUILDER_H_
OLDNEW
« no previous file with comments | « runtime/vm/code_descriptors.h ('k') | runtime/vm/flow_graph_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698