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 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 void VisitFinishRegion(Node* node); | 327 void VisitFinishRegion(Node* node); |
328 void VisitParameter(Node* node); | 328 void VisitParameter(Node* node); |
329 void VisitIfException(Node* node); | 329 void VisitIfException(Node* node); |
330 void VisitOsrValue(Node* node); | 330 void VisitOsrValue(Node* node); |
331 void VisitPhi(Node* node); | 331 void VisitPhi(Node* node); |
332 void VisitProjection(Node* node); | 332 void VisitProjection(Node* node); |
333 void VisitConstant(Node* node); | 333 void VisitConstant(Node* node); |
334 void VisitCall(Node* call, BasicBlock* handler = nullptr); | 334 void VisitCall(Node* call, BasicBlock* handler = nullptr); |
335 void VisitDeoptimizeIf(Node* node); | 335 void VisitDeoptimizeIf(Node* node); |
336 void VisitDeoptimizeUnless(Node* node); | 336 void VisitDeoptimizeUnless(Node* node); |
| 337 void VisitTrapIf(Node* node); |
| 338 void VisitTrapUnless(Node* node); |
337 void VisitTailCall(Node* call); | 339 void VisitTailCall(Node* call); |
338 void VisitGoto(BasicBlock* target); | 340 void VisitGoto(BasicBlock* target); |
339 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch); | 341 void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch); |
340 void VisitSwitch(Node* node, const SwitchInfo& sw); | 342 void VisitSwitch(Node* node, const SwitchInfo& sw); |
341 void VisitDeoptimize(DeoptimizeKind kind, DeoptimizeReason reason, | 343 void VisitDeoptimize(DeoptimizeKind kind, DeoptimizeReason reason, |
342 Node* value); | 344 Node* value); |
343 void VisitReturn(Node* ret); | 345 void VisitReturn(Node* ret); |
344 void VisitThrow(Node* value); | 346 void VisitThrow(Node* value); |
345 void VisitRetain(Node* node); | 347 void VisitRetain(Node* node); |
346 | 348 |
(...skipping 10 matching lines...) Expand all Loading... |
357 InstructionSequence* sequence() const { return sequence_; } | 359 InstructionSequence* sequence() const { return sequence_; } |
358 Zone* instruction_zone() const { return sequence()->zone(); } | 360 Zone* instruction_zone() const { return sequence()->zone(); } |
359 Zone* zone() const { return zone_; } | 361 Zone* zone() const { return zone_; } |
360 | 362 |
361 void set_instruction_selection_failed() { | 363 void set_instruction_selection_failed() { |
362 instruction_selection_failed_ = true; | 364 instruction_selection_failed_ = true; |
363 } | 365 } |
364 bool instruction_selection_failed() { return instruction_selection_failed_; } | 366 bool instruction_selection_failed() { return instruction_selection_failed_; } |
365 | 367 |
366 void MarkPairProjectionsAsWord32(Node* node); | 368 void MarkPairProjectionsAsWord32(Node* node); |
| 369 bool IsSourcePositionUsed(Node* node); |
367 | 370 |
368 // =========================================================================== | 371 // =========================================================================== |
369 | 372 |
370 Zone* const zone_; | 373 Zone* const zone_; |
371 Linkage* const linkage_; | 374 Linkage* const linkage_; |
372 InstructionSequence* const sequence_; | 375 InstructionSequence* const sequence_; |
373 SourcePositionTable* const source_positions_; | 376 SourcePositionTable* const source_positions_; |
374 SourcePositionMode const source_position_mode_; | 377 SourcePositionMode const source_position_mode_; |
375 Features features_; | 378 Features features_; |
376 Schedule* const schedule_; | 379 Schedule* const schedule_; |
377 BasicBlock* current_block_; | 380 BasicBlock* current_block_; |
378 ZoneVector<Instruction*> instructions_; | 381 ZoneVector<Instruction*> instructions_; |
379 BoolVector defined_; | 382 BoolVector defined_; |
380 BoolVector used_; | 383 BoolVector used_; |
381 IntVector effect_level_; | 384 IntVector effect_level_; |
382 IntVector virtual_registers_; | 385 IntVector virtual_registers_; |
383 IntVector virtual_register_rename_; | 386 IntVector virtual_register_rename_; |
384 InstructionScheduler* scheduler_; | 387 InstructionScheduler* scheduler_; |
385 EnableScheduling enable_scheduling_; | 388 EnableScheduling enable_scheduling_; |
386 EnableSerialization enable_serialization_; | 389 EnableSerialization enable_serialization_; |
387 Frame* frame_; | 390 Frame* frame_; |
388 bool instruction_selection_failed_; | 391 bool instruction_selection_failed_; |
389 }; | 392 }; |
390 | 393 |
391 } // namespace compiler | 394 } // namespace compiler |
392 } // namespace internal | 395 } // namespace internal |
393 } // namespace v8 | 396 } // namespace v8 |
394 | 397 |
395 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ | 398 #endif // V8_COMPILER_INSTRUCTION_SELECTOR_H_ |
OLD | NEW |