[llvm] [PGO] Preserve analysis results when nothing was instrumented (PR #93421)
Ellis Hoag via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 14 14:20:18 PDT 2024
================
@@ -143,12 +147,47 @@ struct PGOInstrumentationGenTest
}
};
+struct PGOInstrumentationGenInstrumentTest
+ : PGOInstrumentationGenTest,
+ WithParamInterface<std::tuple<StringRef, StringRef>> {};
+
static constexpr StringRef CodeWithFuncDefs = R"(
define i32 @f(i32 %n) {
entry:
ret i32 0
})";
+INSTANTIATE_TEST_SUITE_P(
+ PGOInstrumetationGenTestSuite, PGOInstrumentationGenInstrumentTest,
+ Values(std::make_tuple(CodeWithFuncDefs, "instrument_function_defs")),
+ PGOTestName<PGOInstrumentationGenInstrumentTest::ParamType>());
+
+TEST_P(PGOInstrumentationGenInstrumentTest, Instrumented) {
+ const StringRef Code = std::get<0>(GetParam());
+ parseAssembly(Code);
+
+ ASSERT_THAT(M, NotNull());
+
+ Sequence PassSequence;
+ EXPECT_CALL(MMAHandle, run(Ref(*M), _))
+ .InSequence(PassSequence)
+ .WillOnce(DoDefault());
+ EXPECT_CALL(MMAHandle, invalidate(Ref(*M), _, _))
+ .InSequence(PassSequence)
+ .WillOnce(DoDefault());
+
+ MPM.run(*M, MAM);
+
+ const auto *IRInstrVar =
+ M->getNamedGlobal(INSTR_PROF_QUOTE(INSTR_PROF_RAW_VERSION_VAR));
+ EXPECT_THAT(IRInstrVar, NotNull());
----------------
ellishg wrote:
```suggestion
ASSERT_THAT(IRInstrVar, NotNull());
```
I believe this will stop the test if null, rather than trying to continue.
https://github.com/llvm/llvm-project/pull/93421
More information about the llvm-commits
mailing list