@@ -854,20 +854,15 @@ TEST_P(InstrProfReaderWriterTest, icall_and_vtable_data_read_write) {
854
854
// Test the number of instrumented indirect call sites and the number of
855
855
// profiled values at each site.
856
856
ASSERT_EQ (4U , R->getNumValueSites (IPVK_IndirectCallTarget));
857
- EXPECT_EQ (3U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 0 ));
858
- EXPECT_EQ (0U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 1 ));
859
- EXPECT_EQ (2U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 2 ));
860
- EXPECT_EQ (2U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 3 ));
861
857
862
858
// Test the number of instrumented vtable sites and the number of profiled
863
859
// values at each site.
864
860
ASSERT_EQ (R->getNumValueSites (IPVK_VTableTarget), 2U );
865
- EXPECT_EQ (R->getNumValueDataForSite (IPVK_VTableTarget, 0 ), 3U );
866
- EXPECT_EQ (R->getNumValueDataForSite (IPVK_VTableTarget, 1 ), 2U );
867
861
868
862
// First indirect site.
869
863
{
870
864
auto VD = R->getValueArrayForSite (IPVK_IndirectCallTarget, 0 );
865
+ ASSERT_THAT (VD, SizeIs (3 ));
871
866
872
867
EXPECT_EQ (VD[0 ].Count , 3U * getProfWeight ());
873
868
EXPECT_EQ (VD[1 ].Count , 2U * getProfWeight ());
@@ -878,9 +873,14 @@ TEST_P(InstrProfReaderWriterTest, icall_and_vtable_data_read_write) {
878
873
EXPECT_STREQ ((const char *)VD[2 ].Value , " callee1" );
879
874
}
880
875
876
+ EXPECT_THAT (R->getValueArrayForSite (IPVK_IndirectCallTarget, 1 ), SizeIs (0 ));
877
+ EXPECT_THAT (R->getValueArrayForSite (IPVK_IndirectCallTarget, 2 ), SizeIs (2 ));
878
+ EXPECT_THAT (R->getValueArrayForSite (IPVK_IndirectCallTarget, 3 ), SizeIs (2 ));
879
+
881
880
// First vtable site.
882
881
{
883
882
auto VD = R->getValueArrayForSite (IPVK_VTableTarget, 0 );
883
+ ASSERT_THAT (VD, SizeIs (3 ));
884
884
885
885
EXPECT_EQ (VD[0 ].Count , 3U * getProfWeight ());
886
886
EXPECT_EQ (VD[1 ].Count , 2U * getProfWeight ());
@@ -894,6 +894,7 @@ TEST_P(InstrProfReaderWriterTest, icall_and_vtable_data_read_write) {
894
894
// Second vtable site.
895
895
{
896
896
auto VD = R->getValueArrayForSite (IPVK_VTableTarget, 1 );
897
+ ASSERT_THAT (VD, SizeIs (2 ));
897
898
898
899
EXPECT_EQ (VD[0 ].Count , 2U * getProfWeight ());
899
900
EXPECT_EQ (VD[1 ].Count , 1U * getProfWeight ());
@@ -1108,20 +1109,13 @@ TEST_P(MaybeSparseInstrProfTest, icall_and_vtable_data_merge) {
1108
1109
EXPECT_THAT_ERROR (R.takeError (), Succeeded ());
1109
1110
// For indirect calls.
1110
1111
ASSERT_EQ (5U , R->getNumValueSites (IPVK_IndirectCallTarget));
1111
- ASSERT_EQ (4U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 0 ));
1112
- ASSERT_EQ (0U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 1 ));
1113
- ASSERT_EQ (4U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 2 ));
1114
- ASSERT_EQ (2U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 3 ));
1115
- ASSERT_EQ (3U , R->getNumValueDataForSite (IPVK_IndirectCallTarget, 4 ));
1116
1112
// For vtables.
1117
1113
ASSERT_EQ (R->getNumValueSites (IPVK_VTableTarget), 3U );
1118
- ASSERT_EQ (R->getNumValueDataForSite (IPVK_VTableTarget, 0 ), 4U );
1119
- ASSERT_EQ (R->getNumValueDataForSite (IPVK_VTableTarget, 1 ), 4U );
1120
- ASSERT_EQ (R->getNumValueDataForSite (IPVK_VTableTarget, 2 ), 3U );
1121
1114
1122
1115
// Test the merged values for indirect calls.
1123
1116
{
1124
1117
auto VD = R->getValueArrayForSite (IPVK_IndirectCallTarget, 0 );
1118
+ ASSERT_THAT (VD, SizeIs (4 ));
1125
1119
EXPECT_STREQ ((const char *)VD[0 ].Value , " callee2" );
1126
1120
EXPECT_EQ (VD[0 ].Count , 7U );
1127
1121
EXPECT_STREQ ((const char *)VD[1 ].Value , " callee3" );
@@ -1131,7 +1125,10 @@ TEST_P(MaybeSparseInstrProfTest, icall_and_vtable_data_merge) {
1131
1125
EXPECT_STREQ ((const char *)VD[3 ].Value , " callee1" );
1132
1126
EXPECT_EQ (VD[3 ].Count , 1U );
1133
1127
1128
+ ASSERT_THAT (R->getValueArrayForSite (IPVK_IndirectCallTarget, 1 ), SizeIs (0 ));
1129
+
1134
1130
auto VD_2 = R->getValueArrayForSite (IPVK_IndirectCallTarget, 2 );
1131
+ ASSERT_THAT (VD_2, SizeIs (4 ));
1135
1132
EXPECT_STREQ ((const char *)VD_2[0 ].Value , " callee3" );
1136
1133
EXPECT_EQ (VD_2[0 ].Count , 6U );
1137
1134
EXPECT_STREQ ((const char *)VD_2[1 ].Value , " callee4" );
@@ -1142,12 +1139,14 @@ TEST_P(MaybeSparseInstrProfTest, icall_and_vtable_data_merge) {
1142
1139
EXPECT_EQ (VD_2[3 ].Count , 1U );
1143
1140
1144
1141
auto VD_3 = R->getValueArrayForSite (IPVK_IndirectCallTarget, 3 );
1142
+ ASSERT_THAT (VD_3, SizeIs (2 ));
1145
1143
EXPECT_STREQ ((const char *)VD_3[0 ].Value , " callee8" );
1146
1144
EXPECT_EQ (VD_3[0 ].Count , 2U );
1147
1145
EXPECT_STREQ ((const char *)VD_3[1 ].Value , " callee7" );
1148
1146
EXPECT_EQ (VD_3[1 ].Count , 1U );
1149
1147
1150
1148
auto VD_4 = R->getValueArrayForSite (IPVK_IndirectCallTarget, 4 );
1149
+ ASSERT_THAT (VD_4, SizeIs (3 ));
1151
1150
EXPECT_STREQ ((const char *)VD_4[0 ].Value , " callee3" );
1152
1151
EXPECT_EQ (VD_4[0 ].Count , 6U );
1153
1152
EXPECT_STREQ ((const char *)VD_4[1 ].Value , " callee2" );
@@ -1159,6 +1158,7 @@ TEST_P(MaybeSparseInstrProfTest, icall_and_vtable_data_merge) {
1159
1158
// Test the merged values for vtables
1160
1159
{
1161
1160
auto VD0 = R->getValueArrayForSite (IPVK_VTableTarget, 0 );
1161
+ ASSERT_THAT (VD0, SizeIs (4 ));
1162
1162
EXPECT_EQ (VD0[0 ].Value , getCalleeAddress (vtable2));
1163
1163
EXPECT_EQ (VD0[0 ].Count , 7U );
1164
1164
EXPECT_EQ (VD0[1 ].Value , getCalleeAddress (vtable3));
@@ -1169,6 +1169,7 @@ TEST_P(MaybeSparseInstrProfTest, icall_and_vtable_data_merge) {
1169
1169
EXPECT_EQ (VD0[3 ].Count , 1U );
1170
1170
1171
1171
auto VD1 = R->getValueArrayForSite (IPVK_VTableTarget, 1 );
1172
+ ASSERT_THAT (VD1, SizeIs (4 ));
1172
1173
EXPECT_EQ (VD1[0 ].Value , getCalleeAddress (vtable3));
1173
1174
EXPECT_EQ (VD1[0 ].Count , 6U );
1174
1175
EXPECT_EQ (VD1[1 ].Value , getCalleeAddress (vtable4));
@@ -1179,6 +1180,7 @@ TEST_P(MaybeSparseInstrProfTest, icall_and_vtable_data_merge) {
1179
1180
EXPECT_EQ (VD1[3 ].Count , 1U );
1180
1181
1181
1182
auto VD2 = R->getValueArrayForSite (IPVK_VTableTarget, 2 );
1183
+ ASSERT_THAT (VD2, SizeIs (3 ));
1182
1184
EXPECT_EQ (VD2[0 ].Value , getCalleeAddress (vtable3));
1183
1185
EXPECT_EQ (VD2[0 ].Count , 6U );
1184
1186
EXPECT_EQ (VD2[1 ].Value , getCalleeAddress (vtable2));
0 commit comments