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

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

Issue 27339003: When a value has been optimized away by the compiler, set its value to (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 2 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/debugger_api_impl_test.cc ('k') | runtime/vm/flow_graph.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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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_H_ 5 #ifndef VM_FLOW_GRAPH_H_
6 #define VM_FLOW_GRAPH_H_ 6 #define VM_FLOW_GRAPH_H_
7 7
8 #include "vm/growable_array.h" 8 #include "vm/growable_array.h"
9 #include "vm/intermediate_language.h" 9 #include "vm/intermediate_language.h"
10 #include "vm/parser.h" 10 #include "vm/parser.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 intptr_t allocate_block_id() { return ++max_block_id_; } 107 intptr_t allocate_block_id() { return ++max_block_id_; }
108 108
109 GraphEntryInstr* graph_entry() const { 109 GraphEntryInstr* graph_entry() const {
110 return graph_entry_; 110 return graph_entry_;
111 } 111 }
112 112
113 ConstantInstr* constant_null() const { 113 ConstantInstr* constant_null() const {
114 return constant_null_; 114 return constant_null_;
115 } 115 }
116 116
117 ConstantInstr* constant_dead() const {
118 return constant_dead_;
119 }
120
117 intptr_t alloc_ssa_temp_index() { return current_ssa_temp_index_++; } 121 intptr_t alloc_ssa_temp_index() { return current_ssa_temp_index_++; }
118 122
119 intptr_t InstructionCount() const; 123 intptr_t InstructionCount() const;
120 124
121 ConstantInstr* GetConstant(const Object& object); 125 ConstantInstr* GetConstant(const Object& object);
122 void AddToInitialDefinitions(Definition* defn); 126 void AddToInitialDefinitions(Definition* defn);
123 127
124 void InsertBefore(Instruction* next, 128 void InsertBefore(Instruction* next,
125 Instruction* instr, 129 Instruction* instr,
126 Environment* env, 130 Environment* env,
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 const ParsedFunction& parsed_function_; 266 const ParsedFunction& parsed_function_;
263 const intptr_t num_copied_params_; 267 const intptr_t num_copied_params_;
264 const intptr_t num_non_copied_params_; 268 const intptr_t num_non_copied_params_;
265 const intptr_t num_stack_locals_; 269 const intptr_t num_stack_locals_;
266 GraphEntryInstr* graph_entry_; 270 GraphEntryInstr* graph_entry_;
267 GrowableArray<BlockEntryInstr*> preorder_; 271 GrowableArray<BlockEntryInstr*> preorder_;
268 GrowableArray<BlockEntryInstr*> postorder_; 272 GrowableArray<BlockEntryInstr*> postorder_;
269 GrowableArray<BlockEntryInstr*> reverse_postorder_; 273 GrowableArray<BlockEntryInstr*> reverse_postorder_;
270 GrowableArray<BlockEntryInstr*> optimized_block_order_; 274 GrowableArray<BlockEntryInstr*> optimized_block_order_;
271 ConstantInstr* constant_null_; 275 ConstantInstr* constant_null_;
276 ConstantInstr* constant_dead_;
272 277
273 BlockEffects* block_effects_; 278 BlockEffects* block_effects_;
274 bool licm_allowed_; 279 bool licm_allowed_;
275 280
276 bool use_far_branches_; 281 bool use_far_branches_;
277 282
278 ZoneGrowableArray<BlockEntryInstr*>* loop_headers_; 283 ZoneGrowableArray<BlockEntryInstr*>* loop_headers_;
279 ZoneGrowableArray<BitVector*>* loop_invariant_loads_; 284 ZoneGrowableArray<BitVector*>* loop_invariant_loads_;
280 ZoneGrowableArray<const Field*>* guarded_fields_; 285 ZoneGrowableArray<const Field*>* guarded_fields_;
281 }; 286 };
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 // Per block sets of available blocks. Block A is available at the block B if 381 // Per block sets of available blocks. Block A is available at the block B if
377 // and only if A dominates B and all paths from A to B are free of side 382 // and only if A dominates B and all paths from A to B are free of side
378 // effects. 383 // effects.
379 GrowableArray<BitVector*> available_at_; 384 GrowableArray<BitVector*> available_at_;
380 }; 385 };
381 386
382 387
383 } // namespace dart 388 } // namespace dart
384 389
385 #endif // VM_FLOW_GRAPH_H_ 390 #endif // VM_FLOW_GRAPH_H_
OLDNEW
« no previous file with comments | « runtime/vm/debugger_api_impl_test.cc ('k') | runtime/vm/flow_graph.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698