LLVM 20.0.0git
Functions
of APIs to run individual stages in isolation.

Functions

std::unique_ptr< ModuleSummaryIndexllvm::ThinLTOCodeGenerator::linkCombinedIndex ()
 Produce the combined summary index from all the bitcode files: "thin-link".
 
void llvm::ThinLTOCodeGenerator::promote (Module &Module, ModuleSummaryIndex &Index, const lto::InputFile &File)
 Perform promotion and renaming of exported internal functions, and additionally resolve weak and linkonce symbols.
 
void llvm::ThinLTOCodeGenerator::emitImports (Module &Module, StringRef OutputName, ModuleSummaryIndex &Index, const lto::InputFile &File)
 Compute and emit the imported files for module at ModulePath.
 
void llvm::ThinLTOCodeGenerator::crossModuleImport (Module &Module, ModuleSummaryIndex &Index, const lto::InputFile &File)
 Perform cross-module importing for the module identified by ModuleIdentifier.
 
void llvm::ThinLTOCodeGenerator::gatherImportedSummariesForModule (Module &Module, ModuleSummaryIndex &Index, ModuleToSummariesForIndexTy &ModuleToSummariesForIndex, GVSummaryPtrSet &DecSummaries, const lto::InputFile &File)
 Compute the list of summaries and the subset of declaration summaries needed for importing into module.
 
void llvm::ThinLTOCodeGenerator::internalize (Module &Module, ModuleSummaryIndex &Index, const lto::InputFile &File)
 Perform internalization.
 
void llvm::ThinLTOCodeGenerator::optimize (Module &Module)
 Perform post-importing ThinLTO optimizations.
 
std::string llvm::ThinLTOCodeGenerator::writeGeneratedObject (int count, StringRef CacheEntryPath, const MemoryBuffer &OutputBuffer)
 Write temporary object file to SavedObjectDirectoryPath, write symlink to Cache directory if needed.
 

Detailed Description

Function Documentation

◆ crossModuleImport()

void ThinLTOCodeGenerator::crossModuleImport ( Module Module,
ModuleSummaryIndex Index,
const lto::InputFile File 
)

◆ emitImports()

void ThinLTOCodeGenerator::emitImports ( Module Module,
StringRef  OutputName,
ModuleSummaryIndex Index,
const lto::InputFile File 
)

◆ gatherImportedSummariesForModule()

void ThinLTOCodeGenerator::gatherImportedSummariesForModule ( Module Module,
ModuleSummaryIndex Index,
ModuleToSummariesForIndexTy ModuleToSummariesForIndex,
GVSummaryPtrSet DecSummaries,
const lto::InputFile File 
)

Compute the list of summaries and the subset of declaration summaries needed for importing into module.

Compute the list of summaries needed for importing into module.

Definition at line 761 of file ThinLTOCodeGenerator.cpp.

References addUsedSymbolToPreservedGUID(), llvm::ComputeCrossModuleImport(), computeDeadSymbolsInIndex(), computeGUIDPreservedSymbols(), computePrevailingCopies(), llvm::gatherImportedSummariesForModule(), llvm::Module::getModuleIdentifier(), and llvm::Module::getTargetTriple().

◆ internalize()

void ThinLTOCodeGenerator::internalize ( Module TheModule,
ModuleSummaryIndex Index,
const lto::InputFile File 
)

◆ linkCombinedIndex()

std::unique_ptr< ModuleSummaryIndex > ThinLTOCodeGenerator::linkCombinedIndex ( )

Produce the combined summary index from all the bitcode files: "thin-link".

Definition at line 604 of file ThinLTOCodeGenerator.cpp.

References llvm::errs(), llvm::logAllUnhandledErrors(), and llvm::Mod.

Referenced by llvm::ThinLTOCodeGenerator::run().

◆ optimize()

void ThinLTOCodeGenerator::optimize ( Module Module)

◆ promote()

void ThinLTOCodeGenerator::promote ( Module TheModule,
ModuleSummaryIndex Index,
const lto::InputFile File 
)

Perform promotion and renaming of exported internal functions, and additionally resolve weak and linkonce symbols.

Perform promotion and renaming of exported internal functions.

Index is updated to reflect linkage changes from weak resolution.

Definition at line 670 of file ThinLTOCodeGenerator.cpp.

References addUsedSymbolToPreservedGUID(), llvm::ComputeCrossModuleImport(), computeDeadSymbolsInIndex(), computeGUIDPreservedSymbols(), computePrevailingCopies(), llvm::Module::getModuleIdentifier(), llvm::Module::getTargetTriple(), promoteModule(), resolvePrevailingInIndex(), llvm::thinLTOFinalizeInModule(), and llvm::thinLTOInternalizeAndPromoteInIndex().

◆ writeGeneratedObject()

std::string ThinLTOCodeGenerator::writeGeneratedObject ( int  count,
StringRef  CacheEntryPath,
const MemoryBuffer OutputBuffer 
)

Write temporary object file to SavedObjectDirectoryPath, write symlink to Cache directory if needed.

Write out the generated object file, either from CacheEntryPath or from OutputBuffer, preferring hard-link when possible.

Returns the path to the generated file in SavedObjectsDirectoryPath.

Definition at line 924 of file ThinLTOCodeGenerator.cpp.

References llvm::sys::path::append(), llvm::SmallString< InternalLen >::c_str(), llvm::sys::fs::copy_file(), llvm::count(), llvm::sys::fs::create_hard_link(), llvm::StringRef::empty(), llvm::errs(), llvm::sys::fs::exists(), llvm::Triple::getArchName(), llvm::MemoryBuffer::getBuffer(), llvm::sys::fs::OF_None, OS, llvm::sys::fs::remove(), llvm::report_fatal_error(), and llvm::ThinLTOCodeGeneratorImpl::TargetMachineBuilder::TheTriple.

Referenced by llvm::ThinLTOCodeGenerator::run().