OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/compiler/instruction-selector.h" | 5 #include "src/compiler/instruction-selector.h" |
6 | 6 |
7 #include "src/compiler/instruction-selector-impl.h" | 7 #include "src/compiler/instruction-selector-impl.h" |
8 #include "src/compiler/node-matchers.h" | 8 #include "src/compiler/node-matchers.h" |
9 #include "src/compiler/node-properties-inl.h" | 9 #include "src/compiler/node-properties-inl.h" |
10 #include "src/compiler/pipeline.h" | 10 #include "src/compiler/pipeline.h" |
11 | 11 |
12 namespace v8 { | 12 namespace v8 { |
13 namespace internal { | 13 namespace internal { |
14 namespace compiler { | 14 namespace compiler { |
15 | 15 |
16 InstructionSelector::InstructionSelector(InstructionSequence* sequence, | 16 InstructionSelector::InstructionSelector(InstructionSequence* sequence, |
17 SourcePositionTable* source_positions) | 17 SourcePositionTable* source_positions, |
| 18 Features features) |
18 : zone_(sequence->isolate()), | 19 : zone_(sequence->isolate()), |
19 sequence_(sequence), | 20 sequence_(sequence), |
20 source_positions_(source_positions), | 21 source_positions_(source_positions), |
| 22 features_(features), |
21 current_block_(NULL), | 23 current_block_(NULL), |
22 instructions_(InstructionDeque::allocator_type(zone())), | 24 instructions_(InstructionDeque::allocator_type(zone())), |
23 defined_(graph()->NodeCount(), false, BoolVector::allocator_type(zone())), | 25 defined_(graph()->NodeCount(), false, BoolVector::allocator_type(zone())), |
24 used_(graph()->NodeCount(), false, BoolVector::allocator_type(zone())) {} | 26 used_(graph()->NodeCount(), false, BoolVector::allocator_type(zone())) {} |
25 | 27 |
26 | 28 |
27 void InstructionSelector::SelectInstructions() { | 29 void InstructionSelector::SelectInstructions() { |
28 // Mark the inputs of all phis in loop headers as used. | 30 // Mark the inputs of all phis in loop headers as used. |
29 BasicBlockVector* blocks = schedule()->rpo_order(); | 31 BasicBlockVector* blocks = schedule()->rpo_order(); |
30 for (BasicBlockVectorIter i = blocks->begin(); i != blocks->end(); ++i) { | 32 for (BasicBlockVectorIter i = blocks->begin(); i != blocks->end(); ++i) { |
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1001 | 1003 |
1002 | 1004 |
1003 void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation, | 1005 void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation, |
1004 BasicBlock* deoptimization) {} | 1006 BasicBlock* deoptimization) {} |
1005 | 1007 |
1006 #endif // !V8_TURBOFAN_BACKEND | 1008 #endif // !V8_TURBOFAN_BACKEND |
1007 | 1009 |
1008 } // namespace compiler | 1010 } // namespace compiler |
1009 } // namespace internal | 1011 } // namespace internal |
1010 } // namespace v8 | 1012 } // namespace v8 |
OLD | NEW |