[lld] 71cb689 - [LTO] Change getThinLTOOutputFile to take StringRef
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 26 20:43:16 PDT 2023
Author: Fangrui Song
Date: 2023-04-26T20:43:11-07:00
New Revision: 71cb689661ab107986a3773571ab9985d6c47114
URL: https://github.com/llvm/llvm-project/commit/71cb689661ab107986a3773571ab9985d6c47114
DIFF: https://github.com/llvm/llvm-project/commit/71cb689661ab107986a3773571ab9985d6c47114.diff
LOG: [LTO] Change getThinLTOOutputFile to take StringRef
Added:
Modified:
lld/COFF/LTO.cpp
lld/ELF/LTO.cpp
lld/MachO/LTO.cpp
llvm/include/llvm/LTO/LTO.h
llvm/lib/LTO/LTO.cpp
llvm/tools/llvm-lto/llvm-lto.cpp
Removed:
################################################################################
diff --git a/lld/COFF/LTO.cpp b/lld/COFF/LTO.cpp
index fb3ba2c6e9d78..cca14be0fc2b4 100644
--- a/lld/COFF/LTO.cpp
+++ b/lld/COFF/LTO.cpp
@@ -55,9 +55,8 @@ static std::unique_ptr<raw_fd_ostream> openFile(StringRef file) {
}
std::string BitcodeCompiler::getThinLTOOutputFile(StringRef path) {
- return lto::getThinLTOOutputFile(
- std::string(path), std::string(ctx.config.thinLTOPrefixReplaceOld),
- std::string(ctx.config.thinLTOPrefixReplaceNew));
+ return lto::getThinLTOOutputFile(path, ctx.config.thinLTOPrefixReplaceOld,
+ ctx.config.thinLTOPrefixReplaceNew);
}
lto::Config BitcodeCompiler::createConfig() {
diff --git a/lld/ELF/LTO.cpp b/lld/ELF/LTO.cpp
index 8b5c23ee6a476..f16abc188b76f 100644
--- a/lld/ELF/LTO.cpp
+++ b/lld/ELF/LTO.cpp
@@ -67,9 +67,8 @@ static std::unique_ptr<raw_fd_ostream> openLTOOutputFile(StringRef file) {
}
static std::string getThinLTOOutputFile(StringRef modulePath) {
- return lto::getThinLTOOutputFile(
- std::string(modulePath), std::string(config->thinLTOPrefixReplaceOld),
- std::string(config->thinLTOPrefixReplaceNew));
+ return lto::getThinLTOOutputFile(modulePath, config->thinLTOPrefixReplaceOld,
+ config->thinLTOPrefixReplaceNew);
}
static lto::Config createConfig() {
diff --git a/lld/MachO/LTO.cpp b/lld/MachO/LTO.cpp
index 481ac9444ef07..a2d3934c5bced 100644
--- a/lld/MachO/LTO.cpp
+++ b/lld/MachO/LTO.cpp
@@ -46,9 +46,8 @@ static std::unique_ptr<raw_fd_ostream> openFile(StringRef file) {
}
static std::string getThinLTOOutputFile(StringRef modulePath) {
- return lto::getThinLTOOutputFile(
- std::string(modulePath), std::string(config->thinLTOPrefixReplaceOld),
- std::string(config->thinLTOPrefixReplaceNew));
+ return lto::getThinLTOOutputFile(modulePath, config->thinLTOPrefixReplaceOld,
+ config->thinLTOPrefixReplaceNew);
}
static lto::Config createConfig() {
diff --git a/llvm/include/llvm/LTO/LTO.h b/llvm/include/llvm/LTO/LTO.h
index 97ab7c4a09536..dabc367c80c88 100644
--- a/llvm/include/llvm/LTO/LTO.h
+++ b/llvm/include/llvm/LTO/LTO.h
@@ -78,9 +78,8 @@ namespace lto {
/// Given the original \p Path to an output file, replace any path
/// prefix matching \p OldPrefix with \p NewPrefix. Also, create the
/// resulting directory if it does not yet exist.
-std::string getThinLTOOutputFile(const std::string &Path,
- const std::string &OldPrefix,
- const std::string &NewPrefix);
+std::string getThinLTOOutputFile(StringRef Path, StringRef OldPrefix,
+ StringRef NewPrefix);
/// Setup optimization remarks.
Expected<std::unique_ptr<ToolOutputFile>> setupLLVMOptimizationRemarks(
diff --git a/llvm/lib/LTO/LTO.cpp b/llvm/lib/LTO/LTO.cpp
index 15b6e22a683c1..fee09fcd76bdb 100644
--- a/llvm/lib/LTO/LTO.cpp
+++ b/llvm/lib/LTO/LTO.cpp
@@ -1404,11 +1404,10 @@ ThinBackend lto::createInProcessThinBackend(ThreadPoolStrategy Parallelism,
// Given the original \p Path to an output file, replace any path
// prefix matching \p OldPrefix with \p NewPrefix. Also, create the
// resulting directory if it does not yet exist.
-std::string lto::getThinLTOOutputFile(const std::string &Path,
- const std::string &OldPrefix,
- const std::string &NewPrefix) {
+std::string lto::getThinLTOOutputFile(StringRef Path, StringRef OldPrefix,
+ StringRef NewPrefix) {
if (OldPrefix.empty() && NewPrefix.empty())
- return Path;
+ return std::string(Path);
SmallString<128> NewPath(Path);
llvm::sys::path::replace_path_prefix(NewPath, OldPrefix, NewPrefix);
StringRef ParentPath = llvm::sys::path::parent_path(NewPath.str());
@@ -1447,13 +1446,13 @@ class WriteIndexesThinBackend : public ThinBackendProc {
MapVector<StringRef, BitcodeModule> &ModuleMap) override {
StringRef ModulePath = BM.getModuleIdentifier();
std::string NewModulePath =
- getThinLTOOutputFile(std::string(ModulePath), OldPrefix, NewPrefix);
+ getThinLTOOutputFile(ModulePath, OldPrefix, NewPrefix);
if (LinkedObjectsFile) {
std::string ObjectPrefix =
NativeObjectPrefix.empty() ? NewPrefix : NativeObjectPrefix;
- std::string LinkedObjectsFilePath = getThinLTOOutputFile(
- std::string(ModulePath), OldPrefix, ObjectPrefix);
+ std::string LinkedObjectsFilePath =
+ getThinLTOOutputFile(ModulePath, OldPrefix, ObjectPrefix);
*LinkedObjectsFile << LinkedObjectsFilePath << '\n';
}
diff --git a/llvm/tools/llvm-lto/llvm-lto.cpp b/llvm/tools/llvm-lto/llvm-lto.cpp
index 79e9d93061a21..51921d44d748d 100644
--- a/llvm/tools/llvm-lto/llvm-lto.cpp
+++ b/llvm/tools/llvm-lto/llvm-lto.cpp
@@ -516,11 +516,10 @@ static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,
/// Given the original \p Path to an output file, replace any path
/// prefix matching \p OldPrefix with \p NewPrefix. Also, create the
/// resulting directory if it does not yet exist.
-static std::string getThinLTOOutputFile(const std::string &Path,
- const std::string &OldPrefix,
- const std::string &NewPrefix) {
+static std::string getThinLTOOutputFile(StringRef Path, StringRef OldPrefix,
+ StringRef NewPrefix) {
if (OldPrefix.empty() && NewPrefix.empty())
- return Path;
+ return std::string(Path);
SmallString<128> NewPath(Path);
llvm::sys::path::replace_path_prefix(NewPath, OldPrefix, NewPrefix);
StringRef ParentPath = llvm::sys::path::parent_path(NewPath.str());
More information about the llvm-commits
mailing list