• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/LTO/

Lines Matching refs:LTO

1 //===-LTO.cpp - LLVM Link Time Optimizer ----------------------------------===//
9 // This file implements functions and classes used to support LTO.
13 #include "llvm/LTO/LTO.h"
28 #include "llvm/LTO/LTOBackend.h"
29 #include "llvm/LTO/SummaryBasedOptimizations.h"
64 /// Enable global value internalization in LTO.
67 cl::desc("Enable global value internalization in LTO"));
92 // Include the parts of the LTO configuration that affect code generation.
468 // Skip symbols that are irrelevant to LTO. Note that this condition needs
469 // to match the one in Skip() in LTO::addRegularLTO().
489 LTO::RegularLTOState::RegularLTOState(unsigned ParallelCodeGenParallelismLevel,
495 LTO::ThinLTOState::ThinLTOState(ThinBackend Backend)
502 LTO::LTO(Config Conf, ThinBackend Backend,
509 LTO::~LTO() = default;
513 void LTO::addModuleToGlobalRes(ArrayRef<InputFile::Symbol> Syms,
590 Error LTO::add(std::unique_ptr<InputFile> Input,
609 Error LTO::addModule(InputFile &Input, unsigned ModI,
642 // Regular LTO module summaries are added to a dummy module that represents
643 // the combined regular LTO module.
655 // regular LTO modules, in case we are in a mixed-LTO mode (both regular
656 // and thin LTO modules) compilation. Since the regular LTO module will be
659 // in the regular LTO module without this cleanup.
680 // Add a regular LTO object to the link.
681 // The resulting module needs to be linked into the combined LTO module with
683 Expected<LTO::RegularLTOState::AddedModule>
684 LTO::addRegularLTO(BitcodeModule BM, ArrayRef<InputFile::Symbol> Syms,
716 // InputFile::create we omit some symbols that are irrelevant to LTO. The
800 Error LTO::linkRegularLTO(RegularLTOState::AddedModule Mod,
828 Error LTO::addThinLTO(BitcodeModule BM, ArrayRef<InputFile::Symbol> Syms,
875 unsigned LTO::getMaxTasks() const {
882 Error LTO::checkPartiallySplit() {
892 // merged regular LTO module IR.
896 "inconsistent LTO Unit splitting (recompile with -fsplit-lto-unit)",
912 "inconsistent LTO Unit splitting (recompile with -fsplit-lto-unit)",
919 Error LTO::run(AddStreamFn AddStream, NativeObjectCache Cache) {
954 // Finalize linking of regular LTO modules containing summaries now that
961 // Ensure we don't have inconsistently split LTO units with type tests.
975 Error LTO::runRegularLTO(AddStreamFn AddStream) {
1045 ArrayRef<const char*> LTO::getRuntimeLibcallSymbols() {
1282 Error LTO::runThinLTO(AddStreamFn AddStream, NativeObjectCache Cache,
1324 // performing IR-based WPD in hybrid regular/thin LTO mode).
1335 // we must apply DCE consistently with the full LTO module in order to avoid
1350 // Any functions referenced by the jump table in the regular LTO object must