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

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

Issue 298913007: Use isolate when allocation Zone objects and handles: focus on FlowGraphOptimizer, next inliner. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 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.cc ('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 "platform/assert.h" 8 #include "platform/assert.h"
9 #include "platform/globals.h" 9 #include "platform/globals.h"
10 #include "vm/allocation.h" 10 #include "vm/allocation.h"
11 #include "vm/ast.h" 11 #include "vm/ast.h"
12 #include "vm/flow_graph.h"
12 #include "vm/growable_array.h" 13 #include "vm/growable_array.h"
13 #include "vm/intermediate_language.h" 14 #include "vm/intermediate_language.h"
14 #include "vm/raw_object.h" 15 #include "vm/raw_object.h"
15 16
16 namespace dart { 17 namespace dart {
17 18
18 class AbstractType; 19 class AbstractType;
19 class Array; 20 class Array;
20 class Class; 21 class Class;
21 class Field; 22 class Field;
22 class FlowGraph;
23 class LocalVariable; 23 class LocalVariable;
24 class ParsedFunction; 24 class ParsedFunction;
25 class String; 25 class String;
26 class TypeArguments; 26 class TypeArguments;
27 27
28 class NestedStatement; 28 class NestedStatement;
29 class TestGraphVisitor; 29 class TestGraphVisitor;
30 30
31 // List of recognized list factories: 31 // List of recognized list factories:
32 // (factory-name-symbol, result-cid, fingerprint). 32 // (factory-name-symbol, result-cid, fingerprint).
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 ReturnInstr* ReturnAt(intptr_t i) const { 122 ReturnInstr* ReturnAt(intptr_t i) const {
123 return exits_[i].exit_return; 123 return exits_[i].exit_return;
124 } 124 }
125 125
126 static int LowestBlockIdFirst(const Data* a, const Data* b); 126 static int LowestBlockIdFirst(const Data* a, const Data* b);
127 void SortExits(); 127 void SortExits();
128 128
129 Definition* JoinReturns(BlockEntryInstr** exit_block, 129 Definition* JoinReturns(BlockEntryInstr** exit_block,
130 Instruction** last_instruction); 130 Instruction** last_instruction);
131 131
132 Isolate* isolate() const { return caller_graph_->isolate(); }
133
132 FlowGraph* caller_graph_; 134 FlowGraph* caller_graph_;
133 Definition* call_; 135 Definition* call_;
134 GrowableArray<Data> exits_; 136 GrowableArray<Data> exits_;
135 }; 137 };
136 138
137 139
138 // Build a flow graph from a parsed function's AST. 140 // Build a flow graph from a parsed function's AST.
139 class FlowGraphBuilder: public ValueObject { 141 class FlowGraphBuilder: public ValueObject {
140 public: 142 public:
141 // The inlining context is NULL if not inlining. The osr_id is the deopt 143 // The inlining context is NULL if not inlining. The osr_id is the deopt
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 // Output parameters. 578 // Output parameters.
577 GrowableArray<TargetEntryInstr**> true_successor_addresses_; 579 GrowableArray<TargetEntryInstr**> true_successor_addresses_;
578 GrowableArray<TargetEntryInstr**> false_successor_addresses_; 580 GrowableArray<TargetEntryInstr**> false_successor_addresses_;
579 581
580 intptr_t condition_token_pos_; 582 intptr_t condition_token_pos_;
581 }; 583 };
582 584
583 } // namespace dart 585 } // namespace dart
584 586
585 #endif // VM_FLOW_GRAPH_BUILDER_H_ 587 #endif // VM_FLOW_GRAPH_BUILDER_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph.cc ('k') | runtime/vm/flow_graph_builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698