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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 bool TryReplaceWithBinaryOp(InstanceCallInstr* call, Token::Kind op_kind); | 80 bool TryReplaceWithBinaryOp(InstanceCallInstr* call, Token::Kind op_kind); |
81 bool TryReplaceWithUnaryOp(InstanceCallInstr* call, Token::Kind op_kind); | 81 bool TryReplaceWithUnaryOp(InstanceCallInstr* call, Token::Kind op_kind); |
82 | 82 |
83 bool TryInlineInstanceGetter(InstanceCallInstr* call); | 83 bool TryInlineInstanceGetter(InstanceCallInstr* call); |
84 bool TryInlineInstanceSetter(InstanceCallInstr* call, | 84 bool TryInlineInstanceSetter(InstanceCallInstr* call, |
85 const ICData& unary_ic_data); | 85 const ICData& unary_ic_data); |
86 | 86 |
87 bool TryInlineInstanceMethod(InstanceCallInstr* call); | 87 bool TryInlineInstanceMethod(InstanceCallInstr* call); |
88 bool TryInlineFloat32x4Method(InstanceCallInstr* call, | 88 bool TryInlineFloat32x4Method(InstanceCallInstr* call, |
89 MethodRecognizer::Kind recognized_kind); | 89 MethodRecognizer::Kind recognized_kind); |
| 90 bool TryInlineUint32x4Method(InstanceCallInstr* call, |
| 91 MethodRecognizer::Kind recognized_kind); |
90 void ReplaceWithInstanceOf(InstanceCallInstr* instr); | 92 void ReplaceWithInstanceOf(InstanceCallInstr* instr); |
91 void ReplaceWithTypeCast(InstanceCallInstr* instr); | 93 void ReplaceWithTypeCast(InstanceCallInstr* instr); |
92 | 94 |
93 LoadIndexedInstr* BuildStringCodeUnitAt(InstanceCallInstr* call, | 95 LoadIndexedInstr* BuildStringCodeUnitAt(InstanceCallInstr* call, |
94 intptr_t cid); | 96 intptr_t cid); |
95 | 97 |
96 bool BuildByteArrayViewLoad(InstanceCallInstr* call, | 98 bool BuildByteArrayViewLoad(InstanceCallInstr* call, |
97 intptr_t receiver_cid, | 99 intptr_t receiver_cid, |
98 intptr_t view_cid); | 100 intptr_t view_cid); |
99 bool BuildByteArrayViewStore(InstanceCallInstr* call, | 101 bool BuildByteArrayViewStore(InstanceCallInstr* call, |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 const ZoneGrowableArray<const Field*>& fields); | 343 const ZoneGrowableArray<const Field*>& fields); |
342 | 344 |
343 FlowGraph* flow_graph_; | 345 FlowGraph* flow_graph_; |
344 | 346 |
345 GrowableArray<MaterializeObjectInstr*> materializations_; | 347 GrowableArray<MaterializeObjectInstr*> materializations_; |
346 }; | 348 }; |
347 | 349 |
348 } // namespace dart | 350 } // namespace dart |
349 | 351 |
350 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ | 352 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ |
OLD | NEW |