[llvm] r269798 - [ThinLTO] Use semicolon to separate path prefix replacement

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Tue May 17 11:43:23 PDT 2016


Author: rnk
Date: Tue May 17 13:43:22 2016
New Revision: 269798

URL: http://llvm.org/viewvc/llvm-project?rev=269798&view=rev
Log:
[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

Modified:
    llvm/trunk/test/ThinLTO/X86/prefix_replace.ll
    llvm/trunk/test/tools/gold/X86/thinlto_prefix_replace.ll
    llvm/trunk/tools/gold/gold-plugin.cpp
    llvm/trunk/tools/llvm-lto/llvm-lto.cpp

Modified: llvm/trunk/test/ThinLTO/X86/prefix_replace.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/ThinLTO/X86/prefix_replace.ll?rev=269798&r1=269797&r2=269798&view=diff
==============================================================================
--- llvm/trunk/test/ThinLTO/X86/prefix_replace.ll (original)
+++ llvm/trunk/test/ThinLTO/X86/prefix_replace.ll Tue May 17 13:43:22 2016
@@ -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
 

Modified: llvm/trunk/test/tools/gold/X86/thinlto_prefix_replace.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/gold/X86/thinlto_prefix_replace.ll?rev=269798&r1=269797&r2=269798&view=diff
==============================================================================
--- llvm/trunk/test/tools/gold/X86/thinlto_prefix_replace.ll (original)
+++ llvm/trunk/test/tools/gold/X86/thinlto_prefix_replace.ll Tue May 17 13:43:22 2016
@@ -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
 

Modified: llvm/trunk/tools/gold/gold-plugin.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/gold/gold-plugin.cpp?rev=269798&r1=269797&r2=269798&view=diff
==============================================================================
--- llvm/trunk/tools/gold/gold-plugin.cpp (original)
+++ llvm/trunk/tools/gold/gold-plugin.cpp Tue May 17 13:43:22 2016
@@ -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_ostre
 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();
 }

Modified: llvm/trunk/tools/llvm-lto/llvm-lto.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-lto/llvm-lto.cpp?rev=269798&r1=269797&r2=269798&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-lto/llvm-lto.cpp (original)
+++ llvm/trunk/tools/llvm-lto/llvm-lto.cpp Tue May 17 13:43:22 2016
@@ -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 createCombinedModuleSummaryI
 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();
 }




More information about the llvm-commits mailing list