LLVM 20.0.0git
Classes | Namespaces | Enumerations | Functions
FunctionImport.h File Reference
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/ModuleSummaryIndex.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Support/Error.h"
#include <functional>
#include <map>
#include <memory>
#include <string>
#include <system_error>
#include <unordered_map>
#include <unordered_set>
#include <utility>

Go to the source code of this file.

Classes

class  llvm::FunctionImporter
 The function importer is automatically importing function from other modules based on the provided summary informations. More...
 
struct  llvm::FunctionImporter::ImportFailureInfo
 Information optionally tracked for candidates the importer decided not to import. More...
 
class  llvm::FunctionImportPass
 The function importing pass. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Enumerations

enum class  llvm::PrevailingType { llvm::Yes , llvm::No , llvm::Unknown }
 PrevailingType enum used as a return type of callback passed to computeDeadSymbolsAndUpdateIndirectCalls. More...
 

Functions

void llvm::ComputeCrossModuleImport (const ModuleSummaryIndex &Index, const DenseMap< StringRef, GVSummaryMapTy > &ModuleToDefinedGVSummaries, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, DenseMap< StringRef, FunctionImporter::ImportMapTy > &ImportLists, DenseMap< StringRef, FunctionImporter::ExportSetTy > &ExportLists)
 Compute all the imports and exports for every module in the Index.
 
void llvm::updateIndirectCalls (ModuleSummaryIndex &Index)
 Update call edges for indirect calls to local functions added from SamplePGO when needed.
 
void llvm::computeDeadSymbolsAndUpdateIndirectCalls (ModuleSummaryIndex &Index, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols, function_ref< PrevailingType(GlobalValue::GUID)> isPrevailing)
 Compute all the symbols that are "dead": i.e these that can't be reached in the graph from any of the given symbols listed in GUIDPreservedSymbols.
 
void llvm::computeDeadSymbolsWithConstProp (ModuleSummaryIndex &Index, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols, function_ref< PrevailingType(GlobalValue::GUID)> isPrevailing, bool ImportEnabled)
 Compute dead symbols and run constant propagation in combined index after that.
 
bool llvm::convertToDeclaration (GlobalValue &GV)
 Converts value GV to declaration, or replaces with a declaration if it is an alias.
 
void llvm::gatherImportedSummariesForModule (StringRef ModulePath, const DenseMap< StringRef, GVSummaryMapTy > &ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy &ImportList, std::map< std::string, GVSummaryMapTy > &ModuleToSummariesForIndex, GVSummaryPtrSet &DecSummaries)
 Compute the set of summaries needed for a ThinLTO backend compilation of ModulePath.
 
std::error_code llvm::EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const std::map< std::string, GVSummaryMapTy > &ModuleToSummariesForIndex)
 Emit into OutputFilename the files module ModulePath will import from.
 
void llvm::thinLTOFinalizeInModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals, bool PropagateAttrs)
 Based on the information recorded in the summaries during global summary-based analysis:
 
void llvm::thinLTOInternalizeModule (Module &TheModule, const GVSummaryMapTy &DefinedGlobals)
 Internalize TheModule based on the information recorded in the summaries during global summary-based analysis.