diff options
author | Kyungwoo Lee <kyulee@meta.com> | 2024-10-03 09:58:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-03 09:58:01 -0700 |
commit | c1959813d6a650de7626ef9b7a7313369277f49e (patch) | |
tree | 1661effa6a855c8d55fb8f0a2e596ee0b9d97152 /llvm/lib/LTO/LTOBackend.cpp | |
parent | a72248cb65a74aff3cc5aef8d2807fc7efb4fb75 (diff) | |
download | llvm-c1959813d6a650de7626ef9b7a7313369277f49e.zip llvm-c1959813d6a650de7626ef9b7a7313369277f49e.tar.gz llvm-c1959813d6a650de7626ef9b7a7313369277f49e.tar.bz2 |
[CGData][ThinLTO][NFC] Prep for two-codegen rounds (#90934)
This is NFC for https://github.com/llvm/llvm-project/pull/90933.
- Create a lambda function, `RunBackends`, to group the backend
operations into a single function.
- Explicitly pass the `CodeGenOnly` argument to thinBackend, instead of
depending on a configuration value.
Depends on https://github.com/llvm/llvm-project/pull/90304.
This is a patch for
https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753.
Diffstat (limited to 'llvm/lib/LTO/LTOBackend.cpp')
-rw-r--r-- | llvm/lib/LTO/LTOBackend.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp index 4e58cd3..06eeed3 100644 --- a/llvm/lib/LTO/LTOBackend.cpp +++ b/llvm/lib/LTO/LTOBackend.cpp @@ -565,7 +565,7 @@ Error lto::thinBackend(const Config &Conf, unsigned Task, AddStreamFn AddStream, const FunctionImporter::ImportMapTy &ImportList, const GVSummaryMapTy &DefinedGlobals, MapVector<StringRef, BitcodeModule> *ModuleMap, - const std::vector<uint8_t> &CmdArgs) { + bool CodeGenOnly, const std::vector<uint8_t> &CmdArgs) { Expected<const Target *> TOrErr = initAndLookupTarget(Conf, Mod); if (!TOrErr) return TOrErr.takeError(); @@ -586,7 +586,9 @@ Error lto::thinBackend(const Config &Conf, unsigned Task, AddStreamFn AddStream, Mod.setPartialSampleProfileRatio(CombinedIndex); LLVM_DEBUG(dbgs() << "Running ThinLTO\n"); - if (Conf.CodeGenOnly) { + if (CodeGenOnly) { + // If CodeGenOnly is set, we only perform code generation and skip + // optimization. This value may differ from Conf.CodeGenOnly. codegen(Conf, TM.get(), AddStream, Task, Mod, CombinedIndex); return finalizeOptimizationRemarks(std::move(DiagnosticOutputFile)); } |