| 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 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 5 #ifndef V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
| 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 6 #define V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "src/compiler/common-operator.h" | 10 #include "src/compiler/common-operator.h" |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 void VisitConstant(Node* node); | 203 void VisitConstant(Node* node); |
| 204 void VisitCall(Node* call, BasicBlock* handler = nullptr); | 204 void VisitCall(Node* call, BasicBlock* handler = nullptr); |
| 205 void VisitTailCall(Node* call); | 205 void VisitTailCall(Node* call); |
| 206 void VisitGoto(BasicBlock* target); | 206 void VisitGoto(BasicBlock* target); |
| 207 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch); | 207 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch); |
| 208 void VisitSwitch(Node* node, const SwitchInfo& sw); | 208 void VisitSwitch(Node* node, const SwitchInfo& sw); |
| 209 void VisitDeoptimize(Node* value); | 209 void VisitDeoptimize(Node* value); |
| 210 void VisitReturn(Node* value); | 210 void VisitReturn(Node* value); |
| 211 void VisitThrow(Node* value); | 211 void VisitThrow(Node* value); |
| 212 | 212 |
| 213 bool EmitTailCallSetup(Node* call, CallBuffer* buffer, |
| 214 InstructionCode* opcode); |
| 215 |
| 213 // =========================================================================== | 216 // =========================================================================== |
| 214 | 217 |
| 215 Schedule* schedule() const { return schedule_; } | 218 Schedule* schedule() const { return schedule_; } |
| 216 Linkage* linkage() const { return linkage_; } | 219 Linkage* linkage() const { return linkage_; } |
| 217 InstructionSequence* sequence() const { return sequence_; } | 220 InstructionSequence* sequence() const { return sequence_; } |
| 218 Zone* instruction_zone() const { return sequence()->zone(); } | 221 Zone* instruction_zone() const { return sequence()->zone(); } |
| 219 Zone* zone() const { return zone_; } | 222 Zone* zone() const { return zone_; } |
| 220 | 223 |
| 221 // =========================================================================== | 224 // =========================================================================== |
| 222 | 225 |
| 223 Zone* const zone_; | 226 Zone* const zone_; |
| 224 Linkage* const linkage_; | 227 Linkage* const linkage_; |
| 225 InstructionSequence* const sequence_; | 228 InstructionSequence* const sequence_; |
| 226 SourcePositionTable* const source_positions_; | 229 SourcePositionTable* const source_positions_; |
| 227 SourcePositionMode const source_position_mode_; | 230 SourcePositionMode const source_position_mode_; |
| 228 Features features_; | 231 Features features_; |
| 229 Schedule* const schedule_; | 232 Schedule* const schedule_; |
| 230 BasicBlock* current_block_; | 233 BasicBlock* current_block_; |
| 231 ZoneVector<Instruction*> instructions_; | 234 ZoneVector<Instruction*> instructions_; |
| 232 BoolVector defined_; | 235 BoolVector defined_; |
| 233 BoolVector used_; | 236 BoolVector used_; |
| 234 IntVector virtual_registers_; | 237 IntVector virtual_registers_; |
| 235 }; | 238 }; |
| 236 | 239 |
| 237 } // namespace compiler | 240 } // namespace compiler |
| 238 } // namespace internal | 241 } // namespace internal |
| 239 } // namespace v8 | 242 } // namespace v8 |
| 240 | 243 |
| 241 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 244 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
| OLD | NEW |