OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_SCHEDULER_H_ | 5 #ifndef V8_COMPILER_SCHEDULER_H_ |
6 #define V8_COMPILER_SCHEDULER_H_ | 6 #define V8_COMPILER_SCHEDULER_H_ |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/compiler/opcodes.h" | 10 #include "src/compiler/opcodes.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 inline SchedulerData* GetData(Node* node); | 71 inline SchedulerData* GetData(Node* node); |
72 | 72 |
73 Placement GetPlacement(Node* node); | 73 Placement GetPlacement(Node* node); |
74 void UpdatePlacement(Node* node, Placement placement); | 74 void UpdatePlacement(Node* node, Placement placement); |
75 | 75 |
76 inline bool IsCoupledControlEdge(Node* node, int index); | 76 inline bool IsCoupledControlEdge(Node* node, int index); |
77 void IncrementUnscheduledUseCount(Node* node, int index, Node* from); | 77 void IncrementUnscheduledUseCount(Node* node, int index, Node* from); |
78 void DecrementUnscheduledUseCount(Node* node, int index, Node* from); | 78 void DecrementUnscheduledUseCount(Node* node, int index, Node* from); |
79 | 79 |
80 BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2); | 80 BasicBlock* GetCommonDominator(BasicBlock* b1, BasicBlock* b2); |
| 81 void PropagateImmediateDominators(BasicBlock* block); |
81 | 82 |
82 // Phase 1: Build control-flow graph. | 83 // Phase 1: Build control-flow graph. |
83 friend class CFGBuilder; | 84 friend class CFGBuilder; |
84 void BuildCFG(); | 85 void BuildCFG(); |
85 | 86 |
86 // Phase 2: Compute special RPO and dominator tree. | 87 // Phase 2: Compute special RPO and dominator tree. |
87 friend class SpecialRPONumberer; | 88 friend class SpecialRPONumberer; |
88 void ComputeSpecialRPONumbering(); | 89 void ComputeSpecialRPONumbering(); |
89 void GenerateImmediateDominatorTree(); | 90 void GenerateImmediateDominatorTree(); |
90 | 91 |
(...skipping 14 matching lines...) Expand all Loading... |
105 | 106 |
106 void FuseFloatingControl(BasicBlock* block, Node* node); | 107 void FuseFloatingControl(BasicBlock* block, Node* node); |
107 void MovePlannedNodes(BasicBlock* from, BasicBlock* to); | 108 void MovePlannedNodes(BasicBlock* from, BasicBlock* to); |
108 }; | 109 }; |
109 | 110 |
110 } // namespace compiler | 111 } // namespace compiler |
111 } // namespace internal | 112 } // namespace internal |
112 } // namespace v8 | 113 } // namespace v8 |
113 | 114 |
114 #endif // V8_COMPILER_SCHEDULER_H_ | 115 #endif // V8_COMPILER_SCHEDULER_H_ |
OLD | NEW |