@@ -103,13 +103,9 @@ class MockModuleAnalysisHandle
103
103
ModuleAnalysisManager::Invalidator &));
104
104
};
105
105
106
- template <typename ParamType> struct PGOTestName {
107
- std::string operator ()(const TestParamInfo<ParamType> &Info) const {
108
- return std::get<1 >(Info.param ).str ();
109
- }
110
- };
111
-
112
- struct PGOInstrumentationGenTest : public Test {
106
+ struct PGOInstrumentationGenTest
107
+ : public Test,
108
+ WithParamInterface<std::tuple<StringRef, StringRef>> {
113
109
ModulePassManager MPM;
114
110
PassBuilder PB;
115
111
MockModuleAnalysisHandle MMAHandle;
@@ -145,47 +141,12 @@ struct PGOInstrumentationGenTest : public Test {
145
141
}
146
142
};
147
143
148
- struct PGOInstrumentationGenInstrumentTest
149
- : PGOInstrumentationGenTest,
150
- WithParamInterface<std::tuple<StringRef, StringRef>> {};
151
-
152
144
static constexpr StringRef CodeWithFuncDefs = R"(
153
145
define i32 @f(i32 %n) {
154
146
entry:
155
147
ret i32 0
156
148
})" ;
157
149
158
- INSTANTIATE_TEST_SUITE_P (
159
- PGOInstrumetationGenTestSuite, PGOInstrumentationGenInstrumentTest,
160
- Values (std::make_tuple(CodeWithFuncDefs, " instrument_function_defs" )),
161
- PGOTestName<PGOInstrumentationGenInstrumentTest::ParamType>());
162
-
163
- TEST_P (PGOInstrumentationGenInstrumentTest, Instrumented) {
164
- const StringRef Code = std::get<0 >(GetParam ());
165
- parseAssembly (Code);
166
-
167
- ASSERT_THAT (M, NotNull ());
168
-
169
- Sequence PassSequence;
170
- EXPECT_CALL (MMAHandle, run (Ref (*M), _))
171
- .InSequence (PassSequence)
172
- .WillOnce (DoDefault ());
173
- EXPECT_CALL (MMAHandle, invalidate (Ref (*M), _, _))
174
- .InSequence (PassSequence)
175
- .WillOnce (DoDefault ());
176
-
177
- MPM.run (*M, MAM);
178
-
179
- const auto *IRInstrVar =
180
- M->getNamedGlobal (INSTR_PROF_QUOTE (INSTR_PROF_RAW_VERSION_VAR));
181
- ASSERT_THAT (IRInstrVar, NotNull ());
182
- EXPECT_FALSE (IRInstrVar->isDeclaration ());
183
- }
184
-
185
- struct PGOInstrumentationGenIgnoreTest
186
- : PGOInstrumentationGenTest,
187
- WithParamInterface<std::tuple<StringRef, StringRef>> {};
188
-
189
150
static constexpr StringRef CodeWithFuncDecls = R"(
190
151
declare i32 @f(i32);
191
152
)" ;
@@ -196,26 +157,33 @@ static constexpr StringRef CodeWithGlobals = R"(
196
157
)" ;
197
158
198
159
INSTANTIATE_TEST_SUITE_P (
199
- PGOInstrumetationGenIgnoreTestSuite, PGOInstrumentationGenIgnoreTest,
200
- Values (std::make_tuple(CodeWithFuncDecls, " instrument_function_decls" ),
160
+ PGOInstrumetationGenTestSuite, PGOInstrumentationGenTest,
161
+ Values (std::make_tuple(CodeWithFuncDefs, " instrument_function_defs" ),
162
+ std::make_tuple(CodeWithFuncDecls, " instrument_function_decls" ),
201
163
std::make_tuple(CodeWithGlobals, " instrument_globals" )),
202
- PGOTestName<PGOInstrumentationGenIgnoreTest::ParamType>());
164
+ [](const TestParamInfo<PGOInstrumentationGenTest::ParamType> &Info) {
165
+ return std::get<1 >(Info.param ).str ();
166
+ });
203
167
204
- TEST_P (PGOInstrumentationGenIgnoreTest, NotInstrumented ) {
168
+ TEST_P (PGOInstrumentationGenTest, Instrumented ) {
205
169
const StringRef Code = std::get<0 >(GetParam ());
206
-
207
170
parseAssembly (Code);
208
171
209
172
ASSERT_THAT (M, NotNull ());
210
173
211
- EXPECT_CALL (MMAHandle, run (Ref (*M), _)).WillOnce (DoDefault ());
212
- EXPECT_CALL (MMAHandle, invalidate (Ref (*M), _, _)).Times (0 );
174
+ Sequence PassSequence;
175
+ EXPECT_CALL (MMAHandle, run (Ref (*M), _))
176
+ .InSequence (PassSequence)
177
+ .WillOnce (DoDefault ());
178
+ EXPECT_CALL (MMAHandle, invalidate (Ref (*M), _, _))
179
+ .InSequence (PassSequence)
180
+ .WillOnce (DoDefault ());
213
181
214
182
MPM.run (*M, MAM);
215
183
216
184
const auto *IRInstrVar =
217
185
M->getNamedGlobal (INSTR_PROF_QUOTE (INSTR_PROF_RAW_VERSION_VAR));
218
- ASSERT_THAT (IRInstrVar, NotNull ());
186
+ EXPECT_THAT (IRInstrVar, NotNull ());
219
187
EXPECT_FALSE (IRInstrVar->isDeclaration ());
220
188
}
221
189
0 commit comments