LLVM 17.0.0git
|
#include "llvm/LTO/LTO.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/Analysis/StackSafetyAnalysis.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/LLVMRemarkStreamer.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/MC/TargetRegistry.h"
#include "llvm/Object/IRObjectFile.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FileSystem.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/ThreadPool.h"
#include "llvm/Support/Threading.h"
#include "llvm/Support/TimeProfiler.h"
#include "llvm/Support/ToolOutputFile.h"
#include "llvm/Support/VCSRevision.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/WholeProgramDevirt.h"
#include "llvm/Transforms/Utils/FunctionImportUtils.h"
#include "llvm/Transforms/Utils/SplitModule.h"
#include <optional>
#include <set>
#include "llvm/IR/RuntimeLibcalls.def"
Go to the source code of this file.
Classes | |
class | llvm::lto::ThinBackendProc |
This class defines the interface to the ThinLTO backend. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "lto" |
#define | HANDLE_LIBCALL(code, name) name, |
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")) |
static const char * | libcallRoutineNames [] |
|
static |
Definition at line 707 of file LTO.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, llvm::CallingConv::C, llvm::GlobalValue::getComdat(), and llvm::GlobalValue::setLinkage().
|
static |
Definition at line 424 of file LTO.cpp.
References llvm::GlobalValueSummary::getBaseObject(), llvm::GlobalValue::LinkOnceODRLinkage, and llvm::GlobalValue::WeakODRLinkage.
Referenced by thinLTOInternalizeAndPromoteGUID().
|
static |
Definition at line 432 of file LTO.cpp.
References llvm::GlobalValue::AppendingLinkage, llvm::GlobalValue::AvailableExternallyLinkage, llvm::EnableLTOInternalization, llvm::GlobalValue::ExternalLinkage, llvm::GlobalValue::InternalLinkage, llvm::GlobalValue::isInterposableLinkage(), llvm::GlobalValue::isLocalLinkage(), isWeakObjectWithRWAccess(), and VI.
Referenced by llvm::thinLTOInternalizeAndPromoteInIndex().
|
static |
Definition at line 325 of file LTO.cpp.
References llvm::GlobalValue::AvailableExternallyLinkage, llvm::CallingConv::C, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), llvm::GlobalValue::DefaultVisibility, llvm::lto::Config::ELF, llvm::lto::Config::FromPrevailing, llvm::GlobalValue::getWeakLinkage(), llvm::GlobalValue::isAppendingLinkage(), llvm::GlobalValue::isLinkOnceLinkage(), llvm::GlobalValue::isLinkOnceODRLinkage(), llvm::GlobalValue::isLocalLinkage(), and VI.
Referenced by llvm::thinLTOResolvePrevailingInIndex().
|
static |
Definition at line 608 of file LTO.cpp.
References assert(), llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), llvm::lto::SymbolResolution::FinalDefinitionInLinkageUnit, llvm::raw_ostream::flush(), llvm::lto::InputFile::getName(), llvm::lto::SymbolResolution::LinkerRedefined, OS, llvm::lto::SymbolResolution::Prevailing, llvm::lto::InputFile::symbols(), and llvm::lto::SymbolResolution::VisibleToRegularObj.
Referenced by llvm::lto::LTO::add().
|
static |
Definition at line 1189 of file LTO.cpp.
Referenced by llvm::lto::LTO::getRuntimeLibcallSymbols().