summaryrefslogtreecommitdiff
path: root/compiler/optimizing/stack_map_test.cc
diff options
context:
space:
mode:
authorDavid Srbecky <dsrbecky@google.com>2018-06-03 12:00:14 +0100
committerDavid Srbecky <dsrbecky@google.com>2018-06-05 16:50:38 +0100
commit6e69e52a12883386f91d014324bebee867ca7877 (patch)
tree7d1850f0a59e4ea2d013d6d479cd616b66922970 /compiler/optimizing/stack_map_test.cc
parent6eb4d5e4bc2ce068004c1d7c85dbfff0c5efd11d (diff)
Remove depth argument from InlineInfo accessors in stack maps.
The InlineInfo class actually represented a list of inlining information for a given stack map, and the depth argument was used everywhere to select to desired element from the list. This was verbose and inconsistent with the other classes. Change the InlineInfo class to represent a single inlining, and select the desired depth when getting it from CodeInfo. Test: test-art-host-gtest-stack_map_test Change-Id: I35b73e6704854f0203f51d4dbdbed5b1d1cd5a3b
Diffstat (limited to 'compiler/optimizing/stack_map_test.cc')
-rw-r--r--compiler/optimizing/stack_map_test.cc84
1 files changed, 45 insertions, 39 deletions
diff --git a/compiler/optimizing/stack_map_test.cc b/compiler/optimizing/stack_map_test.cc
index 262c240bc7..77aa3ef965 100644
--- a/compiler/optimizing/stack_map_test.cc
+++ b/compiler/optimizing/stack_map_test.cc
@@ -189,12 +189,13 @@ TEST(StackMapTest, Test2) {
ASSERT_EQ(-2, location1.GetValue());
ASSERT_TRUE(stack_map.HasInlineInfo());
- InlineInfo inline_info = code_info.GetInlineInfoOf(stack_map);
- ASSERT_EQ(2u, inline_info.GetDepth());
- ASSERT_EQ(3u, inline_info.GetDexPcAtDepth(0));
- ASSERT_EQ(2u, inline_info.GetDexPcAtDepth(1));
- ASSERT_TRUE(inline_info.EncodesArtMethodAtDepth(0));
- ASSERT_TRUE(inline_info.EncodesArtMethodAtDepth(1));
+ InlineInfo inline_info0 = code_info.GetInlineInfoAtDepth(stack_map, 0);
+ InlineInfo inline_info1 = code_info.GetInlineInfoAtDepth(stack_map, 1);
+ ASSERT_EQ(2u, code_info.GetInlineDepthOf(stack_map));
+ ASSERT_EQ(3u, inline_info0.GetDexPc());
+ ASSERT_EQ(2u, inline_info1.GetDexPc());
+ ASSERT_TRUE(inline_info0.EncodesArtMethod());
+ ASSERT_TRUE(inline_info1.EncodesArtMethod());
}
// Second stack map.
@@ -361,8 +362,8 @@ TEST(StackMapTest, TestDeduplicateInlineInfoDexRegisterMap) {
// Test that the inline info dex register map deduplicated to the same offset as the stack map
// one.
ASSERT_TRUE(stack_map.HasInlineInfo());
- InlineInfo inline_info = code_info.GetInlineInfoOf(stack_map);
- EXPECT_EQ(inline_info.GetDexRegisterMapIndexAtDepth(0),
+ InlineInfo inline_info = code_info.GetInlineInfoAtDepth(stack_map, 0);
+ EXPECT_EQ(inline_info.GetDexRegisterMapIndex(),
stack_map.GetDexRegisterMapIndex());
}
}
@@ -605,17 +606,18 @@ TEST(StackMapTest, InlineTest) {
ASSERT_EQ(0, dex_registers0.GetStackOffsetInBytes(0));
ASSERT_EQ(4, dex_registers0.GetConstant(1));
- InlineInfo if0 = ci.GetInlineInfoOf(sm0);
- ASSERT_EQ(2u, if0.GetDepth());
- ASSERT_EQ(2u, if0.GetDexPcAtDepth(0));
- ASSERT_TRUE(if0.EncodesArtMethodAtDepth(0));
- ASSERT_EQ(3u, if0.GetDexPcAtDepth(1));
- ASSERT_TRUE(if0.EncodesArtMethodAtDepth(1));
+ InlineInfo if0_0 = ci.GetInlineInfoAtDepth(sm0, 0);
+ InlineInfo if0_1 = ci.GetInlineInfoAtDepth(sm0, 1);
+ ASSERT_EQ(2u, ci.GetInlineDepthOf(sm0));
+ ASSERT_EQ(2u, if0_0.GetDexPc());
+ ASSERT_TRUE(if0_0.EncodesArtMethod());
+ ASSERT_EQ(3u, if0_1.GetDexPc());
+ ASSERT_TRUE(if0_1.EncodesArtMethod());
- DexRegisterMap dex_registers1 = ci.GetDexRegisterMapAtDepth(0, if0, 1);
+ DexRegisterMap dex_registers1 = ci.GetDexRegisterMapAtDepth(0, sm0, 1);
ASSERT_EQ(8, dex_registers1.GetStackOffsetInBytes(0));
- DexRegisterMap dex_registers2 = ci.GetDexRegisterMapAtDepth(1, if0, 3);
+ DexRegisterMap dex_registers2 = ci.GetDexRegisterMapAtDepth(1, sm0, 3);
ASSERT_EQ(16, dex_registers2.GetStackOffsetInBytes(0));
ASSERT_EQ(20, dex_registers2.GetConstant(1));
ASSERT_EQ(15, dex_registers2.GetMachineRegister(2));
@@ -629,24 +631,26 @@ TEST(StackMapTest, InlineTest) {
ASSERT_EQ(56, dex_registers0.GetStackOffsetInBytes(0));
ASSERT_EQ(0, dex_registers0.GetConstant(1));
- InlineInfo if1 = ci.GetInlineInfoOf(sm1);
- ASSERT_EQ(3u, if1.GetDepth());
- ASSERT_EQ(2u, if1.GetDexPcAtDepth(0));
- ASSERT_TRUE(if1.EncodesArtMethodAtDepth(0));
- ASSERT_EQ(3u, if1.GetDexPcAtDepth(1));
- ASSERT_TRUE(if1.EncodesArtMethodAtDepth(1));
- ASSERT_EQ(5u, if1.GetDexPcAtDepth(2));
- ASSERT_TRUE(if1.EncodesArtMethodAtDepth(2));
-
- DexRegisterMap dex_registers1 = ci.GetDexRegisterMapAtDepth(0, if1, 1);
+ InlineInfo if1_0 = ci.GetInlineInfoAtDepth(sm1, 0);
+ InlineInfo if1_1 = ci.GetInlineInfoAtDepth(sm1, 1);
+ InlineInfo if1_2 = ci.GetInlineInfoAtDepth(sm1, 2);
+ ASSERT_EQ(3u, ci.GetInlineDepthOf(sm1));
+ ASSERT_EQ(2u, if1_0.GetDexPc());
+ ASSERT_TRUE(if1_0.EncodesArtMethod());
+ ASSERT_EQ(3u, if1_1.GetDexPc());
+ ASSERT_TRUE(if1_1.EncodesArtMethod());
+ ASSERT_EQ(5u, if1_2.GetDexPc());
+ ASSERT_TRUE(if1_2.EncodesArtMethod());
+
+ DexRegisterMap dex_registers1 = ci.GetDexRegisterMapAtDepth(0, sm1, 1);
ASSERT_EQ(12, dex_registers1.GetStackOffsetInBytes(0));
- DexRegisterMap dex_registers2 = ci.GetDexRegisterMapAtDepth(1, if1, 3);
+ DexRegisterMap dex_registers2 = ci.GetDexRegisterMapAtDepth(1, sm1, 3);
ASSERT_EQ(80, dex_registers2.GetStackOffsetInBytes(0));
ASSERT_EQ(10, dex_registers2.GetConstant(1));
ASSERT_EQ(5, dex_registers2.GetMachineRegister(2));
- ASSERT_FALSE(if1.HasDexRegisterMapAtDepth(2));
+ ASSERT_FALSE(if1_2.HasDexRegisterMap());
}
{
@@ -667,21 +671,23 @@ TEST(StackMapTest, InlineTest) {
ASSERT_EQ(56, dex_registers0.GetStackOffsetInBytes(0));
ASSERT_EQ(0, dex_registers0.GetConstant(1));
- InlineInfo if2 = ci.GetInlineInfoOf(sm3);
- ASSERT_EQ(3u, if2.GetDepth());
- ASSERT_EQ(2u, if2.GetDexPcAtDepth(0));
- ASSERT_TRUE(if2.EncodesArtMethodAtDepth(0));
- ASSERT_EQ(5u, if2.GetDexPcAtDepth(1));
- ASSERT_TRUE(if2.EncodesArtMethodAtDepth(1));
- ASSERT_EQ(10u, if2.GetDexPcAtDepth(2));
- ASSERT_TRUE(if2.EncodesArtMethodAtDepth(2));
+ InlineInfo if2_0 = ci.GetInlineInfoAtDepth(sm3, 0);
+ InlineInfo if2_1 = ci.GetInlineInfoAtDepth(sm3, 1);
+ InlineInfo if2_2 = ci.GetInlineInfoAtDepth(sm3, 2);
+ ASSERT_EQ(3u, ci.GetInlineDepthOf(sm3));
+ ASSERT_EQ(2u, if2_0.GetDexPc());
+ ASSERT_TRUE(if2_0.EncodesArtMethod());
+ ASSERT_EQ(5u, if2_1.GetDexPc());
+ ASSERT_TRUE(if2_1.EncodesArtMethod());
+ ASSERT_EQ(10u, if2_2.GetDexPc());
+ ASSERT_TRUE(if2_2.EncodesArtMethod());
- ASSERT_FALSE(if2.HasDexRegisterMapAtDepth(0));
+ ASSERT_FALSE(if2_0.HasDexRegisterMap());
- DexRegisterMap dex_registers1 = ci.GetDexRegisterMapAtDepth(1, if2, 1);
+ DexRegisterMap dex_registers1 = ci.GetDexRegisterMapAtDepth(1, sm3, 1);
ASSERT_EQ(2, dex_registers1.GetMachineRegister(0));
- DexRegisterMap dex_registers2 = ci.GetDexRegisterMapAtDepth(2, if2, 2);
+ DexRegisterMap dex_registers2 = ci.GetDexRegisterMapAtDepth(2, sm3, 2);
ASSERT_FALSE(dex_registers2.IsDexRegisterLive(0));
ASSERT_EQ(3, dex_registers2.GetMachineRegister(1));
}