summaryrefslogtreecommitdiffstats
path: root/llvm/lib/LTO
diff options
context:
space:
mode:
authorTobias Edler von Koch <tobias@codeaurora.org>2015-11-19 23:59:24 +0000
committerTobias Edler von Koch <tobias@codeaurora.org>2015-11-19 23:59:24 +0000
commit4d45090659f669f91de8aef88f67d790d86a5fe0 (patch)
treeb6f3f567baa56aaf1e2e7f1bb48fcb1500bdb653 /llvm/lib/LTO
parent8c3dbcab1d84d5590379ac3dafbd1765238db98f (diff)
downloadbcm5719-llvm-4d45090659f669f91de8aef88f67d790d86a5fe0.tar.gz
bcm5719-llvm-4d45090659f669f91de8aef88f67d790d86a5fe0.zip
[LTO] Add option to emit assembly from LTOCodeGenerator
This adds a new API, LTOCodeGenerator::setFileType, to choose the output file format for LTO CodeGen. A corresponding change to use this new API from llvm-lto and a test case is coming in a separate commit. Differential Revision: http://reviews.llvm.org/D14554 llvm-svn: 253622
Diffstat (limited to 'llvm/lib/LTO')
-rw-r--r--llvm/lib/LTO/LTOCodeGenerator.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp
index 1604769aba8..931bcf0d23f 100644
--- a/llvm/lib/LTO/LTOCodeGenerator.cpp
+++ b/llvm/lib/LTO/LTOCodeGenerator.cpp
@@ -206,11 +206,15 @@ bool LTOCodeGenerator::writeMergedModules(const char *Path) {
}
bool LTOCodeGenerator::compileOptimizedToFile(const char **Name) {
- // make unique temp .o file to put generated object file
+ // make unique temp output file to put generated code
SmallString<128> Filename;
int FD;
+
+ const char *Extension =
+ (FileType == TargetMachine::CGFT_AssemblyFile ? "s" : "o");
+
std::error_code EC =
- sys::fs::createTemporaryFile("lto-llvm", "o", FD, Filename);
+ sys::fs::createTemporaryFile("lto-llvm", Extension, FD, Filename);
if (EC) {
emitError(EC.message());
return false;
@@ -514,7 +518,7 @@ bool LTOCodeGenerator::compileOptimized(ArrayRef<raw_pwrite_stream *> Out) {
// MergedModule.
MergedModule =
splitCodeGen(std::move(MergedModule), Out, MCpu, FeatureStr, Options,
- RelocModel, CodeModel::Default, CGOptLevel);
+ RelocModel, CodeModel::Default, CGOptLevel, FileType);
return true;
}
OpenPOWER on IntegriCloud