From eccffada338fe084676876138b2e5e183d708757 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Thu, 18 Aug 2016 00:12:33 +0000 Subject: [PATCH] [LTO] Change addSaveTemps API: do not add dot to the supplied prefix path 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 | 8 +++----- llvm/test/LTO/Resolution/X86/alias.ll | 2 +- llvm/test/LTO/Resolution/X86/comdat.ll | 2 +- llvm/test/tools/gold/X86/opt-level.ll | 6 +++--- llvm/tools/gold/gold-plugin.cpp | 3 ++- llvm/tools/llvm-lto2/llvm-lto2.cpp | 3 ++- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/llvm/lib/LTO/LTOBackend.cpp b/llvm/lib/LTO/LTOBackend.cpp index e80aa7b..ddd0a6d 100644 --- a/llvm/lib/LTO/LTOBackend.cpp +++ b/llvm/lib/LTO/LTOBackend.cpp @@ -40,7 +40,7 @@ Error Config::addSaveTemps(std::string OutputFileName, std::error_code EC; ResolutionFile = llvm::make_unique( - 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) { diff --git a/llvm/test/LTO/Resolution/X86/alias.ll b/llvm/test/LTO/Resolution/X86/alias.ll index bd3fcb3..2056112 100644 --- a/llvm/test/LTO/Resolution/X86/alias.ll +++ b/llvm/test/LTO/Resolution/X86/alias.ll @@ -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 diff --git a/llvm/test/LTO/Resolution/X86/comdat.ll b/llvm/test/LTO/Resolution/X86/comdat.ll index 29bdcc3..5124b95 100644 --- a/llvm/test/LTO/Resolution/X86/comdat.ll +++ b/llvm/test/LTO/Resolution/X86/comdat.ll @@ -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" diff --git a/llvm/test/tools/gold/X86/opt-level.ll b/llvm/test/tools/gold/X86/opt-level.ll index a680a16..66935b4 100644 --- a/llvm/test/tools/gold/X86/opt-level.ll +++ b/llvm/test/tools/gold/X86/opt-level.ll @@ -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( diff --git a/llvm/tools/gold/gold-plugin.cpp b/llvm/tools/gold/gold-plugin.cpp index fd4107e..144a8eb 100644 --- a/llvm/tools/gold/gold-plugin.cpp +++ b/llvm/tools/gold/gold-plugin.cpp @@ -796,7 +796,8 @@ static std::unique_ptr createLTO() { break; case options::OT_SAVE_TEMPS: - check(Conf.addSaveTemps(output_name, /* UseInputModulePath */ true)); + check(Conf.addSaveTemps(output_name + ".", + /* UseInputModulePath */ true)); break; } diff --git a/llvm/tools/llvm-lto2/llvm-lto2.cpp b/llvm/tools/llvm-lto2/llvm-lto2.cpp index 626903b..e29185d 100644 --- a/llvm/tools/llvm-lto2/llvm-lto2.cpp +++ b/llvm/tools/llvm-lto2/llvm-lto2.cpp @@ -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)); -- 2.7.4