[llvm] [WPD]: Enable speculative devirtualizatoin. (PR #159048)
Teresa Johnson via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 25 12:50:52 PDT 2025
================
@@ -790,11 +812,22 @@ struct DevirtIndex {
PreservedAnalyses WholeProgramDevirtPass::run(Module &M,
ModuleAnalysisManager &MAM) {
if (UseCommandLine) {
- if (!DevirtModule::runForTesting(M, MAM))
+ if (!DevirtModule::runForTesting(M, MAM, ClDevirtualizeSpeculatively))
return PreservedAnalyses::all();
return PreservedAnalyses::none();
}
- if (!DevirtModule(M, MAM, ExportSummary, ImportSummary).run())
+
+ std::optional<ModuleSummaryIndex> Index;
+ if (!ExportSummary && !ImportSummary && DevirtSpeculatively) {
+ // Build the ExportSummary from the module.
+ assert(!ExportSummary &&
+ "ExportSummary is expected to be empty in non-LTO mode");
+ ProfileSummaryInfo PSI(M);
+ Index.emplace(buildModuleSummaryIndex(M, nullptr, &PSI));
+ ExportSummary = Index.has_value() ? &Index.value() : nullptr;
+ }
+ if (!DevirtModule(M, MAM, ExportSummary, ImportSummary, DevirtSpeculatively)
----------------
teresajohnson wrote:
I don't think DevirtSpeculatively is set by this PR, as mentioned above.
https://github.com/llvm/llvm-project/pull/159048
More information about the llvm-commits
mailing list