LLVM  9.0.0svn
Classes | Macros | Functions | Variables
LTO.cpp File Reference
#include "llvm/LTO/LTO.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Bitcode/BitcodeReader.h"
#include "llvm/Bitcode/BitcodeWriter.h"
#include "llvm/CodeGen/Analysis.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/AutoUpgrade.h"
#include "llvm/IR/DiagnosticPrinter.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LegacyPassManager.h"
#include "llvm/IR/Mangler.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/RemarkStreamer.h"
#include "llvm/LTO/LTOBackend.h"
#include "llvm/LTO/SummaryBasedOptimizations.h"
#include "llvm/Linker/IRMover.h"
#include "llvm/Object/IRObjectFile.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SHA1.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/ThreadPool.h"
#include "llvm/Support/Threading.h"
#include "llvm/Support/VCSRevision.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
#include "llvm/Transforms/Utils/FunctionImportUtils.h"
#include "llvm/Transforms/Utils/SplitModule.h"
#include <set>
Include dependency graph for LTO.cpp:

Go to the source code of this file.

Classes

class  llvm::lto::ThinBackendProc
 This class defines the interface to the ThinLTO backend. More...
 

Macros

#define DEBUG_TYPE   "lto"
 

Functions

static void thinLTOResolvePrevailingGUID (ValueInfo VI, DenseSet< GlobalValueSummary *> &GlobalInvolvedWithAlias, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage, const DenseSet< GlobalValue::GUID > &GUIDPreservedSymbols)
 
static bool isWeakWriteableObject (GlobalValueSummary *GVS)
 
static void thinLTOInternalizeAndPromoteGUID (GlobalValueSummaryList &GVSummaryList, GlobalValue::GUID GUID, function_ref< bool(StringRef, GlobalValue::GUID)> isExported)
 
static void writeToResolutionFile (raw_ostream &OS, InputFile *Input, ArrayRef< SymbolResolution > Res)
 
static void handleNonPrevailingComdat (GlobalValue &GV, std::set< const Comdat *> &NonPrevailingComdats)
 

Variables

static cl::opt< boolDumpThinCGSCCs ("dump-thin-cg-sccs", cl::init(false), cl::Hidden, cl::desc("Dump the SCCs in the ThinLTO index's callgraph"))
 
cl::opt< boolEnableLTOInternalization ("enable-lto-internalization", cl::init(true), cl::Hidden, cl::desc("Enable global value internalization in LTO"))
 Enable global value internalization in LTO. More...
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "lto"

Definition at line 56 of file LTO.cpp.

Function Documentation

◆ handleNonPrevailingComdat()

static void handleNonPrevailingComdat ( GlobalValue GV,
std::set< const Comdat *> &  NonPrevailingComdats 
)
static

◆ isWeakWriteableObject()

static bool isWeakWriteableObject ( GlobalValueSummary GVS)
static

◆ thinLTOInternalizeAndPromoteGUID()

static void thinLTOInternalizeAndPromoteGUID ( GlobalValueSummaryList GVSummaryList,
GlobalValue::GUID  GUID,
function_ref< bool(StringRef, GlobalValue::GUID)>  isExported 
)
static

◆ thinLTOResolvePrevailingGUID()

static void thinLTOResolvePrevailingGUID ( ValueInfo  VI,
DenseSet< GlobalValueSummary *> &  GlobalInvolvedWithAlias,
function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)>  isPrevailing,
function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)>  recordNewLinkage,
const DenseSet< GlobalValue::GUID > &  GUIDPreservedSymbols 
)
static

◆ writeToResolutionFile()

static void writeToResolutionFile ( raw_ostream OS,
InputFile Input,
ArrayRef< SymbolResolution Res 
)
static

Variable Documentation

◆ DumpThinCGSCCs

cl::opt<bool> DumpThinCGSCCs("dump-thin-cg-sccs", cl::init(false), cl::Hidden, cl::desc("Dump the SCCs in the ThinLTO index's callgraph"))
static

◆ EnableLTOInternalization

cl::opt<bool> EnableLTOInternalization("enable-lto-internalization", cl::init(true), cl::Hidden, cl::desc("Enable global value internalization in LTO"))

Enable global value internalization in LTO.

Referenced by llvm::LTOCodeGenerator::resetMergedModule(), and thinLTOInternalizeAndPromoteGUID().