[PATCH] D60924: [ThinLTO] Adding architecture name into saved object filename
Steven Wu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 29 14:38:46 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL359508: [ThinLTO] Adding architecture name into saved object filename (authored by steven_wu, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D60924?vs=195957&id=197193#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D60924/new/
https://reviews.llvm.org/D60924
Files:
llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp
llvm/trunk/test/ThinLTO/X86/save_objects.ll
Index: llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp
===================================================================
--- llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp
+++ llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp
@@ -815,11 +815,13 @@
/// Write out the generated object file, either from CacheEntryPath or from
/// OutputBuffer, preferring hard-link when possible.
/// Returns the path to the generated file in SavedObjectsDirectoryPath.
-static std::string writeGeneratedObject(int count, StringRef CacheEntryPath,
- StringRef SavedObjectsDirectoryPath,
- const MemoryBuffer &OutputBuffer) {
+std::string
+ThinLTOCodeGenerator::writeGeneratedObject(int count, StringRef CacheEntryPath,
+ const MemoryBuffer &OutputBuffer) {
+ auto ArchName = TMBuilder.TheTriple.getArchName();
SmallString<128> OutputPath(SavedObjectsDirectoryPath);
- llvm::sys::path::append(OutputPath, Twine(count) + ".thinlto.o");
+ llvm::sys::path::append(OutputPath,
+ Twine(count) + "." + ArchName + ".thinlto.o");
OutputPath.c_str(); // Ensure the string is null terminated.
if (sys::fs::exists(OutputPath))
sys::fs::remove(OutputPath);
@@ -882,8 +884,8 @@
if (SavedObjectsDirectoryPath.empty())
ProducedBinaries[count] = std::move(OutputBuffer);
else
- ProducedBinaryFiles[count] = writeGeneratedObject(
- count, "", SavedObjectsDirectoryPath, *OutputBuffer);
+ ProducedBinaryFiles[count] =
+ writeGeneratedObject(count, "", *OutputBuffer);
}, count++);
}
@@ -1006,8 +1008,7 @@
ProducedBinaries[count] = std::move(ErrOrBuffer.get());
else
ProducedBinaryFiles[count] = writeGeneratedObject(
- count, CacheEntryPath, SavedObjectsDirectoryPath,
- *ErrOrBuffer.get());
+ count, CacheEntryPath, *ErrOrBuffer.get());
return;
}
}
@@ -1064,7 +1065,7 @@
return;
}
ProducedBinaryFiles[count] = writeGeneratedObject(
- count, CacheEntryPath, SavedObjectsDirectoryPath, *OutputBuffer);
+ count, CacheEntryPath, *OutputBuffer);
}, IndexCount);
}
}
Index: llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
===================================================================
--- llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
+++ llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
@@ -287,6 +287,13 @@
*/
void optimize(Module &Module);
+ /**
+ * Write temporary object file to SavedObjectDirectoryPath, write symlink
+ * to Cache directory if needed. Returns the path to the generated file in
+ * SavedObjectsDirectoryPath.
+ */
+ std::string writeGeneratedObject(int count, StringRef CacheEntryPath,
+ const MemoryBuffer &OutputBuffer);
/**@}*/
private:
Index: llvm/trunk/test/ThinLTO/X86/save_objects.ll
===================================================================
--- llvm/trunk/test/ThinLTO/X86/save_objects.ll
+++ llvm/trunk/test/ThinLTO/X86/save_objects.ll
@@ -20,6 +20,9 @@
; RUN: ls %t.thin.out | count 2
; RUN: ls %t.cache | count 3
+; Check the name of object in directory has arch name included.
+; RUN: ls %t.thin.out | grep x86_64.thinlto.o | count 2
+
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.11.0"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D60924.197193.patch
Type: text/x-patch
Size: 3579 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190429/cfa2c344/attachment.bin>
More information about the llvm-commits
mailing list