diff options
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.cc | 191 |
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 |