| 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 void InlineStringLengthGetter(InstanceCallInstr* call); | 158 void InlineStringLengthGetter(InstanceCallInstr* call); |
| 159 void InlineStringIsEmptyGetter(InstanceCallInstr* call); | 159 void InlineStringIsEmptyGetter(InstanceCallInstr* call); |
| 160 void InlineObjectCid(InstanceCallInstr* call); | 160 void InlineObjectCid(InstanceCallInstr* call); |
| 161 | 161 |
| 162 RawBool* InstanceOfAsBool(const ICData& ic_data, | 162 RawBool* InstanceOfAsBool(const ICData& ic_data, |
| 163 const AbstractType& type) const; | 163 const AbstractType& type) const; |
| 164 | 164 |
| 165 void ReplaceWithMathCFunction(InstanceCallInstr* call, | 165 void ReplaceWithMathCFunction(InstanceCallInstr* call, |
| 166 MethodRecognizer::Kind recognized_kind); | 166 MethodRecognizer::Kind recognized_kind); |
| 167 | 167 |
| 168 void HandleComparison(ComparisonInstr* comp, |
| 169 const ICData& ic_data, |
| 170 Instruction* current_instruction); |
| 171 |
| 168 void HandleRelationalOp(RelationalOpInstr* comp); | 172 void HandleRelationalOp(RelationalOpInstr* comp); |
| 169 | 173 |
| 170 // Visit an equality compare. The current instruction can be the | 174 // Visit an equality compare. The current instruction can be the |
| 171 // comparison itself or a branch on the comparison. | 175 // comparison itself or a branch on the comparison. |
| 172 template <typename T> | 176 template <typename T> |
| 173 void HandleEqualityCompare(EqualityCompareInstr* comp, | 177 void HandleEqualityCompare(EqualityCompareInstr* comp, |
| 174 T current_instruction); | 178 T current_instruction); |
| 175 | 179 |
| 176 static bool CanStrictifyEqualityCompare(EqualityCompareInstr* call); | 180 static bool CanStrictifyEqualityCompare(EqualityCompareInstr* call); |
| 177 | 181 |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 // Optimize spill stores inside try-blocks by identifying values that always | 367 // Optimize spill stores inside try-blocks by identifying values that always |
| 364 // contain a single known constant at catch block entry. | 368 // contain a single known constant at catch block entry. |
| 365 class TryCatchAnalyzer : public AllStatic { | 369 class TryCatchAnalyzer : public AllStatic { |
| 366 public: | 370 public: |
| 367 static void Optimize(FlowGraph* flow_graph); | 371 static void Optimize(FlowGraph* flow_graph); |
| 368 }; | 372 }; |
| 369 | 373 |
| 370 } // namespace dart | 374 } // namespace dart |
| 371 | 375 |
| 372 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ | 376 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ |
| OLD | NEW |