[LTO] Change addSaveTemps API: do not add dot to the supplied prefix path
authorMehdi Amini <mehdi.amini@apple.com>
Thu, 18 Aug 2016 00:12:33 +0000 (00:12 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Thu, 18 Aug 2016 00:12:33 +0000 (00:12 +0000)
Summary:
It does not play well with directories (end up with a bunch of hidden
files).
Also, do not strip the 0 suffix for the first task, especially since
0 can be used by ThinLTO as well now.

Reviewers: tejohnson

Subscribers: mehdi_amini, pcc, llvm-commits

Differential Revision: https://reviews.llvm.org/D23612

llvm-svn: 279014

llvm/lib/LTO/LTOBackend.cpp
llvm/test/LTO/Resolution/X86/alias.ll
llvm/test/LTO/Resolution/X86/comdat.ll
llvm/test/tools/gold/X86/opt-level.ll
llvm/tools/gold/gold-plugin.cpp
llvm/tools/llvm-lto2/llvm-lto2.cpp

index e80aa7b..ddd0a6d 100644 (file)
@@ -40,7 +40,7 @@ Error Config::addSaveTemps(std::string OutputFileName,
 
   std::error_code EC;
   ResolutionFile = llvm::make_unique<raw_fd_ostream>(
-      OutputFileName + ".resolution.txt", EC, sys::fs::OpenFlags::F_Text);
+      OutputFileName + "resolution.txt", EC, sys::fs::OpenFlags::F_Text);
   if (EC)
     return errorCodeToError(EC);
 
@@ -58,9 +58,7 @@ Error Config::addSaveTemps(std::string OutputFileName,
       // user hasn't requested using the input module's path, emit to a file
       // named from the provided OutputFileName with the Task ID appended.
       if (M.getModuleIdentifier() == "ld-temp.o" || !UseInputModulePath) {
-        PathPrefix = OutputFileName;
-        if (Task != 0)
-          PathPrefix += "." + utostr(Task);
+        PathPrefix = OutputFileName + utostr(Task);
       } else
         PathPrefix = M.getModuleIdentifier();
       std::string Path = PathPrefix + "." + PathSuffix + ".bc";
@@ -86,7 +84,7 @@ Error Config::addSaveTemps(std::string OutputFileName,
   setHook("5.precodegen", PreCodeGenModuleHook);
 
   CombinedIndexHook = [=](const ModuleSummaryIndex &Index) {
-    std::string Path = OutputFileName + ".index.bc";
+    std::string Path = OutputFileName + "index.bc";
     std::error_code EC;
     raw_fd_ostream OS(Path, EC, sys::fs::OpenFlags::F_None);
     if (EC) {
index bd3fcb3..2056112 100644 (file)
@@ -1,7 +1,7 @@
 ; RUN: llvm-as %s -o %t1.o
 ; RUN: llvm-as %p/Inputs/alias-1.ll -o %t2.o
 ; RUN: llvm-lto2 -o %t3.o %t2.o %t1.o -r %t2.o,a,px -r %t1.o,a, -r %t1.o,b,px -save-temps
-; RUN: llvm-dis < %t3.o.0.preopt.bc -o - | FileCheck %s
+; RUN: llvm-dis < %t3.o.0.0.preopt.bc -o - | FileCheck %s
 ; RUN: FileCheck --check-prefix=RES %s < %t3.o.resolution.txt
 
 ; CHECK-NOT: alias
index 29bdcc3..5124b95 100644 (file)
@@ -20,7 +20,7 @@
 ; RUN:  -r=%t2.o,a23,px \
 ; RUN:  -r=%t2.o,a24,px \
 ; RUN:  -r=%t2.o,a25,px
-; RUN: llvm-dis %t3.o.2.internalize.bc -o - | FileCheck %s
+; RUN: llvm-dis %t3.o.0.2.internalize.bc -o - | FileCheck %s
 
 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
 target triple = "x86_64-unknown-linux-gnu"
index a680a16..66935b4 100644 (file)
@@ -1,13 +1,13 @@
 ; RUN: llvm-as -o %t.bc %s
 ; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so -plugin-opt=save-temps \
 ; RUN:    -plugin-opt=O0 -r -o %t.o %t.bc
-; RUN: llvm-dis < %t.o.4.opt.bc -o - | FileCheck --check-prefix=CHECK-O0 %s
+; RUN: llvm-dis < %t.o.0.4.opt.bc -o - | FileCheck --check-prefix=CHECK-O0 %s
 ; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so -plugin-opt=save-temps \
 ; RUN:    -plugin-opt=O1 -r -o %t.o %t.bc
-; RUN: llvm-dis < %t.o.4.opt.bc -o - | FileCheck --check-prefix=CHECK-O1 %s
+; RUN: llvm-dis < %t.o.0.4.opt.bc -o - | FileCheck --check-prefix=CHECK-O1 %s
 ; RUN: %gold -plugin %llvmshlibdir/LLVMgold.so -plugin-opt=save-temps \
 ; RUN:    -plugin-opt=O2 -r -o %t.o %t.bc
-; RUN: llvm-dis < %t.o.4.opt.bc -o - | FileCheck --check-prefix=CHECK-O2 %s
+; RUN: llvm-dis < %t.o.0.4.opt.bc -o - | FileCheck --check-prefix=CHECK-O2 %s
 
 ; CHECK-O0: define internal void @foo(
 ; CHECK-O1: define internal void @foo(
index fd4107e..144a8eb 100644 (file)
@@ -796,7 +796,8 @@ static std::unique_ptr<LTO> createLTO() {
     break;
 
   case options::OT_SAVE_TEMPS:
-    check(Conf.addSaveTemps(output_name, /* UseInputModulePath */ true));
+    check(Conf.addSaveTemps(output_name + ".",
+                            /* UseInputModulePath */ true));
     break;
   }
 
index 626903b..e29185d 100644 (file)
@@ -132,7 +132,8 @@ int main(int argc, char **argv) {
   };
 
   if (SaveTemps)
-    check(Conf.addSaveTemps(OutputFilename), "Config::addSaveTemps failed");
+    check(Conf.addSaveTemps(OutputFilename + "."),
+          "Config::addSaveTemps failed");
 
   LTO Lto(std::move(Conf));