| Index: test/unittests/compiler/change-lowering-unittest.cc
|
| diff --git a/test/unittests/compiler/change-lowering-unittest.cc b/test/unittests/compiler/change-lowering-unittest.cc
|
| index a3e07b6c36cde1211e464439ab01b14d1629f05e..cd6ac5869ae1159f4e8eda4569ca40fa6e18e5e3 100644
|
| --- a/test/unittests/compiler/change-lowering-unittest.cc
|
| +++ b/test/unittests/compiler/change-lowering-unittest.cc
|
| @@ -27,11 +27,15 @@ class ChangeLoweringTest : public TypedGraphTest {
|
| public:
|
| ChangeLoweringTest() : simplified_(zone()) {}
|
|
|
| - virtual MachineType WordRepresentation() const = 0;
|
| + virtual MachineRepresentation WordRepresentation() const = 0;
|
|
|
| protected:
|
| - bool Is32() const { return WordRepresentation() == kRepWord32; }
|
| - bool Is64() const { return WordRepresentation() == kRepWord64; }
|
| + bool Is32() const {
|
| + return WordRepresentation() == MachineRepresentation::kWord32;
|
| + }
|
| + bool Is64() const {
|
| + return WordRepresentation() == MachineRepresentation::kWord64;
|
| + }
|
|
|
| Reduction Reduce(Node* node) {
|
| MachineOperatorBuilder machine(zone(), WordRepresentation());
|
| @@ -67,7 +71,7 @@ class ChangeLoweringTest : public TypedGraphTest {
|
| }
|
| Matcher<Node*> IsLoadHeapNumber(const Matcher<Node*>& value_matcher,
|
| const Matcher<Node*>& control_matcher) {
|
| - return IsLoad(kMachFloat64, value_matcher,
|
| + return IsLoad(MachineType::Float64(), value_matcher,
|
| IsIntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag),
|
| graph()->start(), control_matcher);
|
| }
|
| @@ -94,11 +98,11 @@ class ChangeLoweringTest : public TypedGraphTest {
|
|
|
| class ChangeLoweringCommonTest
|
| : public ChangeLoweringTest,
|
| - public ::testing::WithParamInterface<MachineType> {
|
| + public ::testing::WithParamInterface<MachineRepresentation> {
|
| public:
|
| ~ChangeLoweringCommonTest() override {}
|
|
|
| - MachineType WordRepresentation() const final { return GetParam(); }
|
| + MachineRepresentation WordRepresentation() const final { return GetParam(); }
|
| };
|
|
|
|
|
| @@ -107,8 +111,8 @@ TARGET_TEST_P(ChangeLoweringCommonTest, ChangeBitToBool) {
|
| Reduction r =
|
| Reduce(graph()->NewNode(simplified()->ChangeBitToBool(), value));
|
| ASSERT_TRUE(r.Changed());
|
| - EXPECT_THAT(r.replacement(), IsSelect(kMachAnyTagged, value, IsTrueConstant(),
|
| - IsFalseConstant()));
|
| + EXPECT_THAT(r.replacement(), IsSelect(MachineRepresentation::kTagged, value,
|
| + IsTrueConstant(), IsFalseConstant()));
|
| }
|
|
|
|
|
| @@ -179,7 +183,8 @@ TARGET_TEST_P(ChangeLoweringCommonTest, ChangeTaggedToUint32WithTaggedPointer) {
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, StoreFieldSmi) {
|
| FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
|
| - Handle<Name>::null(), Type::Any(), kMachAnyTagged};
|
| + Handle<Name>::null(), Type::Any(),
|
| + MachineType::AnyTagged()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* p1 = Parameter(Type::TaggedSigned());
|
| Node* store = graph()->NewNode(simplified()->StoreField(access), p0, p1,
|
| @@ -187,16 +192,18 @@ TARGET_TEST_P(ChangeLoweringCommonTest, StoreFieldSmi) {
|
| Reduction r = Reduce(store);
|
|
|
| ASSERT_TRUE(r.Changed());
|
| - EXPECT_THAT(r.replacement(),
|
| - IsStore(StoreRepresentation(kMachAnyTagged, kNoWriteBarrier), p0,
|
| - IsIntPtrConstant(access.offset - access.tag()), p1,
|
| - graph()->start(), graph()->start()));
|
| + EXPECT_THAT(
|
| + r.replacement(),
|
| + IsStore(StoreRepresentation(MachineType::AnyTagged(), kNoWriteBarrier),
|
| + p0, IsIntPtrConstant(access.offset - access.tag()), p1,
|
| + graph()->start(), graph()->start()));
|
| }
|
|
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, StoreFieldTagged) {
|
| FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
|
| - Handle<Name>::null(), Type::Any(), kMachAnyTagged};
|
| + Handle<Name>::null(), Type::Any(),
|
| + MachineType::AnyTagged()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* p1 = Parameter(Type::Tagged());
|
| Node* store = graph()->NewNode(simplified()->StoreField(access), p0, p1,
|
| @@ -204,16 +211,18 @@ TARGET_TEST_P(ChangeLoweringCommonTest, StoreFieldTagged) {
|
| Reduction r = Reduce(store);
|
|
|
| ASSERT_TRUE(r.Changed());
|
| - EXPECT_THAT(r.replacement(),
|
| - IsStore(StoreRepresentation(kMachAnyTagged, kFullWriteBarrier),
|
| - p0, IsIntPtrConstant(access.offset - access.tag()), p1,
|
| - graph()->start(), graph()->start()));
|
| + EXPECT_THAT(
|
| + r.replacement(),
|
| + IsStore(StoreRepresentation(MachineType::AnyTagged(), kFullWriteBarrier),
|
| + p0, IsIntPtrConstant(access.offset - access.tag()), p1,
|
| + graph()->start(), graph()->start()));
|
| }
|
|
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, LoadField) {
|
| FieldAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
|
| - Handle<Name>::null(), Type::Any(), kMachAnyTagged};
|
| + Handle<Name>::null(), Type::Any(),
|
| + MachineType::AnyTagged()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* load = graph()->NewNode(simplified()->LoadField(access), p0,
|
| graph()->start(), graph()->start());
|
| @@ -221,16 +230,16 @@ TARGET_TEST_P(ChangeLoweringCommonTest, LoadField) {
|
|
|
| ASSERT_TRUE(r.Changed());
|
| Matcher<Node*> index_match = IsIntPtrConstant(access.offset - access.tag());
|
| - EXPECT_THAT(
|
| - r.replacement(),
|
| - IsLoad(kMachAnyTagged, p0, IsIntPtrConstant(access.offset - access.tag()),
|
| - graph()->start(), graph()->start()));
|
| + EXPECT_THAT(r.replacement(),
|
| + IsLoad(MachineType::AnyTagged(), p0,
|
| + IsIntPtrConstant(access.offset - access.tag()),
|
| + graph()->start(), graph()->start()));
|
| }
|
|
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementTagged) {
|
| ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
|
| - kMachAnyTagged};
|
| + MachineType::AnyTagged()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* p1 = Parameter(Type::Signed32());
|
| Node* p2 = Parameter(Type::Tagged());
|
| @@ -238,7 +247,8 @@ TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementTagged) {
|
| graph()->start(), graph()->start());
|
| Reduction r = Reduce(store);
|
|
|
| - const int element_size_shift = ElementSizeLog2Of(access.machine_type);
|
| + const int element_size_shift =
|
| + ElementSizeLog2Of(access.machine_type.representation());
|
| ASSERT_TRUE(r.Changed());
|
| Matcher<Node*> index_match =
|
| IsInt32Add(IsWord32Shl(p1, IsInt32Constant(element_size_shift)),
|
| @@ -247,15 +257,16 @@ TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementTagged) {
|
| index_match = IsChangeUint32ToUint64(index_match);
|
| }
|
|
|
| - EXPECT_THAT(r.replacement(),
|
| - IsStore(StoreRepresentation(kMachAnyTagged, kFullWriteBarrier),
|
| - p0, index_match, p2, graph()->start(), graph()->start()));
|
| + EXPECT_THAT(
|
| + r.replacement(),
|
| + IsStore(StoreRepresentation(MachineType::AnyTagged(), kFullWriteBarrier),
|
| + p0, index_match, p2, graph()->start(), graph()->start()));
|
| }
|
|
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementUint8) {
|
| ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
|
| - Type::Signed32(), kMachUint8};
|
| + Type::Signed32(), MachineType::Uint8()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* p1 = Parameter(Type::Signed32());
|
| Node* p2 = Parameter(Type::Signed32());
|
| @@ -270,22 +281,24 @@ TARGET_TEST_P(ChangeLoweringCommonTest, StoreElementUint8) {
|
| index_match = IsChangeUint32ToUint64(index_match);
|
| }
|
|
|
| - EXPECT_THAT(r.replacement(),
|
| - IsStore(StoreRepresentation(kMachUint8, kNoWriteBarrier), p0,
|
| - index_match, p2, graph()->start(), graph()->start()));
|
| + EXPECT_THAT(
|
| + r.replacement(),
|
| + IsStore(StoreRepresentation(MachineType::Uint8(), kNoWriteBarrier), p0,
|
| + index_match, p2, graph()->start(), graph()->start()));
|
| }
|
|
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, LoadElementTagged) {
|
| ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize, Type::Any(),
|
| - kMachAnyTagged};
|
| + MachineType::AnyTagged()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* p1 = Parameter(Type::Signed32());
|
| Node* load = graph()->NewNode(simplified()->LoadElement(access), p0, p1,
|
| graph()->start(), graph()->start());
|
| Reduction r = Reduce(load);
|
|
|
| - const int element_size_shift = ElementSizeLog2Of(access.machine_type);
|
| + const int element_size_shift =
|
| + ElementSizeLog2Of(access.machine_type.representation());
|
| ASSERT_TRUE(r.Changed());
|
| Matcher<Node*> index_match =
|
| IsInt32Add(IsWord32Shl(p1, IsInt32Constant(element_size_shift)),
|
| @@ -294,14 +307,14 @@ TARGET_TEST_P(ChangeLoweringCommonTest, LoadElementTagged) {
|
| index_match = IsChangeUint32ToUint64(index_match);
|
| }
|
|
|
| - EXPECT_THAT(r.replacement(), IsLoad(kMachAnyTagged, p0, index_match,
|
| + EXPECT_THAT(r.replacement(), IsLoad(MachineType::AnyTagged(), p0, index_match,
|
| graph()->start(), graph()->start()));
|
| }
|
|
|
|
|
| TARGET_TEST_P(ChangeLoweringCommonTest, LoadElementInt8) {
|
| ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
|
| - Type::Signed32(), kMachInt8};
|
| + Type::Signed32(), MachineType::Int8()};
|
| Node* p0 = Parameter(Type::TaggedPointer());
|
| Node* p1 = Parameter(Type::Signed32());
|
| Node* load = graph()->NewNode(simplified()->LoadElement(access), p0, p1,
|
| @@ -315,7 +328,7 @@ TARGET_TEST_P(ChangeLoweringCommonTest, LoadElementInt8) {
|
| index_match = IsChangeUint32ToUint64(index_match);
|
| }
|
|
|
| - EXPECT_THAT(r.replacement(), IsLoad(kMachInt8, p0, index_match,
|
| + EXPECT_THAT(r.replacement(), IsLoad(MachineType::Int8(), p0, index_match,
|
| graph()->start(), graph()->start()));
|
| }
|
|
|
| @@ -333,7 +346,8 @@ TARGET_TEST_P(ChangeLoweringCommonTest, Allocate) {
|
|
|
|
|
| INSTANTIATE_TEST_CASE_P(ChangeLoweringTest, ChangeLoweringCommonTest,
|
| - ::testing::Values(kRepWord32, kRepWord64));
|
| + ::testing::Values(MachineRepresentation::kWord32,
|
| + MachineRepresentation::kWord64));
|
|
|
|
|
| // -----------------------------------------------------------------------------
|
| @@ -343,7 +357,9 @@ INSTANTIATE_TEST_CASE_P(ChangeLoweringTest, ChangeLoweringCommonTest,
|
| class ChangeLowering32Test : public ChangeLoweringTest {
|
| public:
|
| ~ChangeLowering32Test() override {}
|
| - MachineType WordRepresentation() const final { return kRepWord32; }
|
| + MachineRepresentation WordRepresentation() const final {
|
| + return MachineRepresentation::kWord32;
|
| + }
|
| };
|
|
|
|
|
| @@ -355,22 +371,23 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTagged) {
|
| Capture<Node*> add, branch, heap_number, if_true;
|
| EXPECT_THAT(
|
| r.replacement(),
|
| - IsPhi(kMachAnyTagged,
|
| - IsFinishRegion(
|
| - AllOf(CaptureEq(&heap_number),
|
| - IsAllocateHeapNumber(_, CaptureEq(&if_true))),
|
| - IsStore(
|
| - StoreRepresentation(kMachFloat64, kNoWriteBarrier),
|
| - CaptureEq(&heap_number),
|
| - IsIntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag),
|
| - IsChangeInt32ToFloat64(value), CaptureEq(&heap_number),
|
| - CaptureEq(&if_true))),
|
| - IsProjection(0, AllOf(CaptureEq(&add),
|
| - IsInt32AddWithOverflow(value, value))),
|
| - IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
|
| - IsIfFalse(AllOf(CaptureEq(&branch),
|
| - IsBranch(IsProjection(1, CaptureEq(&add)),
|
| - graph()->start()))))));
|
| + IsPhi(
|
| + MachineRepresentation::kTagged,
|
| + IsFinishRegion(
|
| + AllOf(CaptureEq(&heap_number),
|
| + IsAllocateHeapNumber(_, CaptureEq(&if_true))),
|
| + IsStore(
|
| + StoreRepresentation(MachineType::Float64(), kNoWriteBarrier),
|
| + CaptureEq(&heap_number),
|
| + IsIntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag),
|
| + IsChangeInt32ToFloat64(value), CaptureEq(&heap_number),
|
| + CaptureEq(&if_true))),
|
| + IsProjection(
|
| + 0, AllOf(CaptureEq(&add), IsInt32AddWithOverflow(value, value))),
|
| + IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
|
| + IsIfFalse(AllOf(CaptureEq(&branch),
|
| + IsBranch(IsProjection(1, CaptureEq(&add)),
|
| + graph()->start()))))));
|
| }
|
|
|
|
|
| @@ -385,7 +402,8 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToFloat64) {
|
| Capture<Node*> branch, if_true;
|
| EXPECT_THAT(
|
| r.replacement(),
|
| - IsPhi(kMachFloat64, IsLoadHeapNumber(value, CaptureEq(&if_true)),
|
| + IsPhi(MachineRepresentation::kFloat64,
|
| + IsLoadHeapNumber(value, CaptureEq(&if_true)),
|
| IsChangeInt32ToFloat64(IsWord32Sar(
|
| value, IsInt32Constant(kSmiTagSize + kSmiShiftSize))),
|
| IsMerge(AllOf(CaptureEq(&if_true),
|
| @@ -410,7 +428,7 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToInt32) {
|
| EXPECT_THAT(
|
| r.replacement(),
|
| IsPhi(
|
| - kMachInt32,
|
| + MachineRepresentation::kWord32,
|
| IsChangeFloat64ToInt32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
|
| IsWord32Sar(value, IsInt32Constant(kSmiTagSize + kSmiShiftSize)),
|
| IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
|
| @@ -433,7 +451,7 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToUint32) {
|
| EXPECT_THAT(
|
| r.replacement(),
|
| IsPhi(
|
| - kMachUint32,
|
| + MachineRepresentation::kWord32,
|
| IsChangeFloat64ToUint32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
|
| IsWord32Sar(value, IsInt32Constant(kSmiTagSize + kSmiShiftSize)),
|
| IsMerge(AllOf(CaptureEq(&if_true), IsIfTrue(CaptureEq(&branch))),
|
| @@ -456,13 +474,13 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeUint32ToTagged) {
|
| EXPECT_THAT(
|
| r.replacement(),
|
| IsPhi(
|
| - kMachAnyTagged,
|
| + MachineRepresentation::kTagged,
|
| IsWord32Shl(value, IsInt32Constant(kSmiTagSize + kSmiShiftSize)),
|
| IsFinishRegion(
|
| AllOf(CaptureEq(&heap_number),
|
| IsAllocateHeapNumber(_, CaptureEq(&if_false))),
|
| IsStore(
|
| - StoreRepresentation(kMachFloat64, kNoWriteBarrier),
|
| + StoreRepresentation(MachineType::Float64(), kNoWriteBarrier),
|
| CaptureEq(&heap_number),
|
| IsInt32Constant(HeapNumber::kValueOffset - kHeapObjectTag),
|
| IsChangeUint32ToFloat64(value), CaptureEq(&heap_number),
|
| @@ -483,7 +501,9 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeUint32ToTagged) {
|
| class ChangeLowering64Test : public ChangeLoweringTest {
|
| public:
|
| ~ChangeLowering64Test() override {}
|
| - MachineType WordRepresentation() const final { return kRepWord64; }
|
| + MachineRepresentation WordRepresentation() const final {
|
| + return MachineRepresentation::kWord64;
|
| + }
|
| };
|
|
|
|
|
| @@ -507,7 +527,8 @@ TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToFloat64) {
|
| Capture<Node*> branch, if_true;
|
| EXPECT_THAT(
|
| r.replacement(),
|
| - IsPhi(kMachFloat64, IsLoadHeapNumber(value, CaptureEq(&if_true)),
|
| + IsPhi(MachineRepresentation::kFloat64,
|
| + IsLoadHeapNumber(value, CaptureEq(&if_true)),
|
| IsChangeInt32ToFloat64(IsTruncateInt64ToInt32(IsWord64Sar(
|
| value, IsInt64Constant(kSmiTagSize + kSmiShiftSize)))),
|
| IsMerge(AllOf(CaptureEq(&if_true),
|
| @@ -532,7 +553,7 @@ TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToInt32) {
|
| EXPECT_THAT(
|
| r.replacement(),
|
| IsPhi(
|
| - kMachInt32,
|
| + MachineRepresentation::kWord32,
|
| IsChangeFloat64ToInt32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
|
| IsTruncateInt64ToInt32(
|
| IsWord64Sar(value, IsInt64Constant(kSmiTagSize + kSmiShiftSize))),
|
| @@ -556,7 +577,7 @@ TARGET_TEST_F(ChangeLowering64Test, ChangeTaggedToUint32) {
|
| EXPECT_THAT(
|
| r.replacement(),
|
| IsPhi(
|
| - kMachUint32,
|
| + MachineRepresentation::kWord32,
|
| IsChangeFloat64ToUint32(IsLoadHeapNumber(value, CaptureEq(&if_true))),
|
| IsTruncateInt64ToInt32(
|
| IsWord64Sar(value, IsInt64Constant(kSmiTagSize + kSmiShiftSize))),
|
| @@ -580,14 +601,14 @@ TARGET_TEST_F(ChangeLowering64Test, ChangeUint32ToTagged) {
|
| EXPECT_THAT(
|
| r.replacement(),
|
| IsPhi(
|
| - kMachAnyTagged,
|
| + MachineRepresentation::kTagged,
|
| IsWord64Shl(IsChangeUint32ToUint64(value),
|
| IsInt64Constant(kSmiTagSize + kSmiShiftSize)),
|
| IsFinishRegion(
|
| AllOf(CaptureEq(&heap_number),
|
| IsAllocateHeapNumber(_, CaptureEq(&if_false))),
|
| IsStore(
|
| - StoreRepresentation(kMachFloat64, kNoWriteBarrier),
|
| + StoreRepresentation(MachineType::Float64(), kNoWriteBarrier),
|
| CaptureEq(&heap_number),
|
| IsInt64Constant(HeapNumber::kValueOffset - kHeapObjectTag),
|
| IsChangeUint32ToFloat64(value), CaptureEq(&heap_number),
|
|
|