From 1a20b6801f2432a42b906f0de01e7e9586526aec Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Tue, 31 Jan 2017 14:25:16 -0800 Subject: Deduplicate register masks Data is commonly shared between different stack maps. The register masks are stored after the stack masks. Oat size for a large app: 96722288 -> 94485872 (-2.31%) Average oat size reduction according to golem -3.193%. Bug: 34621054 Test: test-art-host Change-Id: I5eacf668992e866d11ddba0c01675038a16cdfb4 --- compiler/optimizing/stack_map_test.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'compiler/optimizing/stack_map_test.cc') diff --git a/compiler/optimizing/stack_map_test.cc b/compiler/optimizing/stack_map_test.cc index da68b60811..ce6d5c2b22 100644 --- a/compiler/optimizing/stack_map_test.cc +++ b/compiler/optimizing/stack_map_test.cc @@ -80,7 +80,7 @@ TEST(StackMapTest, Test1) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(64, encoding))); ASSERT_EQ(0u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(64u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0x3u, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0x3u, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_TRUE(CheckStackMask(code_info, encoding, stack_map, sp_mask)); @@ -195,7 +195,7 @@ TEST(StackMapTest, Test2) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(64, encoding))); ASSERT_EQ(0u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(64u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0x3u, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0x3u, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_TRUE(CheckStackMask(code_info, encoding, stack_map, sp_mask1)); @@ -254,7 +254,7 @@ TEST(StackMapTest, Test2) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(128u, encoding))); ASSERT_EQ(1u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(128u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0xFFu, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0xFFu, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_TRUE(CheckStackMask(code_info, encoding, stack_map, sp_mask2)); @@ -308,7 +308,7 @@ TEST(StackMapTest, Test2) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(192u, encoding))); ASSERT_EQ(2u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(192u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0xABu, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0xABu, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_TRUE(CheckStackMask(code_info, encoding, stack_map, sp_mask3)); @@ -362,7 +362,7 @@ TEST(StackMapTest, Test2) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(256u, encoding))); ASSERT_EQ(3u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(256u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0xCDu, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0xCDu, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_TRUE(CheckStackMask(code_info, encoding, stack_map, sp_mask4)); @@ -444,7 +444,7 @@ TEST(StackMapTest, TestNonLiveDexRegisters) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(64, encoding))); ASSERT_EQ(0u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(64u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0x3u, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0x3u, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_TRUE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding)); DexRegisterMap dex_register_map = @@ -643,7 +643,7 @@ TEST(StackMapTest, TestNoDexRegisterMap) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(64, encoding))); ASSERT_EQ(0u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(64u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0x3u, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0x3u, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_FALSE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding)); ASSERT_FALSE(stack_map.HasInlineInfo(encoding.stack_map_encoding)); @@ -653,7 +653,7 @@ TEST(StackMapTest, TestNoDexRegisterMap) { ASSERT_TRUE(stack_map.Equals(code_info.GetStackMapForNativePcOffset(68, encoding))); ASSERT_EQ(1u, stack_map.GetDexPc(encoding.stack_map_encoding)); ASSERT_EQ(68u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA)); - ASSERT_EQ(0x4u, stack_map.GetRegisterMask(encoding.stack_map_encoding)); + ASSERT_EQ(0x4u, code_info.GetRegisterMaskOf(encoding, stack_map)); ASSERT_FALSE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding)); ASSERT_FALSE(stack_map.HasInlineInfo(encoding.stack_map_encoding)); -- cgit v1.2.3-59-g8ed1b