Chromium Code Reviews| 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 17 matching lines...) Expand all Loading... | |
| 28 // Use ICData to optimize, replace or eliminate instructions. | 28 // Use ICData to optimize, replace or eliminate instructions. |
| 29 void ApplyICData(); | 29 void ApplyICData(); |
| 30 | 30 |
| 31 // Use propagated class ids to optimize, replace or eliminate instructions. | 31 // Use propagated class ids to optimize, replace or eliminate instructions. |
| 32 void ApplyClassIds(); | 32 void ApplyClassIds(); |
| 33 | 33 |
| 34 // Optimize (a << b) & c pattern: if c is a positive Smi or zero, then the | 34 // Optimize (a << b) & c pattern: if c is a positive Smi or zero, then the |
| 35 // shift can be a truncating Smi shift-left and result is always Smi. | 35 // shift can be a truncating Smi shift-left and result is always Smi. |
| 36 void TryOptimizeLeftShiftWithBitAndPattern(); | 36 void TryOptimizeLeftShiftWithBitAndPattern(); |
| 37 | 37 |
| 38 void Canonicalize(); | 38 bool Canonicalize(); |
|
srdjan
2013/05/02 21:00:54
Please add comment when is true/false returned.
Vyacheslav Egorov (Google)
2013/05/02 21:20:25
Done.
| |
| 39 | 39 |
| 40 void EliminateDeadPhis(); | 40 void EliminateDeadPhis(); |
| 41 | 41 |
| 42 void SelectRepresentations(); | 42 void SelectRepresentations(); |
| 43 | 43 |
| 44 void InferSmiRanges(); | 44 void InferSmiRanges(); |
| 45 | 45 |
| 46 virtual void VisitStaticCall(StaticCallInstr* instr); | 46 virtual void VisitStaticCall(StaticCallInstr* instr); |
| 47 virtual void VisitInstanceCall(InstanceCallInstr* instr); | 47 virtual void VisitInstanceCall(InstanceCallInstr* instr); |
| 48 virtual void VisitRelationalOp(RelationalOpInstr* instr); | 48 virtual void VisitRelationalOp(RelationalOpInstr* instr); |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 // platform. | 317 // platform. |
| 318 class IfConverter : public AllStatic { | 318 class IfConverter : public AllStatic { |
| 319 public: | 319 public: |
| 320 static void Simplify(FlowGraph* flow_graph); | 320 static void Simplify(FlowGraph* flow_graph); |
| 321 }; | 321 }; |
| 322 | 322 |
| 323 | 323 |
| 324 } // namespace dart | 324 } // namespace dart |
| 325 | 325 |
| 326 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ | 326 #endif // VM_FLOW_GRAPH_OPTIMIZER_H_ |
| OLD | NEW |