summaryrefslogtreecommitdiff
path: root/deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc')
-rw-r--r--deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc191
1 files changed, 0 insertions, 191 deletions
diff --git a/deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc b/deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc
index 4e8da8e969..b8fe329f69 100644
--- a/deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc
+++ b/deps/v8/test/unittests/compiler/regalloc/live-range-unittest.cc
@@ -85,18 +85,6 @@ class LiveRangeUnitTest : public TestWithZone {
return range->SplitAt(LifetimePosition::FromInt(pos), zone());
}
- TopLevelLiveRange* Splinter(TopLevelLiveRange* top, int start, int end,
- int new_id = 0) {
- if (top->splinter() == nullptr) {
- TopLevelLiveRange* ret = zone()->New<TopLevelLiveRange>(
- new_id, MachineRepresentation::kTagged);
- top->SetSplinter(ret);
- }
- top->Splinter(LifetimePosition::FromInt(start),
- LifetimePosition::FromInt(end), zone());
- return top->splinter();
- }
-
// Ranges first and second match structurally.
bool RangesMatch(LiveRange* first, LiveRange* second) {
if (first->Start() != second->Start() || first->End() != second->End()) {
@@ -308,185 +296,6 @@ TEST_F(LiveRangeUnitTest, SplitManyIntervalUsePositionsAfter) {
EXPECT_TRUE(RangesMatch(expected_bottom, child));
}
-TEST_F(LiveRangeUnitTest, SplinterSingleInterval) {
- TopLevelLiveRange* range = TestRangeBuilder(zone()).Build(0, 6);
- TopLevelLiveRange* splinter = Splinter(range, 3, 5);
- EXPECT_EQ(nullptr, range->next());
- EXPECT_EQ(nullptr, splinter->next());
- EXPECT_EQ(range, splinter->splintered_from());
-
- TopLevelLiveRange* expected_source =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 6).Build();
- TopLevelLiveRange* expected_splinter = TestRangeBuilder(zone()).Build(3, 5);
- EXPECT_TRUE(RangesMatch(expected_source, range));
- EXPECT_TRUE(RangesMatch(expected_splinter, splinter));
-}
-
-TEST_F(LiveRangeUnitTest, MergeSingleInterval) {
- TopLevelLiveRange* original = TestRangeBuilder(zone()).Build(0, 6);
- TopLevelLiveRange* splinter = Splinter(original, 3, 5);
-
- original->Merge(splinter, zone());
- TopLevelLiveRange* result = TestRangeBuilder(zone()).Build(0, 6);
- LiveRange* child_1 = Split(result, 3);
- Split(child_1, 5);
-
- EXPECT_TRUE(RangesMatch(result, original));
-}
-
-TEST_F(LiveRangeUnitTest, SplinterMultipleIntervalsOutside) {
- TopLevelLiveRange* range =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- TopLevelLiveRange* splinter = Splinter(range, 2, 6);
- EXPECT_EQ(nullptr, range->next());
- EXPECT_EQ(nullptr, splinter->next());
- EXPECT_EQ(range, splinter->splintered_from());
-
- TopLevelLiveRange* expected_source =
- TestRangeBuilder(zone()).Add(0, 2).Add(6, 8).Build();
- TopLevelLiveRange* expected_splinter =
- TestRangeBuilder(zone()).Add(2, 3).Add(5, 6).Build();
- EXPECT_TRUE(RangesMatch(expected_source, range));
- EXPECT_TRUE(RangesMatch(expected_splinter, splinter));
-}
-
-TEST_F(LiveRangeUnitTest, MergeMultipleIntervalsOutside) {
- TopLevelLiveRange* original =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- TopLevelLiveRange* splinter = Splinter(original, 2, 6);
- original->Merge(splinter, zone());
-
- TopLevelLiveRange* result =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- LiveRange* child_1 = Split(result, 2);
- Split(child_1, 6);
- EXPECT_TRUE(RangesMatch(result, original));
-}
-
-TEST_F(LiveRangeUnitTest, SplinterMultipleIntervalsInside) {
- TopLevelLiveRange* range =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- V8_ASSERT_DEBUG_DEATH(Splinter(range, 3, 5), ".*");
-}
-
-TEST_F(LiveRangeUnitTest, SplinterMultipleIntervalsLeft) {
- TopLevelLiveRange* range =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- TopLevelLiveRange* splinter = Splinter(range, 2, 4);
- EXPECT_EQ(nullptr, range->next());
- EXPECT_EQ(nullptr, splinter->next());
- EXPECT_EQ(range, splinter->splintered_from());
-
- TopLevelLiveRange* expected_source =
- TestRangeBuilder(zone()).Add(0, 2).Add(5, 8).Build();
- TopLevelLiveRange* expected_splinter = TestRangeBuilder(zone()).Build(2, 3);
- EXPECT_TRUE(RangesMatch(expected_source, range));
- EXPECT_TRUE(RangesMatch(expected_splinter, splinter));
-}
-
-TEST_F(LiveRangeUnitTest, MergeMultipleIntervalsLeft) {
- TopLevelLiveRange* original =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- TopLevelLiveRange* splinter = Splinter(original, 2, 4);
- original->Merge(splinter, zone());
-
- TopLevelLiveRange* result =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- Split(result, 2);
- EXPECT_TRUE(RangesMatch(result, original));
-}
-
-TEST_F(LiveRangeUnitTest, SplinterMultipleIntervalsRight) {
- TopLevelLiveRange* range =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- TopLevelLiveRange* splinter = Splinter(range, 4, 6);
- EXPECT_EQ(nullptr, range->next());
- EXPECT_EQ(nullptr, splinter->next());
- EXPECT_EQ(range, splinter->splintered_from());
-
- TopLevelLiveRange* expected_source =
- TestRangeBuilder(zone()).Add(0, 3).Add(6, 8).Build();
- TopLevelLiveRange* expected_splinter = TestRangeBuilder(zone()).Build(5, 6);
- EXPECT_TRUE(RangesMatch(expected_source, range));
- EXPECT_TRUE(RangesMatch(expected_splinter, splinter));
-}
-
-TEST_F(LiveRangeUnitTest, SplinterMergeMultipleTimes) {
- TopLevelLiveRange* range =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 10).Add(12, 16).Build();
- Splinter(range, 4, 6);
- Splinter(range, 8, 14);
- TopLevelLiveRange* splinter = range->splinter();
- EXPECT_EQ(nullptr, range->next());
- EXPECT_EQ(nullptr, splinter->next());
- EXPECT_EQ(range, splinter->splintered_from());
-
- TopLevelLiveRange* expected_source =
- TestRangeBuilder(zone()).Add(0, 3).Add(6, 8).Add(14, 16).Build();
- TopLevelLiveRange* expected_splinter =
- TestRangeBuilder(zone()).Add(5, 6).Add(8, 10).Add(12, 14).Build();
- EXPECT_TRUE(RangesMatch(expected_source, range));
- EXPECT_TRUE(RangesMatch(expected_splinter, splinter));
-}
-
-TEST_F(LiveRangeUnitTest, MergeMultipleIntervalsRight) {
- TopLevelLiveRange* original =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- TopLevelLiveRange* splinter = Splinter(original, 4, 6);
- original->Merge(splinter, zone());
-
- TopLevelLiveRange* result =
- TestRangeBuilder(zone()).Add(0, 3).Add(5, 8).Build();
- LiveRange* child_1 = Split(result, 5);
- Split(child_1, 6);
-
- EXPECT_TRUE(RangesMatch(result, original));
-}
-
-TEST_F(LiveRangeUnitTest, MergeAfterSplitting) {
- TopLevelLiveRange* original = TestRangeBuilder(zone()).Build(0, 8);
- TopLevelLiveRange* splinter = Splinter(original, 4, 6);
- LiveRange* original_child = Split(original, 2);
- Split(original_child, 7);
- original->Merge(splinter, zone());
-
- TopLevelLiveRange* result = TestRangeBuilder(zone()).Build(0, 8);
- LiveRange* child_1 = Split(result, 2);
- LiveRange* child_2 = Split(child_1, 4);
- LiveRange* child_3 = Split(child_2, 6);
- Split(child_3, 7);
-
- EXPECT_TRUE(RangesMatch(result, original));
-}
-
-TEST_F(LiveRangeUnitTest, IDGeneration) {
- TopLevelLiveRange* vreg = TestRangeBuilder(zone()).Id(2).Build(0, 100);
- EXPECT_EQ(2, vreg->vreg());
- EXPECT_EQ(0, vreg->relative_id());
-
- TopLevelLiveRange* splinter =
- zone()->New<TopLevelLiveRange>(101, MachineRepresentation::kTagged);
- vreg->SetSplinter(splinter);
- vreg->Splinter(LifetimePosition::FromInt(4), LifetimePosition::FromInt(12),
- zone());
-
- EXPECT_EQ(101, splinter->vreg());
- EXPECT_EQ(1, splinter->relative_id());
-
- LiveRange* child = vreg->SplitAt(LifetimePosition::FromInt(50), zone());
-
- EXPECT_EQ(2, child->relative_id());
-
- LiveRange* splinter_child =
- splinter->SplitAt(LifetimePosition::FromInt(8), zone());
-
- EXPECT_EQ(1, splinter->relative_id());
- EXPECT_EQ(3, splinter_child->relative_id());
-
- vreg->Merge(splinter, zone());
- EXPECT_EQ(1, splinter->relative_id());
-}
-
} // namespace compiler
} // namespace internal
} // namespace v8