mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-25 12:49:50 +00:00
[ThinLTO] Use semicolon to separate path prefix replacement
Summary: Colons can appear in Windows paths after drive letters. Both colon and semicolon are valid characters in filenames, but neither are very common. Semicolon seems just as good, and makes the test pass on Windows. Reviewers: tejohnson Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D20332 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269798 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0353bb1421
commit
4e35fa54a6
@ -1,6 +1,5 @@
|
||||
; Check that changing the output path via prefix-replace works
|
||||
; Use of '/' in paths created here make this unsuitable for Windows.
|
||||
; REQUIRES: shell
|
||||
; RUN: mkdir -p %T/oldpath
|
||||
; RUN: opt -module-summary %s -o %T/oldpath/prefix_replace.o
|
||||
; Ensure that there is no existing file at the new path, so we properly
|
||||
@ -8,7 +7,7 @@
|
||||
; RUN: rm -f %T/newpath/prefix_replace.o.thinlto.bc
|
||||
|
||||
; RUN: llvm-lto -thinlto-action=thinlink -o %t.index.bc %T/oldpath/prefix_replace.o
|
||||
; RUN: llvm-lto -thinlto-action=distributedindexes -thinlto-prefix-replace="%T/oldpath/:%T/newpath/" -thinlto-index %t.index.bc %T/oldpath/prefix_replace.o
|
||||
; RUN: llvm-lto -thinlto-action=distributedindexes -thinlto-prefix-replace="%T/oldpath/;%T/newpath/" -thinlto-index %t.index.bc %T/oldpath/prefix_replace.o
|
||||
|
||||
; RUN: ls %T/newpath/prefix_replace.o.thinlto.bc
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so \
|
||||
; RUN: --plugin-opt=thinlto \
|
||||
; RUN: --plugin-opt=thinlto-index-only \
|
||||
; RUN: --plugin-opt=thinlto-prefix-replace="%T/oldpath/:%T/newpath/" \
|
||||
; RUN: --plugin-opt=thinlto-prefix-replace="%T/oldpath/;%T/newpath/" \
|
||||
; RUN: -shared %T/oldpath/thinlto_prefix_replace.o -o %T/thinlto_prefix_replace
|
||||
; RUN: ls %T/newpath/thinlto_prefix_replace.o.thinlto.bc
|
||||
|
||||
|
@ -234,8 +234,8 @@ namespace options {
|
||||
thinlto_emit_imports_files = true;
|
||||
} else if (opt.startswith("thinlto-prefix-replace=")) {
|
||||
thinlto_prefix_replace = opt.substr(strlen("thinlto-prefix-replace="));
|
||||
if (thinlto_prefix_replace.find(":") == std::string::npos)
|
||||
message(LDPL_FATAL, "thinlto-prefix-replace expects 'old:new' format");
|
||||
if (thinlto_prefix_replace.find(";") == std::string::npos)
|
||||
message(LDPL_FATAL, "thinlto-prefix-replace expects 'old;new' format");
|
||||
} else if (opt.size() == 2 && opt[0] == 'O') {
|
||||
if (opt[1] < '0' || opt[1] > '3')
|
||||
message(LDPL_FATAL, "Optimization level must be between 0 and 3");
|
||||
@ -1219,8 +1219,8 @@ static void thinLTOBackends(raw_fd_ostream *ApiFile,
|
||||
static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,
|
||||
std::string &NewPrefix) {
|
||||
StringRef PrefixReplace = options::thinlto_prefix_replace;
|
||||
assert(PrefixReplace.empty() || PrefixReplace.find(":") != StringRef::npos);
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(":");
|
||||
assert(PrefixReplace.empty() || PrefixReplace.find(";") != StringRef::npos);
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(";");
|
||||
OldPrefix = Split.first.str();
|
||||
NewPrefix = Split.second.str();
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ static cl::opt<std::string>
|
||||
static cl::opt<std::string> ThinLTOPrefixReplace(
|
||||
"thinlto-prefix-replace",
|
||||
cl::desc("Control where files for distributed backends are "
|
||||
"created. Expects 'oldprefix:newprefix' and if path "
|
||||
"created. Expects 'oldprefix;newprefix' and if path "
|
||||
"prefix of output file is oldprefix it will be "
|
||||
"replaced with newprefix."));
|
||||
|
||||
@ -307,9 +307,9 @@ static void createCombinedModuleSummaryIndex() {
|
||||
static void getThinLTOOldAndNewPrefix(std::string &OldPrefix,
|
||||
std::string &NewPrefix) {
|
||||
assert(ThinLTOPrefixReplace.empty() ||
|
||||
ThinLTOPrefixReplace.find(":") != StringRef::npos);
|
||||
ThinLTOPrefixReplace.find(";") != StringRef::npos);
|
||||
StringRef PrefixReplace = ThinLTOPrefixReplace;
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(":");
|
||||
std::pair<StringRef, StringRef> Split = PrefixReplace.split(";");
|
||||
OldPrefix = Split.first.str();
|
||||
NewPrefix = Split.second.str();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user