diff options
Diffstat (limited to 'deps/v8/test/cctest/compiler')
12 files changed, 158 insertions, 94 deletions
diff --git a/deps/v8/test/cctest/compiler/codegen-tester.h b/deps/v8/test/cctest/compiler/codegen-tester.h index 62db9445ea..210fe2cf1c 100644 --- a/deps/v8/test/cctest/compiler/codegen-tester.h +++ b/deps/v8/test/cctest/compiler/codegen-tester.h @@ -34,7 +34,7 @@ class RawMachineAssemblerTester : public HandleAndZoneScope, main_zone(), CSignature::New(main_zone(), MachineTypeForC<ReturnType>(), p...), - true), + CallDescriptor::kInitializeRootRegister), MachineType::PointerRepresentation(), InstructionSelector::SupportedMachineOperatorFlags(), InstructionSelector::AlignmentRequirements()) {} @@ -51,7 +51,7 @@ class RawMachineAssemblerTester : public HandleAndZoneScope, main_zone(), CSignature::New(main_zone(), MachineTypeForC<ReturnType>(), p...), - true), + CallDescriptor::kInitializeRootRegister), MachineType::PointerRepresentation(), InstructionSelector::SupportedMachineOperatorFlags(), InstructionSelector::AlignmentRequirements()), @@ -79,7 +79,7 @@ class RawMachineAssemblerTester : public HandleAndZoneScope, protected: Address Generate() override { if (code_.is_null()) { - Schedule* schedule = this->Export(); + Schedule* schedule = this->ExportForTest(); auto call_descriptor = this->call_descriptor(); Graph* graph = this->graph(); OptimizedCompilationInfo info(ArrayVector("testing"), main_zone(), kind_); diff --git a/deps/v8/test/cctest/compiler/serializer-tester.cc b/deps/v8/test/cctest/compiler/serializer-tester.cc index 2b56e07d24..338d1bcbfb 100644 --- a/deps/v8/test/cctest/compiler/serializer-tester.cc +++ b/deps/v8/test/cctest/compiler/serializer-tester.cc @@ -70,7 +70,11 @@ void CheckForSerializedInlinee(const char* source, int argc = 0, Handle<Object> g; CHECK(g_obj.ToHandle(&g)); + CHECK_WITH_MSG( + g->IsJSFunction(), + "The return value of the outer function must be a function too"); Handle<JSFunction> g_func = Handle<JSFunction>::cast(g); + SharedFunctionInfoRef g_sfi(tester.broker(), handle(g_func->shared(), tester.isolate())); FeedbackVectorRef g_fv(tester.broker(), @@ -288,6 +292,34 @@ TEST(MergeJumpTargetEnvironment) { "f(); return f;"); // Two calls to f to make g() megamorhpic. } +TEST(BoundFunctionTarget) { + CheckForSerializedInlinee( + "function apply(foo, arg) { return foo(arg); };" + "%EnsureFeedbackVectorForFunction(apply);" + "function test() {" + " const lambda = (a) => a;" + " %EnsureFeedbackVectorForFunction(lambda);" + " let bound = apply.bind(null, lambda).bind(null, 42);" + " %TurbofanStaticAssert(bound() == 42); return apply;" + "};" + "%EnsureFeedbackVectorForFunction(test);" + "test(); return test;"); +} + +TEST(BoundFunctionArguments) { + CheckForSerializedInlinee( + "function apply(foo, arg) { return foo(arg); };" + "%EnsureFeedbackVectorForFunction(apply);" + "function test() {" + " const lambda = (a) => a;" + " %EnsureFeedbackVectorForFunction(lambda);" + " let bound = apply.bind(null, lambda).bind(null, 42);" + " %TurbofanStaticAssert(bound() == 42); return lambda;" + "};" + "%EnsureFeedbackVectorForFunction(test);" + "test(); return test;"); +} + } // namespace compiler } // namespace internal } // namespace v8 diff --git a/deps/v8/test/cctest/compiler/test-code-assembler.cc b/deps/v8/test/cctest/compiler/test-code-assembler.cc index 375c6586f3..9e6318ee88 100644 --- a/deps/v8/test/cctest/compiler/test-code-assembler.cc +++ b/deps/v8/test/cctest/compiler/test-code-assembler.cc @@ -24,7 +24,7 @@ using Variable = CodeAssemblerVariable; Node* SmiTag(CodeAssembler& m, // NOLINT(runtime/references) Node* value) { int32_t constant_value; - if (m.ToInt32Constant(value, constant_value) && + if (m.ToInt32Constant(value, &constant_value) && Smi::IsValid(constant_value)) { return m.SmiConstant(Smi::FromInt(constant_value)); } @@ -89,7 +89,8 @@ TEST(SimpleCallRuntime1Arg) { Isolate* isolate(CcTest::InitIsolateOnce()); CodeAssemblerTester asm_tester(isolate); CodeAssembler m(asm_tester.state()); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); Node* b = SmiTag(m, m.Int32Constant(0)); m.Return(m.CallRuntime(Runtime::kIsSmi, context, b)); FunctionTester ft(asm_tester.GenerateCode()); @@ -101,7 +102,8 @@ TEST(SimpleTailCallRuntime1Arg) { Isolate* isolate(CcTest::InitIsolateOnce()); CodeAssemblerTester asm_tester(isolate); CodeAssembler m(asm_tester.state()); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); Node* b = SmiTag(m, m.Int32Constant(0)); m.TailCallRuntime(Runtime::kIsSmi, context, b); FunctionTester ft(asm_tester.GenerateCode()); @@ -113,7 +115,8 @@ TEST(SimpleCallRuntime2Arg) { Isolate* isolate(CcTest::InitIsolateOnce()); CodeAssemblerTester asm_tester(isolate); CodeAssembler m(asm_tester.state()); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); Node* a = SmiTag(m, m.Int32Constant(2)); Node* b = SmiTag(m, m.Int32Constant(4)); m.Return(m.CallRuntime(Runtime::kAdd, context, a, b)); @@ -125,7 +128,8 @@ TEST(SimpleTailCallRuntime2Arg) { Isolate* isolate(CcTest::InitIsolateOnce()); CodeAssemblerTester asm_tester(isolate); CodeAssembler m(asm_tester.state()); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); Node* a = SmiTag(m, m.Int32Constant(2)); Node* b = SmiTag(m, m.Int32Constant(4)); m.TailCallRuntime(Runtime::kAdd, context, a, b); @@ -225,7 +229,7 @@ TEST(VariableMerge1) { CodeAssembler m(asm_tester.state()); Variable var1(&m, MachineRepresentation::kTagged); Label l1(&m), l2(&m), merge(&m); - Node* temp = m.Int32Constant(0); + TNode<Int32T> temp = m.Int32Constant(0); var1.Bind(temp); m.Branch(m.Int32Constant(1), &l1, &l2); m.Bind(&l1); @@ -244,14 +248,14 @@ TEST(VariableMerge2) { CodeAssembler m(asm_tester.state()); Variable var1(&m, MachineRepresentation::kTagged); Label l1(&m), l2(&m), merge(&m); - Node* temp = m.Int32Constant(0); + TNode<Int32T> temp = m.Int32Constant(0); var1.Bind(temp); m.Branch(m.Int32Constant(1), &l1, &l2); m.Bind(&l1); CHECK_EQ(var1.value(), temp); m.Goto(&merge); m.Bind(&l2); - Node* temp2 = m.Int32Constant(2); + TNode<Int32T> temp2 = m.Int32Constant(2); var1.Bind(temp2); CHECK_EQ(var1.value(), temp2); m.Goto(&merge); @@ -266,7 +270,7 @@ TEST(VariableMerge3) { Variable var1(&m, MachineRepresentation::kTagged); Variable var2(&m, MachineRepresentation::kTagged); Label l1(&m), l2(&m), merge(&m); - Node* temp = m.Int32Constant(0); + TNode<Int32T> temp = m.Int32Constant(0); var1.Bind(temp); var2.Bind(temp); m.Branch(m.Int32Constant(1), &l1, &l2); @@ -274,7 +278,7 @@ TEST(VariableMerge3) { CHECK_EQ(var1.value(), temp); m.Goto(&merge); m.Bind(&l2); - Node* temp2 = m.Int32Constant(2); + TNode<Int32T> temp2 = m.Int32Constant(2); var1.Bind(temp2); CHECK_EQ(var1.value(), temp2); m.Goto(&merge); @@ -290,7 +294,7 @@ TEST(VariableMergeBindFirst) { CodeAssembler m(asm_tester.state()); Variable var1(&m, MachineRepresentation::kTagged); Label l1(&m), l2(&m), merge(&m, &var1), end(&m); - Node* temp = m.Int32Constant(0); + TNode<Int32T> temp = m.Int32Constant(0); var1.Bind(temp); m.Branch(m.Int32Constant(1), &l1, &l2); m.Bind(&l1); @@ -301,7 +305,7 @@ TEST(VariableMergeBindFirst) { CHECK_NOT_NULL(var1.value()); m.Goto(&end); m.Bind(&l2); - Node* temp2 = m.Int32Constant(2); + TNode<Int32T> temp2 = m.Int32Constant(2); var1.Bind(temp2); CHECK_EQ(var1.value(), temp2); m.Goto(&merge); @@ -318,7 +322,7 @@ TEST(VariableMergeSwitch) { Label l1(&m), l2(&m), default_label(&m); Label* labels[] = {&l1, &l2}; int32_t values[] = {1, 2}; - Node* temp1 = m.Int32Constant(0); + TNode<Smi> temp1 = m.SmiConstant(0); var1.Bind(temp1); m.Switch(m.Int32Constant(2), &default_label, values, labels, 2); m.Bind(&l1); @@ -326,7 +330,7 @@ TEST(VariableMergeSwitch) { m.Return(temp1); m.Bind(&l2); CHECK_EQ(temp1, var1.value()); - Node* temp2 = m.Int32Constant(7); + TNode<Smi> temp2 = m.SmiConstant(7); var1.Bind(temp2); m.Goto(&default_label); m.Bind(&default_label); @@ -374,24 +378,24 @@ TEST(TestToConstant) { int32_t value32; int64_t value64; Node* a = m.Int32Constant(5); - CHECK(m.ToInt32Constant(a, value32)); - CHECK(m.ToInt64Constant(a, value64)); + CHECK(m.ToInt32Constant(a, &value32)); + CHECK(m.ToInt64Constant(a, &value64)); a = m.Int64Constant(static_cast<int64_t>(1) << 32); - CHECK(!m.ToInt32Constant(a, value32)); - CHECK(m.ToInt64Constant(a, value64)); + CHECK(!m.ToInt32Constant(a, &value32)); + CHECK(m.ToInt64Constant(a, &value64)); a = m.Int64Constant(13); - CHECK(m.ToInt32Constant(a, value32)); - CHECK(m.ToInt64Constant(a, value64)); + CHECK(m.ToInt32Constant(a, &value32)); + CHECK(m.ToInt64Constant(a, &value64)); a = UndefinedConstant(m); - CHECK(!m.ToInt32Constant(a, value32)); - CHECK(!m.ToInt64Constant(a, value64)); + CHECK(!m.ToInt32Constant(a, &value32)); + CHECK(!m.ToInt64Constant(a, &value64)); a = UndefinedConstant(m); - CHECK(!m.ToInt32Constant(a, value32)); - CHECK(!m.ToInt64Constant(a, value64)); + CHECK(!m.ToInt32Constant(a, &value32)); + CHECK(!m.ToInt64Constant(a, &value64)); } TEST(DeferredCodePhiHints) { @@ -453,14 +457,15 @@ TEST(GotoIfException) { CodeAssemblerTester asm_tester(isolate, kNumParams); CodeAssembler m(asm_tester.state()); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); - Node* to_string_tag = + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Symbol> to_string_tag = m.HeapConstant(isolate->factory()->to_string_tag_symbol()); Variable exception(&m, MachineRepresentation::kTagged); Label exception_handler(&m); Callable to_string = Builtins::CallableFor(isolate, Builtins::kToString); - Node* string = m.CallStub(to_string, context, to_string_tag); + TNode<Object> string = m.CallStub(to_string, context, to_string_tag); m.GotoIfException(string, &exception_handler, &exception); m.Return(string); @@ -487,7 +492,8 @@ TEST(GotoIfExceptionMultiple) { CodeAssemblerTester asm_tester(isolate, kNumParams); CodeAssembler m(asm_tester.state()); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); Node* first_value = m.Parameter(0); Node* second_value = m.Parameter(1); Node* third_value = m.Parameter(2); @@ -502,7 +508,7 @@ TEST(GotoIfExceptionMultiple) { // try { return ToString(param1) } catch (e) { ... } Callable to_string = Builtins::CallableFor(isolate, Builtins::kToString); - Node* string = m.CallStub(to_string, context, first_value); + TNode<Object> string = m.CallStub(to_string, context, first_value); m.GotoIfException(string, &exception_handler1, &error); m.Return(string); @@ -575,7 +581,8 @@ TEST(ExceptionHandler) { Label exception(&m, {&var}, Label::kDeferred); { CodeAssemblerScopedExceptionHandler handler(&m, &exception, &var); - Node* context = m.HeapConstant(Handle<Context>(isolate->native_context())); + TNode<Context> context = + m.HeapConstant(Handle<Context>(isolate->native_context())); m.CallRuntime(Runtime::kThrow, context, m.SmiConstant(2)); } m.Return(m.SmiConstant(1)); diff --git a/deps/v8/test/cctest/compiler/test-code-generator.cc b/deps/v8/test/cctest/compiler/test-code-generator.cc index 30cd7da7b5..74c50a4bfa 100644 --- a/deps/v8/test/cctest/compiler/test-code-generator.cc +++ b/deps/v8/test/cctest/compiler/test-code-generator.cc @@ -223,7 +223,7 @@ Handle<Code> BuildTeardownFunction(Isolate* isolate, TNode<FixedArray> vector = __ Cast(__ LoadFixedArrayElement(result_array, i)); for (int lane = 0; lane < 4; lane++) { - Node* lane_value = + TNode<Smi> lane_value = __ SmiFromInt32(tester.raw_assembler_for_testing()->AddNode( tester.raw_assembler_for_testing() ->machine() @@ -990,13 +990,14 @@ class CodeGeneratorTester { i++; } + static constexpr size_t kMaxUnoptimizedFrameHeight = 0; generator_ = new CodeGenerator( environment->main_zone(), &frame_, &linkage_, environment->instructions(), &info_, environment->main_isolate(), base::Optional<OsrHelper>(), kNoSourcePosition, nullptr, PoisoningMitigationLevel::kDontPoison, AssemblerOptions::Default(environment->main_isolate()), - Builtins::kNoBuiltinId); + Builtins::kNoBuiltinId, kMaxUnoptimizedFrameHeight); // Force a frame to be created. generator_->frame_access_state()->MarkHasFrame(true); diff --git a/deps/v8/test/cctest/compiler/test-instruction-scheduler.cc b/deps/v8/test/cctest/compiler/test-instruction-scheduler.cc index f80718e05e..7aa408f653 100644 --- a/deps/v8/test/cctest/compiler/test-instruction-scheduler.cc +++ b/deps/v8/test/cctest/compiler/test-instruction-scheduler.cc @@ -76,7 +76,7 @@ TEST(DeoptInMiddleOfBasicBlock) { // Dummy node for FlagsContinuation::ForDeoptimize (which won't accept // nullptr). Node* node = Node::New(zone, 0, nullptr, 0, nullptr, false); - VectorSlotPair feedback; + FeedbackSource feedback; FlagsContinuation cont = FlagsContinuation::ForDeoptimize( kEqual, DeoptimizeKind::kEager, DeoptimizeReason::kUnknown, feedback, node); diff --git a/deps/v8/test/cctest/compiler/test-js-constant-cache.cc b/deps/v8/test/cctest/compiler/test-js-constant-cache.cc index aef10b472d..cc2eddd1a0 100644 --- a/deps/v8/test/cctest/compiler/test-js-constant-cache.cc +++ b/deps/v8/test/cctest/compiler/test-js-constant-cache.cc @@ -4,6 +4,7 @@ #include "src/codegen/assembler.h" #include "src/compiler/js-graph.h" +#include "src/compiler/js-heap-broker.h" #include "src/compiler/node-properties.h" #include "src/heap/factory-inl.h" #include "test/cctest/cctest.h" @@ -35,7 +36,9 @@ class JSConstantCacheTester : public HandleAndZoneScope, JSConstantCacheTester() : JSCacheTesterHelper(main_zone()), JSGraph(main_isolate(), &main_graph_, &main_common_, &main_javascript_, - nullptr, &main_machine_) { + nullptr, &main_machine_), + canonical_(main_isolate()), + broker_(main_isolate(), main_zone(), false) { main_graph_.SetStart(main_graph_.NewNode(common()->Start(0))); main_graph_.SetEnd( main_graph_.NewNode(common()->End(1), main_graph_.start())); @@ -47,6 +50,11 @@ class JSConstantCacheTester : public HandleAndZoneScope, } Factory* factory() { return main_isolate()->factory(); } + JSHeapBroker* broker() { return &broker_; } + + private: + CanonicalHandleScope canonical_; + JSHeapBroker broker_; }; @@ -182,8 +190,8 @@ TEST(HeapNumbers) { Handle<Object> num = T.factory()->NewNumber(value); Handle<HeapNumber> heap = T.factory()->NewHeapNumber(value); Node* node1 = T.Constant(value); - Node* node2 = T.Constant(num); - Node* node3 = T.Constant(heap); + Node* node2 = T.Constant(ObjectRef(T.broker(), num)); + Node* node3 = T.Constant(ObjectRef(T.broker(), heap)); CHECK_EQ(node1, node2); CHECK_EQ(node1, node3); } @@ -193,12 +201,18 @@ TEST(HeapNumbers) { TEST(OddballHandle) { JSConstantCacheTester T; - CHECK_EQ(T.UndefinedConstant(), T.Constant(T.factory()->undefined_value())); - CHECK_EQ(T.TheHoleConstant(), T.Constant(T.factory()->the_hole_value())); - CHECK_EQ(T.TrueConstant(), T.Constant(T.factory()->true_value())); - CHECK_EQ(T.FalseConstant(), T.Constant(T.factory()->false_value())); - CHECK_EQ(T.NullConstant(), T.Constant(T.factory()->null_value())); - CHECK_EQ(T.NaNConstant(), T.Constant(T.factory()->nan_value())); + CHECK_EQ(T.UndefinedConstant(), + T.Constant(ObjectRef(T.broker(), T.factory()->undefined_value()))); + CHECK_EQ(T.TheHoleConstant(), + T.Constant(ObjectRef(T.broker(), T.factory()->the_hole_value()))); + CHECK_EQ(T.TrueConstant(), + T.Constant(ObjectRef(T.broker(), T.factory()->true_value()))); + CHECK_EQ(T.FalseConstant(), + T.Constant(ObjectRef(T.broker(), T.factory()->false_value()))); + CHECK_EQ(T.NullConstant(), + T.Constant(ObjectRef(T.broker(), T.factory()->null_value()))); + CHECK_EQ(T.NaNConstant(), + T.Constant(ObjectRef(T.broker(), T.factory()->nan_value()))); } diff --git a/deps/v8/test/cctest/compiler/test-js-context-specialization.cc b/deps/v8/test/cctest/compiler/test-js-context-specialization.cc index e6703dbbbe..1b136873b5 100644 --- a/deps/v8/test/cctest/compiler/test-js-context-specialization.cc +++ b/deps/v8/test/cctest/compiler/test-js-context-specialization.cc @@ -52,6 +52,8 @@ class ContextSpecializationTester : public HandleAndZoneScope { void CheckContextInputAndDepthChanges(Node* node, Node* expected_new_context, size_t expected_new_depth); + JSHeapBroker* broker() { return &js_heap_broker_; } + private: TickCounter tick_counter_; CanonicalHandleScope canonical_; @@ -126,8 +128,9 @@ TEST(ReduceJSLoadContext0) { const int slot = Context::NATIVE_CONTEXT_INDEX; native->set(slot, *expected); - Node* const_context = t.jsgraph()->Constant(native); - Node* deep_const_context = t.jsgraph()->Constant(subcontext2); + Node* const_context = t.jsgraph()->Constant(ObjectRef(t.broker(), native)); + Node* deep_const_context = + t.jsgraph()->Constant(ObjectRef(t.broker(), subcontext2)); Node* param_context = t.graph()->NewNode(t.common()->Parameter(0), start); { @@ -269,7 +272,8 @@ TEST(ReduceJSLoadContext2) { context_object0->set(slot_index, *slot_value0); context_object1->set(slot_index, *slot_value1); - Node* context0 = t.jsgraph()->Constant(context_object1); + Node* context0 = + t.jsgraph()->Constant(ObjectRef(t.broker(), context_object1)); Node* context1 = t.graph()->NewNode(create_function_context, context0, start, start); Node* context2 = @@ -423,8 +427,9 @@ TEST(ReduceJSStoreContext0) { const int slot = Context::NATIVE_CONTEXT_INDEX; native->set(slot, *expected); - Node* const_context = t.jsgraph()->Constant(native); - Node* deep_const_context = t.jsgraph()->Constant(subcontext2); + Node* const_context = t.jsgraph()->Constant(ObjectRef(t.broker(), native)); + Node* deep_const_context = + t.jsgraph()->Constant(ObjectRef(t.broker(), subcontext2)); Node* param_context = t.graph()->NewNode(t.common()->Parameter(0), start); { @@ -531,7 +536,8 @@ TEST(ReduceJSStoreContext2) { context_object0->set(slot_index, *slot_value0); context_object1->set(slot_index, *slot_value1); - Node* context0 = t.jsgraph()->Constant(context_object1); + Node* context0 = + t.jsgraph()->Constant(ObjectRef(t.broker(), context_object1)); Node* context1 = t.graph()->NewNode(create_function_context, context0, start, start); Node* context2 = diff --git a/deps/v8/test/cctest/compiler/test-multiple-return.cc b/deps/v8/test/cctest/compiler/test-multiple-return.cc index a34b1e14e5..c054e7654a 100644 --- a/deps/v8/test/cctest/compiler/test-multiple-return.cc +++ b/deps/v8/test/cctest/compiler/test-multiple-return.cc @@ -167,11 +167,11 @@ void TestReturnMultipleValues(MachineType type) { OptimizedCompilationInfo info(ArrayVector("testing"), handles.main_zone(), Code::WASM_FUNCTION); - Handle<Code> code = - Pipeline::GenerateCodeForTesting( - &info, handles.main_isolate(), desc, m.graph(), - AssemblerOptions::Default(handles.main_isolate()), m.Export()) - .ToHandleChecked(); + Handle<Code> code = Pipeline::GenerateCodeForTesting( + &info, handles.main_isolate(), desc, m.graph(), + AssemblerOptions::Default(handles.main_isolate()), + m.ExportForTest()) + .ToHandleChecked(); #ifdef ENABLE_DISASSEMBLER if (FLAG_print_code) { StdoutStream os; @@ -272,11 +272,11 @@ void ReturnLastValue(MachineType type) { OptimizedCompilationInfo info(ArrayVector("testing"), handles.main_zone(), Code::WASM_FUNCTION); - Handle<Code> code = - Pipeline::GenerateCodeForTesting( - &info, handles.main_isolate(), desc, m.graph(), - AssemblerOptions::Default(handles.main_isolate()), m.Export()) - .ToHandleChecked(); + Handle<Code> code = Pipeline::GenerateCodeForTesting( + &info, handles.main_isolate(), desc, m.graph(), + AssemblerOptions::Default(handles.main_isolate()), + m.ExportForTest()) + .ToHandleChecked(); std::shared_ptr<wasm::NativeModule> module = AllocateNativeModule( handles.main_isolate(), code->raw_instruction_size()); @@ -334,11 +334,11 @@ void ReturnSumOfReturns(MachineType type) { OptimizedCompilationInfo info(ArrayVector("testing"), handles.main_zone(), Code::WASM_FUNCTION); - Handle<Code> code = - Pipeline::GenerateCodeForTesting( - &info, handles.main_isolate(), desc, m.graph(), - AssemblerOptions::Default(handles.main_isolate()), m.Export()) - .ToHandleChecked(); + Handle<Code> code = Pipeline::GenerateCodeForTesting( + &info, handles.main_isolate(), desc, m.graph(), + AssemblerOptions::Default(handles.main_isolate()), + m.ExportForTest()) + .ToHandleChecked(); std::shared_ptr<wasm::NativeModule> module = AllocateNativeModule( handles.main_isolate(), code->raw_instruction_size()); diff --git a/deps/v8/test/cctest/compiler/test-representation-change.cc b/deps/v8/test/cctest/compiler/test-representation-change.cc index dac6f61932..d858448ef8 100644 --- a/deps/v8/test/cctest/compiler/test-representation-change.cc +++ b/deps/v8/test/cctest/compiler/test-representation-change.cc @@ -401,11 +401,11 @@ TEST(Word64) { CheckChange( IrOpcode::kCheckedInt64ToInt32, MachineRepresentation::kWord64, TypeCache::Get()->kSafeInteger, MachineRepresentation::kWord32, - UseInfo::CheckedSigned32AsWord32(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned32AsWord32(kIdentifyZeros, FeedbackSource())); CheckChange( IrOpcode::kCheckedUint64ToInt32, MachineRepresentation::kWord64, TypeCache::Get()->kPositiveSafeInteger, MachineRepresentation::kWord32, - UseInfo::CheckedSigned32AsWord32(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned32AsWord32(kIdentifyZeros, FeedbackSource())); CheckChange(IrOpcode::kChangeFloat64ToInt64, MachineRepresentation::kFloat64, Type::Signed32(), MachineRepresentation::kWord64); @@ -420,7 +420,7 @@ TEST(Word64) { CheckChange( IrOpcode::kCheckedFloat64ToInt64, MachineRepresentation::kFloat64, Type::Number(), MachineRepresentation::kWord64, - UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, FeedbackSource())); CheckChange(IrOpcode::kChangeInt64ToFloat64, MachineRepresentation::kWord64, Type::Signed32(), MachineRepresentation::kFloat64); @@ -449,7 +449,7 @@ TEST(Word64) { IrOpcode::kChangeFloat32ToFloat64, IrOpcode::kCheckedFloat64ToInt64, MachineRepresentation::kFloat32, Type::Number(), MachineRepresentation::kWord64, - UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, FeedbackSource())); CheckTwoChanges(IrOpcode::kChangeInt64ToFloat64, IrOpcode::kTruncateFloat64ToFloat32, @@ -470,11 +470,11 @@ TEST(Word64) { CheckChange( IrOpcode::kCheckedTaggedToInt64, MachineRepresentation::kTagged, Type::Number(), MachineRepresentation::kWord64, - UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, FeedbackSource())); CheckChange( IrOpcode::kCheckedTaggedToInt64, MachineRepresentation::kTaggedPointer, Type::Number(), MachineRepresentation::kWord64, - UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned64AsWord64(kIdentifyZeros, FeedbackSource())); CheckTwoChanges(IrOpcode::kTruncateInt64ToInt32, IrOpcode::kChangeInt31ToTaggedSigned, @@ -507,12 +507,12 @@ TEST(Word64) { CheckChange(IrOpcode::kCheckedInt64ToTaggedSigned, MachineRepresentation::kWord64, TypeCache::Get()->kSafeInteger, MachineRepresentation::kTaggedSigned, - UseInfo::CheckedSignedSmallAsTaggedSigned(VectorSlotPair())); + UseInfo::CheckedSignedSmallAsTaggedSigned(FeedbackSource())); CheckChange(IrOpcode::kCheckedUint64ToTaggedSigned, MachineRepresentation::kWord64, TypeCache::Get()->kPositiveSafeInteger, MachineRepresentation::kTaggedSigned, - UseInfo::CheckedSignedSmallAsTaggedSigned(VectorSlotPair())); + UseInfo::CheckedSignedSmallAsTaggedSigned(FeedbackSource())); CheckTwoChanges( IrOpcode::kChangeInt64ToFloat64, IrOpcode::kChangeFloat64ToTaggedPointer, @@ -630,7 +630,7 @@ TEST(SignednessInWord32) { CheckChange(IrOpcode::kCheckedTruncateTaggedToWord32, MachineRepresentation::kTagged, Type::NonInternal(), MachineRepresentation::kWord32, - UseInfo::CheckedNumberOrOddballAsWord32(VectorSlotPair())); + UseInfo::CheckedNumberOrOddballAsWord32(FeedbackSource())); CheckTwoChanges(IrOpcode::kChangeInt32ToFloat64, IrOpcode::kTruncateFloat64ToFloat32, @@ -644,7 +644,7 @@ TEST(SignednessInWord32) { CheckChange( IrOpcode::kCheckedUint32ToInt32, MachineRepresentation::kWord32, Type::Unsigned32(), - UseInfo::CheckedSigned32AsWord32(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSigned32AsWord32(kIdentifyZeros, FeedbackSource())); } TEST(CompressedAndTagged) { @@ -698,19 +698,19 @@ static void TestMinusZeroCheck(IrOpcode::Value expected, Type from_type) { CheckChange( expected, MachineRepresentation::kFloat64, from_type, - UseInfo::CheckedSignedSmallAsWord32(kDistinguishZeros, VectorSlotPair())); + UseInfo::CheckedSignedSmallAsWord32(kDistinguishZeros, FeedbackSource())); CheckChange( expected, MachineRepresentation::kFloat64, from_type, - UseInfo::CheckedSignedSmallAsWord32(kIdentifyZeros, VectorSlotPair())); + UseInfo::CheckedSignedSmallAsWord32(kIdentifyZeros, FeedbackSource())); CheckChange( expected, MachineRepresentation::kFloat64, from_type, - UseInfo::CheckedSigned32AsWord32(kDistinguishZeros, VectorSlotPair())); + UseInfo::CheckedSigned32AsWord32(kDistinguishZeros, FeedbackSource())); CheckChange( expected, MachineRepresentation::kFloat64, from_type, - UseInfo::CheckedSigned32AsWord32(kDistinguishZeros, VectorSlotPair())); + UseInfo::CheckedSigned32AsWord32(kDistinguishZeros, FeedbackSource())); } TEST(MinusZeroCheck) { diff --git a/deps/v8/test/cctest/compiler/test-run-native-calls.cc b/deps/v8/test/cctest/compiler/test-run-native-calls.cc index eed6cf1e59..026e8307ae 100644 --- a/deps/v8/test/cctest/compiler/test-run-native-calls.cc +++ b/deps/v8/test/cctest/compiler/test-run-native-calls.cc @@ -439,7 +439,7 @@ class Computer { Graph graph(&zone); RawMachineAssembler raw(isolate, &graph, desc); build(desc, raw); - inner = CompileGraph("Compute", desc, &graph, raw.Export()); + inner = CompileGraph("Compute", desc, &graph, raw.ExportForTest()); } CSignatureOf<int32_t> csig; @@ -466,8 +466,8 @@ class Computer { Node* store = io.StoreOutput(raw, call); USE(store); raw.Return(raw.Int32Constant(seed)); - wrapper = - CompileGraph("Compute-wrapper-const", cdesc, &graph, raw.Export()); + wrapper = CompileGraph("Compute-wrapper-const", cdesc, &graph, + raw.ExportForTest()); } CodeRunner<int32_t> runnable(isolate, wrapper, &csig); @@ -501,7 +501,8 @@ class Computer { Node* store = io.StoreOutput(raw, call); USE(store); raw.Return(raw.Int32Constant(seed)); - wrapper = CompileGraph("Compute-wrapper", cdesc, &graph, raw.Export()); + wrapper = + CompileGraph("Compute-wrapper", cdesc, &graph, raw.ExportForTest()); } CodeRunner<int32_t> runnable(isolate, wrapper, &csig); @@ -576,7 +577,7 @@ static void CopyTwentyInt32(CallDescriptor* desc) { kNoWriteBarrier); } raw.Return(raw.Int32Constant(42)); - inner = CompileGraph("CopyTwentyInt32", desc, &graph, raw.Export()); + inner = CompileGraph("CopyTwentyInt32", desc, &graph, raw.ExportForTest()); } CSignatureOf<int32_t> csig; @@ -599,8 +600,8 @@ static void CopyTwentyInt32(CallDescriptor* desc) { Node* call = raw.CallN(desc, input_count, inputs); raw.Return(call); - wrapper = - CompileGraph("CopyTwentyInt32-wrapper", cdesc, &graph, raw.Export()); + wrapper = CompileGraph("CopyTwentyInt32-wrapper", cdesc, &graph, + raw.ExportForTest()); } CodeRunner<int32_t> runnable(isolate, wrapper, &csig); @@ -962,7 +963,8 @@ static void Build_Select_With_Call( Graph graph(&zone); RawMachineAssembler raw(isolate, &graph, desc); raw.Return(raw.Parameter(which)); - inner = CompileGraph("Select-indirection", desc, &graph, raw.Export()); + inner = + CompileGraph("Select-indirection", desc, &graph, raw.ExportForTest()); CHECK(!inner.is_null()); CHECK(inner->IsCode()); } @@ -1058,7 +1060,7 @@ void MixedParamTest(int start) { Graph graph(&zone); RawMachineAssembler raw(isolate, &graph, desc); raw.Return(raw.Parameter(which)); - select = CompileGraph("Compute", desc, &graph, raw.Export()); + select = CompileGraph("Compute", desc, &graph, raw.ExportForTest()); } { @@ -1117,7 +1119,7 @@ void MixedParamTest(int start) { expected_ret = static_cast<int32_t>(constant); raw.Return(raw.Int32Constant(expected_ret)); wrapper = CompileGraph("Select-mixed-wrapper-const", cdesc, &graph, - raw.Export()); + raw.ExportForTest()); } CodeRunner<int32_t> runnable(isolate, wrapper, &csig); @@ -1176,7 +1178,7 @@ void TestStackSlot(MachineType slot_type, T expected) { g.Store(slot_type.representation(), g.Parameter(11), g.Parameter(10), WriteBarrierKind::kNoWriteBarrier); g.Return(g.Parameter(9)); - inner = CompileGraph("Compute", desc, &graph, g.Export()); + inner = CompileGraph("Compute", desc, &graph, g.ExportForTest()); // Create function f with a stack slot which calls the inner function g. BufferedRawMachineAssemblerTester<T> f(slot_type); diff --git a/deps/v8/test/cctest/compiler/test-run-retpoline.cc b/deps/v8/test/cctest/compiler/test-run-retpoline.cc index be329e1b00..32569eaaee 100644 --- a/deps/v8/test/cctest/compiler/test-run-retpoline.cc +++ b/deps/v8/test/cctest/compiler/test-run-retpoline.cc @@ -27,7 +27,8 @@ Handle<Code> BuildCallee(Isolate* isolate, CallDescriptor* call_descriptor) { int param_count = static_cast<int>(call_descriptor->StackParameterCount()); Node* sum = __ IntPtrConstant(0); for (int i = 0; i < param_count; ++i) { - Node* product = __ IntPtrMul(__ Parameter(i), __ IntPtrConstant(i + 1)); + TNode<IntPtrT> product = + __ Signed(__ IntPtrMul(__ Parameter(i), __ IntPtrConstant(i + 1))); sum = __ IntPtrAdd(sum, product); } __ Return(sum); diff --git a/deps/v8/test/cctest/compiler/test-run-tail-calls.cc b/deps/v8/test/cctest/compiler/test-run-tail-calls.cc index 1562befb9d..ed8a099090 100644 --- a/deps/v8/test/cctest/compiler/test-run-tail-calls.cc +++ b/deps/v8/test/cctest/compiler/test-run-tail-calls.cc @@ -28,8 +28,9 @@ Handle<Code> BuildCallee(Isolate* isolate, CallDescriptor* call_descriptor) { int param_count = static_cast<int>(call_descriptor->StackParameterCount()); Node* sum = __ IntPtrConstant(0); for (int i = 0; i < param_count; ++i) { - Node* product = __ IntPtrMul(__ Parameter(i), __ IntPtrConstant(i + 1)); - sum = __ IntPtrAdd(sum, product); + TNode<WordT> product = + __ IntPtrMul(__ Parameter(i), __ IntPtrConstant(i + 1)); + sum = __ Signed(__ IntPtrAdd(sum, product)); } __ Return(sum); return tester.GenerateCodeCloseAndEscape(); |