Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/interpreter/bytecode-array-builder.cc

Issue 2109773004: Move RelocInfo::kNoPosition. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@removedead
Patch Set: rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/globals.h ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/interpreter/bytecode-array-builder.h" 5 #include "src/interpreter/bytecode-array-builder.h"
6 6
7 #include "src/compiler.h" 7 #include "src/compiler.h"
8 #include "src/globals.h"
8 #include "src/interpreter/bytecode-array-writer.h" 9 #include "src/interpreter/bytecode-array-writer.h"
9 #include "src/interpreter/bytecode-dead-code-optimizer.h" 10 #include "src/interpreter/bytecode-dead-code-optimizer.h"
10 #include "src/interpreter/bytecode-label.h" 11 #include "src/interpreter/bytecode-label.h"
11 #include "src/interpreter/bytecode-peephole-optimizer.h" 12 #include "src/interpreter/bytecode-peephole-optimizer.h"
12 #include "src/interpreter/bytecode-register-optimizer.h" 13 #include "src/interpreter/bytecode-register-optimizer.h"
13 #include "src/interpreter/interpreter-intrinsics.h" 14 #include "src/interpreter/interpreter-intrinsics.h"
14 15
15 namespace v8 { 16 namespace v8 {
16 namespace internal { 17 namespace internal {
17 namespace interpreter { 18 namespace interpreter {
(...skipping 27 matching lines...) Expand all
45 BytecodePeepholeOptimizer(&constant_array_builder_, pipeline_); 46 BytecodePeepholeOptimizer(&constant_array_builder_, pipeline_);
46 } 47 }
47 48
48 if (FLAG_ignition_reo) { 49 if (FLAG_ignition_reo) {
49 pipeline_ = new (zone) BytecodeRegisterOptimizer( 50 pipeline_ = new (zone) BytecodeRegisterOptimizer(
50 zone, &temporary_allocator_, parameter_count, pipeline_); 51 zone, &temporary_allocator_, parameter_count, pipeline_);
51 } 52 }
52 53
53 return_position_ = 54 return_position_ =
54 literal ? std::max(literal->start_position(), literal->end_position() - 1) 55 literal ? std::max(literal->start_position(), literal->end_position() - 1)
55 : RelocInfo::kNoPosition; 56 : kNoSourcePosition;
56 } 57 }
57 58
58 Register BytecodeArrayBuilder::first_context_register() const { 59 Register BytecodeArrayBuilder::first_context_register() const {
59 DCHECK_GT(context_register_count_, 0); 60 DCHECK_GT(context_register_count_, 0);
60 return Register(local_register_count_); 61 return Register(local_register_count_);
61 } 62 }
62 63
63 Register BytecodeArrayBuilder::last_context_register() const { 64 Register BytecodeArrayBuilder::last_context_register() const {
64 DCHECK_GT(context_register_count_, 0); 65 DCHECK_GT(context_register_count_, 0);
65 return Register(local_register_count_ + context_register_count_ - 1); 66 return Register(local_register_count_ + context_register_count_ - 1);
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 BytecodeLabel* label) { 437 BytecodeLabel* label) {
437 return OutputJump(Bytecode::kJumpIfUndefined, label); 438 return OutputJump(Bytecode::kJumpIfUndefined, label);
438 } 439 }
439 440
440 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfNotHole( 441 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfNotHole(
441 BytecodeLabel* label) { 442 BytecodeLabel* label) {
442 return OutputJump(Bytecode::kJumpIfNotHole, label); 443 return OutputJump(Bytecode::kJumpIfNotHole, label);
443 } 444 }
444 445
445 BytecodeArrayBuilder& BytecodeArrayBuilder::StackCheck(int position) { 446 BytecodeArrayBuilder& BytecodeArrayBuilder::StackCheck(int position) {
446 if (position != RelocInfo::kNoPosition) { 447 if (position != kNoSourcePosition) {
447 // We need to attach a non-breakable source position to a stack 448 // We need to attach a non-breakable source position to a stack
448 // check, so we simply add it as expression position. There can be 449 // check, so we simply add it as expression position. There can be
449 // a prior statement position from constructs like: 450 // a prior statement position from constructs like:
450 // 451 //
451 // do var x; while (false); 452 // do var x; while (false);
452 // 453 //
453 // A Nop could be inserted for empty statements, but since no code 454 // A Nop could be inserted for empty statements, but since no code
454 // is associated with these positions, instead we force the stack 455 // is associated with these positions, instead we force the stack
455 // check's expression position which eliminates the empty 456 // check's expression position which eliminates the empty
456 // statement's position. 457 // statement's position.
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 LanguageMode language_mode) { 625 LanguageMode language_mode) {
625 Output(BytecodeForDelete(language_mode), RegisterOperand(object)); 626 Output(BytecodeForDelete(language_mode), RegisterOperand(object));
626 return *this; 627 return *this;
627 } 628 }
628 629
629 size_t BytecodeArrayBuilder::GetConstantPoolEntry(Handle<Object> object) { 630 size_t BytecodeArrayBuilder::GetConstantPoolEntry(Handle<Object> object) {
630 return constant_array_builder()->Insert(object); 631 return constant_array_builder()->Insert(object);
631 } 632 }
632 633
633 void BytecodeArrayBuilder::SetReturnPosition() { 634 void BytecodeArrayBuilder::SetReturnPosition() {
634 if (return_position_ == RelocInfo::kNoPosition) return; 635 if (return_position_ == kNoSourcePosition) return;
635 latest_source_info_.MakeStatementPosition(return_position_); 636 latest_source_info_.MakeStatementPosition(return_position_);
636 } 637 }
637 638
638 void BytecodeArrayBuilder::SetStatementPosition(Statement* stmt) { 639 void BytecodeArrayBuilder::SetStatementPosition(Statement* stmt) {
639 if (stmt->position() == RelocInfo::kNoPosition) return; 640 if (stmt->position() == kNoSourcePosition) return;
640 latest_source_info_.MakeStatementPosition(stmt->position()); 641 latest_source_info_.MakeStatementPosition(stmt->position());
641 } 642 }
642 643
643 void BytecodeArrayBuilder::SetExpressionPosition(Expression* expr) { 644 void BytecodeArrayBuilder::SetExpressionPosition(Expression* expr) {
644 if (expr->position() == RelocInfo::kNoPosition) return; 645 if (expr->position() == kNoSourcePosition) return;
645 if (!latest_source_info_.is_statement()) { 646 if (!latest_source_info_.is_statement()) {
646 // Ensure the current expression position is overwritten with the 647 // Ensure the current expression position is overwritten with the
647 // latest value. 648 // latest value.
648 latest_source_info_.MakeExpressionPosition(expr->position()); 649 latest_source_info_.MakeExpressionPosition(expr->position());
649 } 650 }
650 } 651 }
651 652
652 void BytecodeArrayBuilder::SetExpressionAsStatementPosition(Expression* expr) { 653 void BytecodeArrayBuilder::SetExpressionAsStatementPosition(Expression* expr) {
653 if (expr->position() == RelocInfo::kNoPosition) return; 654 if (expr->position() == kNoSourcePosition) return;
654 latest_source_info_.MakeStatementPosition(expr->position()); 655 latest_source_info_.MakeStatementPosition(expr->position());
655 } 656 }
656 657
657 bool BytecodeArrayBuilder::TemporaryRegisterIsLive(Register reg) const { 658 bool BytecodeArrayBuilder::TemporaryRegisterIsLive(Register reg) const {
658 return temporary_register_allocator()->RegisterIsLive(reg); 659 return temporary_register_allocator()->RegisterIsLive(reg);
659 } 660 }
660 661
661 bool BytecodeArrayBuilder::RegisterIsValid(Register reg) const { 662 bool BytecodeArrayBuilder::RegisterIsValid(Register reg) const {
662 if (!reg.is_valid()) { 663 if (!reg.is_valid()) {
663 return false; 664 return false;
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 return Bytecode::kTailCall; 931 return Bytecode::kTailCall;
931 default: 932 default:
932 UNREACHABLE(); 933 UNREACHABLE();
933 } 934 }
934 return Bytecode::kIllegal; 935 return Bytecode::kIllegal;
935 } 936 }
936 937
937 } // namespace interpreter 938 } // namespace interpreter
938 } // namespace internal 939 } // namespace internal
939 } // namespace v8 940 } // namespace v8
OLDNEW
« no previous file with comments | « src/globals.h ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698