OLD | NEW |
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_OPTIMIZER_H_ | 5 #ifndef VM_FLOW_GRAPH_OPTIMIZER_H_ |
6 #define VM_FLOW_GRAPH_OPTIMIZER_H_ | 6 #define VM_FLOW_GRAPH_OPTIMIZER_H_ |
7 | 7 |
8 #include "vm/intermediate_language.h" | 8 #include "vm/intermediate_language.h" |
9 #include "vm/flow_graph.h" | 9 #include "vm/flow_graph.h" |
10 | 10 |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 void TryMergeTruncDivMod(GrowableArray<BinarySmiOpInstr*>* merge_candidates); | 253 void TryMergeTruncDivMod(GrowableArray<BinarySmiOpInstr*>* merge_candidates); |
254 void TryMergeMathUnary(GrowableArray<MathUnaryInstr*>* merge_candidates); | 254 void TryMergeMathUnary(GrowableArray<MathUnaryInstr*>* merge_candidates); |
255 | 255 |
256 void AppendLoadIndexedForMerged(Definition* instr, intptr_t ix, intptr_t cid); | 256 void AppendLoadIndexedForMerged(Definition* instr, intptr_t ix, intptr_t cid); |
257 void AppendExtractNthOutputForMerged(Definition* instr, intptr_t ix, | 257 void AppendExtractNthOutputForMerged(Definition* instr, intptr_t ix, |
258 Representation rep, intptr_t cid); | 258 Representation rep, intptr_t cid); |
259 bool TryStringLengthOneEquality(InstanceCallInstr* call, Token::Kind op_kind); | 259 bool TryStringLengthOneEquality(InstanceCallInstr* call, Token::Kind op_kind); |
260 | 260 |
261 void InstanceCallNoopt(InstanceCallInstr* instr); | 261 void InstanceCallNoopt(InstanceCallInstr* instr); |
262 | 262 |
| 263 RawField* GetField(intptr_t class_id, const String& field_name); |
| 264 |
263 Thread* thread() const { return flow_graph_->thread(); } | 265 Thread* thread() const { return flow_graph_->thread(); } |
264 Isolate* isolate() const { return flow_graph_->isolate(); } | 266 Isolate* isolate() const { return flow_graph_->isolate(); } |
265 Zone* zone() const { return flow_graph_->zone(); } | 267 Zone* zone() const { return flow_graph_->zone(); } |
266 | 268 |
267 const Function& function() const { return flow_graph_->function(); } | 269 const Function& function() const { return flow_graph_->function(); } |
268 | 270 |
269 FlowGraph* flow_graph_; | 271 FlowGraph* flow_graph_; |
270 | 272 |
271 DISALLOW_COPY_AND_ASSIGN(FlowGraphOptimizer); | 273 DISALLOW_COPY_AND_ASSIGN(FlowGraphOptimizer); |
272 }; | 274 }; |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 // Optimize spill stores inside try-blocks by identifying values that always | 438 // Optimize spill stores inside try-blocks by identifying values that always |
437 // contain a single known constant at catch block entry. | 439 // contain a single known constant at catch block entry. |
438 class TryCatchAnalyzer : public AllStatic { | 440 class TryCatchAnalyzer : public AllStatic { |
439 public: | 441 public: |
440 static void Optimize(FlowGraph* flow_graph); | 442 static void Optimize(FlowGraph* flow_graph); |
441 }; | 443 }; |
442 | 444 |
443 } // namespace dart | 445 } // namespace dart |
444 | 446 |
445 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ | 447 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ |
OLD | NEW |