LLVM
8.0.1
|
#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/LegacyPassManager.h"
#include "llvm/IR/Mangler.h"
#include "llvm/IR/Metadata.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>
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 (GlobalValueSummaryList &GVSummaryList, GlobalValue::GUID GUID, DenseSet< GlobalValueSummary *> &GlobalInvolvedWithAlias, function_ref< bool(GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref< void(StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage) |
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< bool > | DumpThinCGSCCs ("dump-thin-cg-sccs", cl::init(false), cl::Hidden, cl::desc("Dump the SCCs in the ThinLTO index's callgraph")) |
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. More... | |
|
static |
Definition at line 594 of file LTO.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, C, llvm::GlobalValue::getComdat(), llvm::BitcodeModule::getLazyModule(), llvm::GlobalValue::hasLocalLinkage(), llvm::Mod, llvm::GlobalValue::setLinkage(), and llvm::Expected< T >::takeError().
|
static |
Definition at line 359 of file LTO.cpp.
References llvm::GlobalValue::AppendingLinkage, llvm::GlobalValue::AvailableExternallyLinkage, EnableLTOInternalization, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::InternalLinkage, and llvm::GlobalValue::isLocalLinkage().
Referenced by llvm::thinLTOInternalizeAndPromoteInIndex().
|
static |
Definition at line 296 of file LTO.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, llvm::detail::DenseSetImpl< ValueT, DenseMap< ValueT, detail::DenseSetEmpty, ValueInfoT, detail::DenseSetPair< ValueT > >, ValueInfoT >::count(), llvm::GlobalValue::getWeakLinkage(), llvm::GlobalValue::isAppendingLinkage(), llvm::GlobalValue::isLinkOnceLinkage(), llvm::GlobalValue::isLinkOnceODRLinkage(), and llvm::GlobalValue::isLocalLinkage().
Referenced by llvm::thinLTOResolvePrevailingInIndex().
|
static |
Definition at line 499 of file LTO.cpp.
References assert(), llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), llvm::raw_ostream::flush(), llvm::lto::InputFile::getName(), and llvm::lto::InputFile::symbols().
Referenced by llvm::lto::LTO::add().
|
static |
Referenced by llvm::lto::createWriteIndexesThinBackend().
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().