[#llvm-runWholeProgramDevirtOnIndex] = xref:llvm.adoc[llvm]::runWholeProgramDevirtOnIndex :relfileprefix: ../ :mrdocs: Perform index‐based whole‐program devirtualization on `Summary.` == Synopsis Declared in `<llvm/Transforms/IPO/WholeProgramDevirt.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void runWholeProgramDevirtOnIndex( xref:llvm/ModuleSummaryIndex.adoc[ModuleSummaryIndex]& Summary, std::set<GlobalValue::GUID>& ExportedGUIDs, std::map<ValueInfo, std::vector<VTableSlotSummary>>& LocalWPDTargetsMap, xref:llvm/DenseSet.adoc[DenseSet<StringRef>]* ExternallyVisibleSymbolNamesPtr = nullptr); ---- == Description Any devirtualized targets used by a type test in another module are added to the `ExportedGUIDs` set. For any local devirtualized targets only used within the defining module, the information necessary for locating the corresponding WPD resolution is recorded for the ValueInfo in case it is exported by cross‐module importing (in which case the devirtualized target name will need adjustment). == Parameters [cols="1,4"] |=== | Name| Description | *Summary* | Combined module summary index to run WPD on. | *ExportedGUIDs* | Set of GUIDs that must be exported for cross‐module use. | *LocalWPDTargetsMap* | Map from local ValueInfo entries to the vtable slots whose WPD resolutions may need renaming if exported. | *ExternallyVisibleSymbolNamesPtr* | Optional set of symbol names that remain externally visible; may be null. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#