summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/compiler')
-rw-r--r--deps/v8/test/cctest/compiler/codegen-tester.h6
-rw-r--r--deps/v8/test/cctest/compiler/serializer-tester.cc32
-rw-r--r--deps/v8/test/cctest/compiler/test-code-assembler.cc67
-rw-r--r--deps/v8/test/cctest/compiler/test-code-generator.cc5
-rw-r--r--deps/v8/test/cctest/compiler/test-instruction-scheduler.cc2
-rw-r--r--deps/v8/test/cctest/compiler/test-js-constant-cache.cc32
-rw-r--r--deps/v8/test/cctest/compiler/test-js-context-specialization.cc18
-rw-r--r--deps/v8/test/cctest/compiler/test-multiple-return.cc30
-rw-r--r--deps/v8/test/cctest/compiler/test-representation-change.cc28
-rw-r--r--deps/v8/test/cctest/compiler/test-run-native-calls.cc24
-rw-r--r--deps/v8/test/cctest/compiler/test-run-retpoline.cc3
-rw-r--r--deps/v8/test/cctest/compiler/test-run-tail-calls.cc5
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();