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

Unified Diff: test/cctest/compiler/test-code-assembler.cc

Issue 2498073002: [refactoring] Split CodeAssemblerState out of CodeAssembler (Closed)
Patch Set: one more attempt Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/cctest/compiler/function-tester.cc ('k') | test/cctest/test-code-stub-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/compiler/test-code-assembler.cc
diff --git a/test/cctest/compiler/test-code-assembler.cc b/test/cctest/compiler/test-code-assembler.cc
index 6fe733af8d7fa23e9ff25c7d66712225d727c635..7fcf44e26c5461783433be53a8c275330de34b2e 100644
--- a/test/cctest/compiler/test-code-assembler.cc
+++ b/test/cctest/compiler/test-code-assembler.cc
@@ -12,11 +12,9 @@ namespace v8 {
namespace internal {
namespace compiler {
-typedef CodeAssemblerTesterImpl<CodeAssembler> CodeAssemblerTester;
-
namespace {
-Node* SmiTag(CodeAssemblerTester& m, Node* value) {
+Node* SmiTag(CodeAssembler& m, Node* value) {
int32_t constant_value;
if (m.ToInt32Constant(value, constant_value) &&
Smi::IsValid(constant_value)) {
@@ -25,11 +23,11 @@ Node* SmiTag(CodeAssemblerTester& m, Node* value) {
return m.WordShl(value, m.IntPtrConstant(kSmiShiftSize + kSmiTagSize));
}
-Node* UndefinedConstant(CodeAssemblerTester& m) {
+Node* UndefinedConstant(CodeAssembler& m) {
return m.LoadRoot(Heap::kUndefinedValueRootIndex);
}
-Node* LoadObjectField(CodeAssemblerTester& m, Node* object, int offset,
+Node* LoadObjectField(CodeAssembler& m, Node* object, int offset,
MachineType rep = MachineType::AnyTagged()) {
return m.Load(rep, object, m.IntPtrConstant(offset - kHeapObjectTag));
}
@@ -38,23 +36,23 @@ Node* LoadObjectField(CodeAssemblerTester& m, Node* object, int offset,
TEST(SimpleSmiReturn) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
m.Return(SmiTag(m, m.Int32Constant(37)));
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(37, Handle<Smi>::cast(result.ToHandleChecked())->value());
}
TEST(SimpleIntPtrReturn) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
int test;
m.Return(m.IntPtrConstant(reinterpret_cast<intptr_t>(&test)));
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(reinterpret_cast<intptr_t>(&test),
reinterpret_cast<intptr_t>(*result.ToHandleChecked()));
@@ -62,65 +60,65 @@ TEST(SimpleIntPtrReturn) {
TEST(SimpleDoubleReturn) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
m.Return(m.NumberConstant(0.5));
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(0.5, Handle<HeapNumber>::cast(result.ToHandleChecked())->value());
}
TEST(SimpleCallRuntime1Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
Node* context = m.HeapConstant(Handle<Context>(isolate->native_context()));
Node* b = SmiTag(m, m.Int32Constant(0));
m.Return(m.CallRuntime(Runtime::kNumberToSmi, context, b));
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(0, Handle<Smi>::cast(result.ToHandleChecked())->value());
}
TEST(SimpleTailCallRuntime1Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
Node* context = m.HeapConstant(Handle<Context>(isolate->native_context()));
Node* b = SmiTag(m, m.Int32Constant(0));
m.TailCallRuntime(Runtime::kNumberToSmi, context, b);
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(0, Handle<Smi>::cast(result.ToHandleChecked())->value());
}
TEST(SimpleCallRuntime2Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
Node* 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));
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(6, Handle<Smi>::cast(result.ToHandleChecked())->value());
}
TEST(SimpleTailCallRuntime2Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
Node* 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);
- Handle<Code> code = m.GenerateCode();
- FunctionTester ft(descriptor, code);
+ Handle<Code> code = data.GenerateCode();
+ FunctionTester ft(code);
MaybeHandle<Object> result = ft.Call();
CHECK_EQ(6, Handle<Smi>::cast(result.ToHandleChecked())->value());
}
@@ -144,7 +142,8 @@ Handle<JSFunction> CreateSumAllArgumentsFunction(FunctionTester& ft) {
TEST(SimpleCallJSFunction0Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
const int kNumParams = 1;
- CodeAssemblerTester m(isolate, kNumParams);
+ CodeAssemblerTester data(isolate, kNumParams);
+ CodeAssembler m(data.state());
{
Node* function = m.Parameter(0);
Node* context = m.Parameter(kNumParams + 2);
@@ -155,7 +154,7 @@ TEST(SimpleCallJSFunction0Arg) {
Node* result = m.CallJS(callable, context, function, receiver);
m.Return(result);
}
- Handle<Code> code = m.GenerateCode();
+ Handle<Code> code = data.GenerateCode();
FunctionTester ft(code, kNumParams);
Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
@@ -166,7 +165,8 @@ TEST(SimpleCallJSFunction0Arg) {
TEST(SimpleCallJSFunction1Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
const int kNumParams = 2;
- CodeAssemblerTester m(isolate, kNumParams);
+ CodeAssemblerTester data(isolate, kNumParams);
+ CodeAssembler m(data.state());
{
Node* function = m.Parameter(0);
Node* context = m.Parameter(1);
@@ -178,7 +178,7 @@ TEST(SimpleCallJSFunction1Arg) {
Node* result = m.CallJS(callable, context, function, receiver, a);
m.Return(result);
}
- Handle<Code> code = m.GenerateCode();
+ Handle<Code> code = data.GenerateCode();
FunctionTester ft(code, kNumParams);
Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
@@ -189,7 +189,8 @@ TEST(SimpleCallJSFunction1Arg) {
TEST(SimpleCallJSFunction2Arg) {
Isolate* isolate(CcTest::InitIsolateOnce());
const int kNumParams = 2;
- CodeAssemblerTester m(isolate, kNumParams);
+ CodeAssemblerTester data(isolate, kNumParams);
+ CodeAssembler m(data.state());
{
Node* function = m.Parameter(0);
Node* context = m.Parameter(1);
@@ -202,7 +203,7 @@ TEST(SimpleCallJSFunction2Arg) {
Node* result = m.CallJS(callable, context, function, receiver, a, b);
m.Return(result);
}
- Handle<Code> code = m.GenerateCode();
+ Handle<Code> code = data.GenerateCode();
FunctionTester ft(code, kNumParams);
Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
@@ -212,8 +213,8 @@ TEST(SimpleCallJSFunction2Arg) {
TEST(VariableMerge1) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
CodeStubAssembler::Label l1(&m), l2(&m), merge(&m);
Node* temp = m.Int32Constant(0);
@@ -231,8 +232,8 @@ TEST(VariableMerge1) {
TEST(VariableMerge2) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
CodeStubAssembler::Label l1(&m), l2(&m), merge(&m);
Node* temp = m.Int32Constant(0);
@@ -252,8 +253,8 @@ TEST(VariableMerge2) {
TEST(VariableMerge3) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
CodeStubAssembler::Variable var2(&m, MachineRepresentation::kTagged);
CodeStubAssembler::Label l1(&m), l2(&m), merge(&m);
@@ -277,8 +278,8 @@ TEST(VariableMerge3) {
TEST(VariableMergeBindFirst) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
CodeStubAssembler::Label l1(&m), l2(&m), merge(&m, &var1), end(&m);
Node* temp = m.Int32Constant(0);
@@ -303,8 +304,8 @@ TEST(VariableMergeBindFirst) {
TEST(VariableMergeSwitch) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
CodeStubAssembler::Label l1(&m), l2(&m), default_label(&m);
CodeStubAssembler::Label* labels[] = {&l1, &l2};
@@ -325,20 +326,20 @@ TEST(VariableMergeSwitch) {
TEST(SplitEdgeBranchMerge) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Label l1(&m), merge(&m);
m.Branch(m.Int32Constant(1), &l1, &merge);
m.Bind(&l1);
m.Goto(&merge);
m.Bind(&merge);
- USE(m.GenerateCode());
+ USE(data.GenerateCode());
}
TEST(SplitEdgeSwitchMerge) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
CodeStubAssembler::Label l1(&m), l2(&m), l3(&m), default_label(&m);
CodeStubAssembler::Label* labels[] = {&l1, &l2};
int32_t values[] = {1, 2};
@@ -350,13 +351,13 @@ TEST(SplitEdgeSwitchMerge) {
m.Bind(&l2);
m.Goto(&default_label);
m.Bind(&default_label);
- USE(m.GenerateCode());
+ USE(data.GenerateCode());
}
TEST(TestToConstant) {
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
int32_t value32;
int64_t value64;
Node* a = m.Int32Constant(5);
@@ -385,8 +386,8 @@ TEST(DeferredCodePhiHints) {
typedef CodeStubAssembler::Label Label;
typedef CodeStubAssembler::Variable Variable;
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
Label block1(&m, Label::kDeferred);
m.Goto(&block1);
m.Bind(&block1);
@@ -402,15 +403,15 @@ TEST(DeferredCodePhiHints) {
m.Goto(&loop);
}
}
- CHECK(!m.GenerateCode().is_null());
+ CHECK(!data.GenerateCode().is_null());
}
TEST(TestOutOfScopeVariable) {
typedef CodeStubAssembler::Label Label;
typedef CodeStubAssembler::Variable Variable;
Isolate* isolate(CcTest::InitIsolateOnce());
- VoidDescriptor descriptor(isolate);
- CodeAssemblerTester m(isolate, descriptor);
+ CodeAssemblerTester data(isolate);
+ CodeAssembler m(data.state());
Label block1(&m);
Label block2(&m);
Label block3(&m);
@@ -431,7 +432,7 @@ TEST(TestOutOfScopeVariable) {
m.Goto(&block1);
}
m.Bind(&block1);
- CHECK(!m.GenerateCode().is_null());
+ CHECK(!data.GenerateCode().is_null());
}
} // namespace compiler
« no previous file with comments | « test/cctest/compiler/function-tester.cc ('k') | test/cctest/test-code-stub-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698