| 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 |