diff options
author | Tobias Edler von Koch <tobias@codeaurora.org> | 2015-11-19 23:59:24 +0000 |
---|---|---|
committer | Tobias Edler von Koch <tobias@codeaurora.org> | 2015-11-19 23:59:24 +0000 |
commit | 4d45090659f669f91de8aef88f67d790d86a5fe0 (patch) | |
tree | b6f3f567baa56aaf1e2e7f1bb48fcb1500bdb653 /llvm/lib/LTO | |
parent | 8c3dbcab1d84d5590379ac3dafbd1765238db98f (diff) | |
download | bcm5719-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.cpp | 10 |
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; } |