LLVM  4.0.0
Classes | Namespaces | Typedefs | Functions
LTO.h File Reference
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/ModuleSummaryIndex.h"
#include "llvm/LTO/Config.h"
#include "llvm/Linker/IRMover.h"
#include "llvm/Object/IRObjectFile.h"
#include "llvm/Support/thread.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Transforms/IPO/FunctionImport.h"
Include dependency graph for LTO.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::lto::InputFile
 An input file. More...
 
class  llvm::lto::InputFile::Symbol
 This is a wrapper for ArrayRef<ModuleSymbolTable::Symbol>::iterator that exposes only the information that an LTO client should need in order to do symbol resolution. More...
 
class  llvm::lto::InputFile::symbol_iterator
 
class  llvm::lto::NativeObjectStream
 This class wraps an output stream for a native object. More...
 
class  llvm::lto::LTO
 This class implements a resolution-based interface to LLVM's LTO functionality. More...
 
struct  llvm::lto::LTO::RegularLTOState::CommonResolution
 
struct  llvm::lto::SymbolResolution
 The resolution for a symbol. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 
 llvm::lto
 

Typedefs

typedef std::function
< std::unique_ptr
< NativeObjectStream >unsigned
Task)> 
llvm::lto::AddStreamFn
 This type defines the callback to add a native object that is generated on the fly. More...
 
typedef std::function
< AddStreamFn(unsigned Task,
StringRef Key)> 
llvm::lto::NativeObjectCache
 This is the type of a native object cache. More...
 
typedef std::function
< std::unique_ptr
< ThinBackendProc > Config &C,
ModuleSummaryIndex
&CombinedIndex, StringMap
< GVSummaryMapTy >
&ModuleToDefinedGVSummaries,
AddStreamFn AddStream,
NativeObjectCache Cache)> 
llvm::lto::ThinBackend
 A ThinBackend defines what happens after the thin-link phase during ThinLTO. More...
 

Functions

void llvm::thinLTOResolveWeakForLinkerInIndex (ModuleSummaryIndex &Index, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage)
 Resolve Weak and LinkOnce values in the Index. More...
 
void llvm::thinLTOInternalizeAndPromoteInIndex (ModuleSummaryIndex &Index, function_ref< bool(StringRef, GlobalValue::GUID)> isExported)
 Update the linkages in the given Index to mark exported values as external and non-exported values as internal. More...
 
std::string llvm::lto::getThinLTOOutputFile (const std::string &Path, const std::string &OldPrefix, const std::string &NewPrefix)
 Given the original Path to an output file, replace any path prefix matching OldPrefix with NewPrefix. More...
 
ThinBackend llvm::lto::createInProcessThinBackend (unsigned ParallelismLevel)
 This ThinBackend runs the individual backend jobs in-process. More...
 
ThinBackend llvm::lto::createWriteIndexesThinBackend (std::string OldPrefix, std::string NewPrefix, bool ShouldEmitImportsFiles, std::string LinkedObjectsFile)
 This ThinBackend writes individual module indexes to files, instead of running the individual backend jobs. More...