diff options
author | 2022-02-24 11:48:28 +0000 | |
---|---|---|
committer | 2022-03-10 19:08:46 +0000 | |
commit | fa9c809a0b285a982b036697e4c8f1e2e0a9790e (patch) | |
tree | f221bb2944f793f19638f560cc2da3b9e2af2fa5 /compiler/optimizing/stack_map_test.cc | |
parent | 05f1a5b94dc7125b4678c186f4aba11c25ff36a5 (diff) |
Faster deduplication of `CodeInfo` tables.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 181943478
Change-Id: I313c54b4030aa0485109a348adefb42c1ea9ffbf
Diffstat (limited to 'compiler/optimizing/stack_map_test.cc')
-rw-r--r-- | compiler/optimizing/stack_map_test.cc | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/compiler/optimizing/stack_map_test.cc b/compiler/optimizing/stack_map_test.cc index e83d37eb6b..f6a739e15a 100644 --- a/compiler/optimizing/stack_map_test.cc +++ b/compiler/optimizing/stack_map_test.cc @@ -724,46 +724,4 @@ TEST(StackMapTest, TestDeduplicateStackMask) { stack_map2.GetStackMaskIndex()); } -TEST(StackMapTest, TestDedupeBitTables) { - MallocArenaPool pool; - ArenaStack arena_stack(&pool); - ScopedArenaAllocator allocator(&arena_stack); - StackMapStream stream(&allocator, kRuntimeISA); - stream.BeginMethod(32, 0, 0, 2); - - stream.BeginStackMapEntry(0, 64 * kPcAlign); - stream.AddDexRegisterEntry(Kind::kInStack, 0); - stream.AddDexRegisterEntry(Kind::kConstant, -2); - stream.EndStackMapEntry(); - - stream.EndMethod(64 * kPcAlign); - ScopedArenaVector<uint8_t> memory = stream.Encode(); - - std::vector<uint8_t> out; - CodeInfo::Deduper deduper(&out); - size_t deduped1 = deduper.Dedupe(memory.data()); - size_t deduped2 = deduper.Dedupe(memory.data()); - - for (size_t deduped : { deduped1, deduped2 }) { - CodeInfo code_info(out.data() + deduped); - ASSERT_EQ(1u, code_info.GetNumberOfStackMaps()); - - StackMap stack_map = code_info.GetStackMapAt(0); - ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForDexPc(0))); - ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(64 * kPcAlign))); - ASSERT_EQ(0u, stack_map.GetDexPc()); - ASSERT_EQ(64u * kPcAlign, stack_map.GetNativePcOffset(kRuntimeISA)); - - ASSERT_TRUE(stack_map.HasDexRegisterMap()); - DexRegisterMap dex_register_map = code_info.GetDexRegisterMapOf(stack_map); - - ASSERT_EQ(Kind::kInStack, dex_register_map[0].GetKind()); - ASSERT_EQ(Kind::kConstant, dex_register_map[1].GetKind()); - ASSERT_EQ(0, dex_register_map[0].GetStackOffsetInBytes()); - ASSERT_EQ(-2, dex_register_map[1].GetConstant()); - } - - ASSERT_GT(memory.size() * 2, out.size()); -} - } // namespace art |