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

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

Issue 11642003: Create and cache method extraction stub in the ICData. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: ready for review. Created 8 years 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_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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 void InsertConversionsFor(Definition* def); 82 void InsertConversionsFor(Definition* def);
83 83
84 void InsertConversion(Representation from, 84 void InsertConversion(Representation from,
85 Representation to, 85 Representation to,
86 Instruction* instr, 86 Instruction* instr,
87 Value* use, 87 Value* use,
88 Definition* def, 88 Definition* def,
89 Instruction* deopt_target); 89 Instruction* deopt_target);
90 90
91 bool InstanceCallNeedsClassCheck(InstanceCallInstr* call) const; 91 bool InstanceCallNeedsClassCheck(InstanceCallInstr* call) const;
92 bool MethodExtractorNeedsClassCheck(InstanceCallInstr* call) const;
92 93
93 void InlineImplicitInstanceGetter(InstanceCallInstr* call); 94 void InlineImplicitInstanceGetter(InstanceCallInstr* call);
94 void InlineArrayLengthGetter(InstanceCallInstr* call, 95 void InlineArrayLengthGetter(InstanceCallInstr* call,
95 intptr_t length_offset, 96 intptr_t length_offset,
96 bool is_immutable, 97 bool is_immutable,
97 MethodRecognizer::Kind kind); 98 MethodRecognizer::Kind kind);
98 void InlineGArrayCapacityGetter(InstanceCallInstr* call); 99 void InlineGArrayCapacityGetter(InstanceCallInstr* call);
99 void InlineStringLengthGetter(InstanceCallInstr* call); 100 void InlineStringLengthGetter(InstanceCallInstr* call);
100 void InlineStringIsEmptyGetter(InstanceCallInstr* call); 101 void InlineStringIsEmptyGetter(InstanceCallInstr* call);
102 void InlineMethodExtractor(InstanceCallInstr* call);
103
101 104
102 FlowGraph* flow_graph_; 105 FlowGraph* flow_graph_;
103 106
104 DISALLOW_COPY_AND_ASSIGN(FlowGraphOptimizer); 107 DISALLOW_COPY_AND_ASSIGN(FlowGraphOptimizer);
105 }; 108 };
106 109
107 110
108 class ParsedFunction; 111 class ParsedFunction;
109 112
110 113
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 232
230 // Worklists of blocks and definitions. 233 // Worklists of blocks and definitions.
231 GrowableArray<BlockEntryInstr*> block_worklist_; 234 GrowableArray<BlockEntryInstr*> block_worklist_;
232 GrowableArray<Definition*> definition_worklist_; 235 GrowableArray<Definition*> definition_worklist_;
233 }; 236 };
234 237
235 238
236 } // namespace dart 239 } // namespace dart
237 240
238 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ 241 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698