================ @@ -2437,8 +2486,12 @@ bool DevirtModule::run() { .WPDRes[S.first.ByteOffset]; if (tryFindVirtualCallTargets(TargetsForSlot, TypeMemberInfos, S.first.ByteOffset, ExportSummary)) { - - if (!trySingleImplDevirt(ExportSummary, TargetsForSlot, S.second, Res)) { + bool SingleImplDevirt = + trySingleImplDevirt(ExportSummary, TargetsForSlot, S.second, Res); + // In Speculative devirt mode, we skip virtual constant propagation + // and branch funneling to minimize the drawback if we got wrong + // speculation during devirtualization. + if (!SingleImplDevirt && DevirtCheckMode != WPDCheckMode::Fallback) { ---------------- hassnaaHamdi wrote:
fixed https://github.com/llvm/llvm-project/pull/145031 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits