diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-03-23 14:05:51 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-03-25 09:44:12 +0100 |
commit | 9c9e2d7f4a576310eb652a620db090f00a320243 (patch) | |
tree | 5a41e9dde9234264ac4196a1b34493d8e0a6fde5 /deps/v8/src/interpreter | |
parent | 07088e6fc1342b5581d9e6f7ce084308573e3139 (diff) | |
download | android-node-v8-9c9e2d7f4a576310eb652a620db090f00a320243.tar.gz android-node-v8-9c9e2d7f4a576310eb652a620db090f00a320243.tar.bz2 android-node-v8-9c9e2d7f4a576310eb652a620db090f00a320243.zip |
deps: backport 3297130 from upstream V8
This fixes a build failure on Windows.
Original commit message:
Rename TypeFeedbackVector to FeedbackVector.
... and TypeFeedbackMetadata to FeedbackMetadata.
BUG=
Change-Id: I2556d1c2a8f37b8cf3d532cc98d973b6dc7e9e6c
Reviewed-on: https://chromium-review.googlesource.com/439244
Commit-Queue: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#42999}
Refs: https://github.com/nodejs/v8/issues/4
PR-URL: https://github.com/nodejs/node/pull/11752
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Diffstat (limited to 'deps/v8/src/interpreter')
-rw-r--r-- | deps/v8/src/interpreter/bytecode-generator.cc | 2 | ||||
-rw-r--r-- | deps/v8/src/interpreter/interpreter-assembler.cc | 60 | ||||
-rw-r--r-- | deps/v8/src/interpreter/interpreter-assembler.h | 10 | ||||
-rw-r--r-- | deps/v8/src/interpreter/interpreter.cc | 105 |
4 files changed, 87 insertions, 90 deletions
diff --git a/deps/v8/src/interpreter/bytecode-generator.cc b/deps/v8/src/interpreter/bytecode-generator.cc index 72c5b925c8..be59a218fc 100644 --- a/deps/v8/src/interpreter/bytecode-generator.cc +++ b/deps/v8/src/interpreter/bytecode-generator.cc @@ -3383,7 +3383,7 @@ LanguageMode BytecodeGenerator::language_mode() const { } int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { - return TypeFeedbackVector::GetIndex(slot); + return FeedbackVector::GetIndex(slot); } Runtime::FunctionId BytecodeGenerator::StoreToSuperRuntimeId() { diff --git a/deps/v8/src/interpreter/interpreter-assembler.cc b/deps/v8/src/interpreter/interpreter-assembler.cc index 1ccd342f06..5eb992c1da 100644 --- a/deps/v8/src/interpreter/interpreter-assembler.cc +++ b/deps/v8/src/interpreter/interpreter-assembler.cc @@ -461,7 +461,7 @@ Node* InterpreterAssembler::LoadAndUntagConstantPoolEntry(Node* index) { return SmiUntag(LoadConstantPoolEntry(index)); } -Node* InterpreterAssembler::LoadTypeFeedbackVector() { +Node* InterpreterAssembler::LoadFeedbackVector() { Node* function = LoadRegister(Register::function_closure()); Node* literals = LoadObjectField(function, JSFunction::kLiteralsOffset); Node* vector = @@ -489,22 +489,21 @@ void InterpreterAssembler::CallEpilogue() { } } -Node* InterpreterAssembler::IncrementCallCount(Node* type_feedback_vector, +Node* InterpreterAssembler::IncrementCallCount(Node* feedback_vector, Node* slot_id) { Comment("increment call count"); Node* call_count_slot = IntPtrAdd(slot_id, IntPtrConstant(1)); - Node* call_count = - LoadFixedArrayElement(type_feedback_vector, call_count_slot); + Node* call_count = LoadFixedArrayElement(feedback_vector, call_count_slot); Node* new_count = SmiAdd(call_count, SmiConstant(1)); // Count is Smi, so we don't need a write barrier. - return StoreFixedArrayElement(type_feedback_vector, call_count_slot, - new_count, SKIP_WRITE_BARRIER); + return StoreFixedArrayElement(feedback_vector, call_count_slot, new_count, + SKIP_WRITE_BARRIER); } Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, Node* first_arg, Node* arg_count, Node* slot_id, - Node* type_feedback_vector, + Node* feedback_vector, TailCallMode tail_call_mode) { // Static checks to assert it is safe to examine the type feedback element. // We don't know that we have a weak cell. We might have a private symbol @@ -526,7 +525,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, end(this); // The checks. First, does function match the recorded monomorphic target? - Node* feedback_element = LoadFixedArrayElement(type_feedback_vector, slot_id); + Node* feedback_element = LoadFixedArrayElement(feedback_vector, slot_id); Node* feedback_value = LoadWeakCellValueUnchecked(feedback_element); Node* is_monomorphic = WordEqual(function, feedback_value); GotoUnless(is_monomorphic, &extra_checks); @@ -539,7 +538,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, Bind(&call_function); { // Increment the call count. - IncrementCallCount(type_feedback_vector, slot_id); + IncrementCallCount(feedback_vector, slot_id); // Call using call function builtin. Callable callable = CodeFactory::InterpreterPushArgsAndCall( @@ -558,9 +557,9 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, Comment("check if megamorphic"); // Check if it is a megamorphic target. - Node* is_megamorphic = WordEqual( - feedback_element, - HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate()))); + Node* is_megamorphic = + WordEqual(feedback_element, + HeapConstant(FeedbackVector::MegamorphicSentinel(isolate()))); GotoIf(is_megamorphic, &call); Comment("check if it is an allocation site"); @@ -574,7 +573,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, GotoUnless(is_array_function, &mark_megamorphic); // It is a monomorphic Array function. Increment the call count. - IncrementCallCount(type_feedback_vector, slot_id); + IncrementCallCount(feedback_vector, slot_id); // Call ArrayConstructorStub. Callable callable_call = @@ -592,7 +591,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, // Check if it is uninitialized target first. Node* is_uninitialized = WordEqual( feedback_element, - HeapConstant(TypeFeedbackVector::UninitializedSentinel(isolate()))); + HeapConstant(FeedbackVector::UninitializedSentinel(isolate()))); GotoUnless(is_uninitialized, &mark_megamorphic); Comment("handle_unitinitialized"); @@ -619,7 +618,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, WordEqual(native_context, LoadNativeContext(context)); GotoUnless(is_same_native_context, &mark_megamorphic); - CreateWeakCellInFeedbackVector(type_feedback_vector, SmiTag(slot_id), + CreateWeakCellInFeedbackVector(feedback_vector, SmiTag(slot_id), function); // Call using call function builtin. @@ -628,8 +627,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, Bind(&create_allocation_site); { - CreateAllocationSiteInFeedbackVector(type_feedback_vector, - SmiTag(slot_id)); + CreateAllocationSiteInFeedbackVector(feedback_vector, SmiTag(slot_id)); // Call using CallFunction builtin. CallICs have a PREMONOMORPHIC state. // They start collecting feedback only when a call is executed the second @@ -644,8 +642,8 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, // and will not move during a GC. So it is safe to skip write barrier. DCHECK(Heap::RootIsImmortalImmovable(Heap::kmegamorphic_symbolRootIndex)); StoreFixedArrayElement( - type_feedback_vector, slot_id, - HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate())), + feedback_vector, slot_id, + HeapConstant(FeedbackVector::MegamorphicSentinel(isolate())), SKIP_WRITE_BARRIER); Goto(&call); } @@ -655,7 +653,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context, { Comment("Increment call count and call using Call builtin"); // Increment the call count. - IncrementCallCount(type_feedback_vector, slot_id); + IncrementCallCount(feedback_vector, slot_id); // Call using call builtin. Callable callable_call = CodeFactory::InterpreterPushArgsAndCall( @@ -685,14 +683,14 @@ Node* InterpreterAssembler::CallJS(Node* function, Node* context, Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, Node* new_target, Node* first_arg, Node* arg_count, Node* slot_id, - Node* type_feedback_vector) { + Node* feedback_vector) { Variable return_value(this, MachineRepresentation::kTagged); Variable allocation_feedback(this, MachineRepresentation::kTagged); Label call_construct_function(this, &allocation_feedback), extra_checks(this, Label::kDeferred), call_construct(this), end(this); // Slot id of 0 is used to indicate no type feedback is available. - STATIC_ASSERT(TypeFeedbackVector::kReservedIndexCount > 0); + STATIC_ASSERT(FeedbackVector::kReservedIndexCount > 0); Node* is_feedback_unavailable = WordEqual(slot_id, IntPtrConstant(0)); GotoIf(is_feedback_unavailable, &call_construct); @@ -707,7 +705,7 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, GotoUnless(is_js_function, &call_construct); // Check if it is a monomorphic constructor. - Node* feedback_element = LoadFixedArrayElement(type_feedback_vector, slot_id); + Node* feedback_element = LoadFixedArrayElement(feedback_vector, slot_id); Node* feedback_value = LoadWeakCellValueUnchecked(feedback_element); Node* is_monomorphic = WordEqual(constructor, feedback_value); allocation_feedback.Bind(UndefinedConstant()); @@ -716,7 +714,7 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, Bind(&call_construct_function); { Comment("call using callConstructFunction"); - IncrementCallCount(type_feedback_vector, slot_id); + IncrementCallCount(feedback_vector, slot_id); Callable callable_function = CodeFactory::InterpreterPushArgsAndConstruct( isolate(), CallableType::kJSFunction); return_value.Bind(CallStub(callable_function.descriptor(), @@ -733,9 +731,9 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, // Check if it is a megamorphic target. Comment("check if megamorphic"); - Node* is_megamorphic = WordEqual( - feedback_element, - HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate()))); + Node* is_megamorphic = + WordEqual(feedback_element, + HeapConstant(FeedbackVector::MegamorphicSentinel(isolate()))); GotoIf(is_megamorphic, &call_construct_function); Comment("check if weak cell"); @@ -789,7 +787,7 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, Bind(&create_allocation_site); { - Node* site = CreateAllocationSiteInFeedbackVector(type_feedback_vector, + Node* site = CreateAllocationSiteInFeedbackVector(feedback_vector, SmiTag(slot_id)); allocation_feedback.Bind(site); Goto(&call_construct_function); @@ -797,7 +795,7 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, Bind(&create_weak_cell); { - CreateWeakCellInFeedbackVector(type_feedback_vector, SmiTag(slot_id), + CreateWeakCellInFeedbackVector(feedback_vector, SmiTag(slot_id), constructor); Goto(&call_construct_function); } @@ -810,8 +808,8 @@ Node* InterpreterAssembler::CallConstruct(Node* constructor, Node* context, Comment("transition to megamorphic"); DCHECK(Heap::RootIsImmortalImmovable(Heap::kmegamorphic_symbolRootIndex)); StoreFixedArrayElement( - type_feedback_vector, slot_id, - HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate())), + feedback_vector, slot_id, + HeapConstant(FeedbackVector::MegamorphicSentinel(isolate())), SKIP_WRITE_BARRIER); Goto(&call_construct_function); } diff --git a/deps/v8/src/interpreter/interpreter-assembler.h b/deps/v8/src/interpreter/interpreter-assembler.h index 5183f3efed..092f4858de 100644 --- a/deps/v8/src/interpreter/interpreter-assembler.h +++ b/deps/v8/src/interpreter/interpreter-assembler.h @@ -102,12 +102,12 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { // Load and untag constant at |index| in the constant pool. compiler::Node* LoadAndUntagConstantPoolEntry(compiler::Node* index); - // Load the TypeFeedbackVector for the current function. - compiler::Node* LoadTypeFeedbackVector(); + // Load the FeedbackVector for the current function. + compiler::Node* LoadFeedbackVector(); // Increment the call count for a CALL_IC or construct call. // The call count is located at feedback_vector[slot_id + 1]. - compiler::Node* IncrementCallCount(compiler::Node* type_feedback_vector, + compiler::Node* IncrementCallCount(compiler::Node* feedback_vector, compiler::Node* slot_id); // Call JSFunction or Callable |function| with |arg_count| @@ -119,7 +119,7 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { compiler::Node* first_arg, compiler::Node* arg_count, compiler::Node* slot_id, - compiler::Node* type_feedback_vector, + compiler::Node* feedback_vector, TailCallMode tail_call_mode); // Call JSFunction or Callable |function| with |arg_count| @@ -140,7 +140,7 @@ class V8_EXPORT_PRIVATE InterpreterAssembler : public CodeStubAssembler { compiler::Node* first_arg, compiler::Node* arg_count, compiler::Node* slot_id, - compiler::Node* type_feedback_vector); + compiler::Node* feedback_vector); // Call runtime function with |arg_count| arguments and the first argument // located at |first_arg|. diff --git a/deps/v8/src/interpreter/interpreter.cc b/deps/v8/src/interpreter/interpreter.cc index 60c5e595af..cacf6818c8 100644 --- a/deps/v8/src/interpreter/interpreter.cc +++ b/deps/v8/src/interpreter/interpreter.cc @@ -464,9 +464,9 @@ Node* Interpreter::BuildLoadGlobal(Callable ic, Node* context, Node* name_index, Node* code_target = __ HeapConstant(ic.code()); Node* name = __ LoadConstantPoolEntry(name_index); Node* smi_slot = __ SmiTag(feedback_slot); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); return __ CallStub(ic.descriptor(), code_target, context, name, smi_slot, - type_feedback_vector); + feedback_vector); } // LdaGlobal <name_index> <slot> @@ -517,9 +517,9 @@ void Interpreter::DoStaGlobal(Callable ic, InterpreterAssembler* assembler) { Node* value = __ GetAccumulator(); Node* raw_slot = __ BytecodeOperandIdx(1); Node* smi_slot = __ SmiTag(raw_slot); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); __ CallStub(ic.descriptor(), code_target, context, global, name, value, - smi_slot, type_feedback_vector); + smi_slot, feedback_vector); __ Dispatch(); } @@ -761,10 +761,10 @@ void Interpreter::DoLdaNamedProperty(InterpreterAssembler* assembler) { Node* name = __ LoadConstantPoolEntry(constant_index); Node* raw_slot = __ BytecodeOperandIdx(2); Node* smi_slot = __ SmiTag(raw_slot); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); Node* result = __ CallStub(ic.descriptor(), code_target, context, object, - name, smi_slot, type_feedback_vector); + name, smi_slot, feedback_vector); __ SetAccumulator(result); __ Dispatch(); } @@ -781,10 +781,10 @@ void Interpreter::DoLdaKeyedProperty(InterpreterAssembler* assembler) { Node* name = __ GetAccumulator(); Node* raw_slot = __ BytecodeOperandIdx(1); Node* smi_slot = __ SmiTag(raw_slot); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); Node* result = __ CallStub(ic.descriptor(), code_target, context, object, - name, smi_slot, type_feedback_vector); + name, smi_slot, feedback_vector); __ SetAccumulator(result); __ Dispatch(); } @@ -798,10 +798,10 @@ void Interpreter::DoStoreIC(Callable ic, InterpreterAssembler* assembler) { Node* value = __ GetAccumulator(); Node* raw_slot = __ BytecodeOperandIdx(2); Node* smi_slot = __ SmiTag(raw_slot); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); __ CallStub(ic.descriptor(), code_target, context, object, name, value, - smi_slot, type_feedback_vector); + smi_slot, feedback_vector); __ Dispatch(); } @@ -834,10 +834,10 @@ void Interpreter::DoKeyedStoreIC(Callable ic, InterpreterAssembler* assembler) { Node* value = __ GetAccumulator(); Node* raw_slot = __ BytecodeOperandIdx(2); Node* smi_slot = __ SmiTag(raw_slot); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); __ CallStub(ic.descriptor(), code_target, context, object, name, value, - smi_slot, type_feedback_vector); + smi_slot, feedback_vector); __ Dispatch(); } @@ -874,11 +874,11 @@ void Interpreter::DoStaDataPropertyInLiteral(InterpreterAssembler* assembler) { Node* flags = __ SmiFromWord32(__ BytecodeOperandFlag(2)); Node* vector_index = __ SmiTag(__ BytecodeOperandIdx(3)); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); __ CallRuntime(Runtime::kDefineDataPropertyInLiteral, context, object, name, - value, flags, type_feedback_vector, vector_index); + value, flags, feedback_vector, vector_index); __ Dispatch(); } @@ -1016,9 +1016,9 @@ void Interpreter::DoBinaryOpWithFeedback(InterpreterAssembler* assembler) { Node* rhs = __ GetAccumulator(); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(1); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* result = Generator::Generate(assembler, lhs, rhs, slot_index, - type_feedback_vector, context); + feedback_vector, context); __ SetAccumulator(result); __ Dispatch(); } @@ -1030,7 +1030,7 @@ void Interpreter::DoCompareOpWithFeedback(Token::Value compare_op, Node* rhs = __ GetAccumulator(); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(1); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); // TODO(interpreter): the only reason this check is here is because we // sometimes emit comparisons that shouldn't collect feedback (e.g. @@ -1170,8 +1170,7 @@ void Interpreter::DoCompareOpWithFeedback(Token::Value compare_op, __ Bind(&update_feedback); { - __ UpdateFeedback(var_type_feedback.value(), type_feedback_vector, - slot_index); + __ UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index); __ Goto(&do_compare); } } @@ -1256,7 +1255,7 @@ void Interpreter::DoBitwiseBinaryOp(Token::Value bitwise_op, Node* rhs = __ GetAccumulator(); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(1); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Variable var_lhs_type_feedback(assembler, MachineRepresentation::kTaggedSigned), @@ -1315,7 +1314,7 @@ void Interpreter::DoBitwiseBinaryOp(Token::Value bitwise_op, Node* input_feedback = __ SmiOr(var_lhs_type_feedback.value(), var_rhs_type_feedback.value()); - __ UpdateFeedback(__ SmiOr(result_type, input_feedback), type_feedback_vector, + __ UpdateFeedback(__ SmiOr(result_type, input_feedback), feedback_vector, slot_index); __ SetAccumulator(result); __ Dispatch(); @@ -1385,7 +1384,7 @@ void Interpreter::DoAddSmi(InterpreterAssembler* assembler) { Node* left = __ LoadRegister(reg_index); Node* right = __ BytecodeOperandImmSmi(0); Node* slot_index = __ BytecodeOperandIdx(2); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); // {right} is known to be a Smi. // Check if the {left} is a Smi take the fast path. @@ -1403,7 +1402,7 @@ void Interpreter::DoAddSmi(InterpreterAssembler* assembler) { __ Bind(&if_notoverflow); { __ UpdateFeedback(__ SmiConstant(BinaryOperationFeedback::kSignedSmall), - type_feedback_vector, slot_index); + feedback_vector, slot_index); var_result.Bind(__ BitcastWordToTaggedSigned(__ Projection(0, pair))); __ Goto(&end); } @@ -1416,7 +1415,7 @@ void Interpreter::DoAddSmi(InterpreterAssembler* assembler) { Callable(stub.GetCode(), AddWithFeedbackStub::Descriptor(__ isolate())); var_result.Bind(__ CallStub(callable, context, left, right, __ TruncateWordToWord32(slot_index), - type_feedback_vector)); + feedback_vector)); __ Goto(&end); } __ Bind(&end); @@ -1439,7 +1438,7 @@ void Interpreter::DoSubSmi(InterpreterAssembler* assembler) { Node* left = __ LoadRegister(reg_index); Node* right = __ BytecodeOperandImmSmi(0); Node* slot_index = __ BytecodeOperandIdx(2); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); // {right} is known to be a Smi. // Check if the {left} is a Smi take the fast path. @@ -1457,7 +1456,7 @@ void Interpreter::DoSubSmi(InterpreterAssembler* assembler) { __ Bind(&if_notoverflow); { __ UpdateFeedback(__ SmiConstant(BinaryOperationFeedback::kSignedSmall), - type_feedback_vector, slot_index); + feedback_vector, slot_index); var_result.Bind(__ BitcastWordToTaggedSigned(__ Projection(0, pair))); __ Goto(&end); } @@ -1470,7 +1469,7 @@ void Interpreter::DoSubSmi(InterpreterAssembler* assembler) { stub.GetCode(), SubtractWithFeedbackStub::Descriptor(__ isolate())); var_result.Bind(__ CallStub(callable, context, left, right, __ TruncateWordToWord32(slot_index), - type_feedback_vector)); + feedback_vector)); __ Goto(&end); } __ Bind(&end); @@ -1490,7 +1489,7 @@ void Interpreter::DoBitwiseOrSmi(InterpreterAssembler* assembler) { Node* right = __ BytecodeOperandImmSmi(0); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(2); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Variable var_lhs_type_feedback(assembler, MachineRepresentation::kTaggedSigned); Node* lhs_value = __ TruncateTaggedToWord32WithFeedback( @@ -1502,7 +1501,7 @@ void Interpreter::DoBitwiseOrSmi(InterpreterAssembler* assembler) { __ TaggedIsSmi(result), BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kNumber); __ UpdateFeedback(__ SmiOr(result_type, var_lhs_type_feedback.value()), - type_feedback_vector, slot_index); + feedback_vector, slot_index); __ SetAccumulator(result); __ Dispatch(); } @@ -1517,7 +1516,7 @@ void Interpreter::DoBitwiseAndSmi(InterpreterAssembler* assembler) { Node* right = __ BytecodeOperandImmSmi(0); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(2); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Variable var_lhs_type_feedback(assembler, MachineRepresentation::kTaggedSigned); Node* lhs_value = __ TruncateTaggedToWord32WithFeedback( @@ -1529,7 +1528,7 @@ void Interpreter::DoBitwiseAndSmi(InterpreterAssembler* assembler) { __ TaggedIsSmi(result), BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kNumber); __ UpdateFeedback(__ SmiOr(result_type, var_lhs_type_feedback.value()), - type_feedback_vector, slot_index); + feedback_vector, slot_index); __ SetAccumulator(result); __ Dispatch(); } @@ -1545,7 +1544,7 @@ void Interpreter::DoShiftLeftSmi(InterpreterAssembler* assembler) { Node* right = __ BytecodeOperandImmSmi(0); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(2); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Variable var_lhs_type_feedback(assembler, MachineRepresentation::kTaggedSigned); Node* lhs_value = __ TruncateTaggedToWord32WithFeedback( @@ -1558,7 +1557,7 @@ void Interpreter::DoShiftLeftSmi(InterpreterAssembler* assembler) { __ TaggedIsSmi(result), BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kNumber); __ UpdateFeedback(__ SmiOr(result_type, var_lhs_type_feedback.value()), - type_feedback_vector, slot_index); + feedback_vector, slot_index); __ SetAccumulator(result); __ Dispatch(); } @@ -1574,7 +1573,7 @@ void Interpreter::DoShiftRightSmi(InterpreterAssembler* assembler) { Node* right = __ BytecodeOperandImmSmi(0); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(2); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Variable var_lhs_type_feedback(assembler, MachineRepresentation::kTaggedSigned); Node* lhs_value = __ TruncateTaggedToWord32WithFeedback( @@ -1587,7 +1586,7 @@ void Interpreter::DoShiftRightSmi(InterpreterAssembler* assembler) { __ TaggedIsSmi(result), BinaryOperationFeedback::kSignedSmall, BinaryOperationFeedback::kNumber); __ UpdateFeedback(__ SmiOr(result_type, var_lhs_type_feedback.value()), - type_feedback_vector, slot_index); + feedback_vector, slot_index); __ SetAccumulator(result); __ Dispatch(); } @@ -1605,9 +1604,9 @@ void Interpreter::DoUnaryOpWithFeedback(InterpreterAssembler* assembler) { Node* value = __ GetAccumulator(); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(0); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); - Node* result = Generator::Generate(assembler, value, context, - type_feedback_vector, slot_index); + Node* feedback_vector = __ LoadFeedbackVector(); + Node* result = Generator::Generate(assembler, value, context, feedback_vector, + slot_index); __ SetAccumulator(result); __ Dispatch(); } @@ -1654,7 +1653,7 @@ void Interpreter::DoInc(InterpreterAssembler* assembler) { Node* value = __ GetAccumulator(); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(0); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); // Shared entry for floating point increment. Label do_finc(assembler), end(assembler); @@ -1774,7 +1773,7 @@ void Interpreter::DoInc(InterpreterAssembler* assembler) { } assembler->Bind(&end); - assembler->UpdateFeedback(var_type_feedback.value(), type_feedback_vector, + assembler->UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index); __ SetAccumulator(result_var.value()); @@ -1792,7 +1791,7 @@ void Interpreter::DoDec(InterpreterAssembler* assembler) { Node* value = __ GetAccumulator(); Node* context = __ GetContext(); Node* slot_index = __ BytecodeOperandIdx(0); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); // Shared entry for floating point decrement. Label do_fdec(assembler), end(assembler); @@ -1912,7 +1911,7 @@ void Interpreter::DoDec(InterpreterAssembler* assembler) { } assembler->Bind(&end); - assembler->UpdateFeedback(var_type_feedback.value(), type_feedback_vector, + assembler->UpdateFeedback(var_type_feedback.value(), feedback_vector, slot_index); __ SetAccumulator(result_var.value()); @@ -2038,11 +2037,11 @@ void Interpreter::DoJSCall(InterpreterAssembler* assembler, Node* receiver_count = __ Int32Constant(1); Node* args_count = __ Int32Sub(receiver_args_count, receiver_count); Node* slot_id = __ BytecodeOperandIdx(3); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); Node* result = __ CallJSWithFeedback(function, context, receiver_arg, args_count, - slot_id, type_feedback_vector, tail_call_mode); + slot_id, feedback_vector, tail_call_mode); __ SetAccumulator(result); __ Dispatch(); } @@ -2193,10 +2192,10 @@ void Interpreter::DoNew(InterpreterAssembler* assembler) { Node* first_arg = __ RegisterLocation(first_arg_reg); Node* args_count = __ BytecodeOperandCount(2); Node* slot_id = __ BytecodeOperandIdx(3); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* context = __ GetContext(); Node* result = __ CallConstruct(constructor, context, new_target, first_arg, - args_count, slot_id, type_feedback_vector); + args_count, slot_id, feedback_vector); __ SetAccumulator(result); __ Dispatch(); } @@ -2744,9 +2743,9 @@ void Interpreter::DoCreateClosure(InterpreterAssembler* assembler) { ConstructorBuiltinsAssembler constructor_assembler(assembler->state()); Node* vector_index = __ BytecodeOperandIdx(1); vector_index = __ SmiTag(vector_index); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); __ SetAccumulator(constructor_assembler.EmitFastNewClosure( - shared, type_feedback_vector, vector_index, context)); + shared, feedback_vector, vector_index, context)); __ Dispatch(); __ Bind(&call_runtime); @@ -2754,12 +2753,12 @@ void Interpreter::DoCreateClosure(InterpreterAssembler* assembler) { Node* tenured_raw = __ DecodeWordFromWord32<CreateClosureFlags::PretenuredBit>(flags); Node* tenured = __ SmiTag(tenured_raw); - type_feedback_vector = __ LoadTypeFeedbackVector(); + feedback_vector = __ LoadFeedbackVector(); vector_index = __ BytecodeOperandIdx(1); vector_index = __ SmiTag(vector_index); Node* result = __ CallRuntime(Runtime::kInterpreterNewClosure, context, shared, - type_feedback_vector, vector_index, tenured); + feedback_vector, vector_index, tenured); __ SetAccumulator(result); __ Dispatch(); } @@ -3118,10 +3117,10 @@ void Interpreter::DoForInNext(InterpreterAssembler* assembler) { { // Record the fact that we hit the for-in slow path. Node* vector_index = __ BytecodeOperandIdx(3); - Node* type_feedback_vector = __ LoadTypeFeedbackVector(); + Node* feedback_vector = __ LoadFeedbackVector(); Node* megamorphic_sentinel = - __ HeapConstant(TypeFeedbackVector::MegamorphicSentinel(isolate_)); - __ StoreFixedArrayElement(type_feedback_vector, vector_index, + __ HeapConstant(FeedbackVector::MegamorphicSentinel(isolate_)); + __ StoreFixedArrayElement(feedback_vector, vector_index, megamorphic_sentinel, SKIP_WRITE_BARRIER); // Need to filter the {key} for the {receiver}. |