From 253242390ce54200a4c547dbb6c5f6e07c5cc6ec Mon Sep 17 00:00:00 2001 From: Haitao Li Date: Tue, 8 Nov 2011 12:37:42 +0800 Subject: [PATCH] Use ".ll" as default suffix of LLVM assembly file This commit is a follow up of Issue #1147. Althought there are some inconsistency about this naming convention in LLVM. For example, `clang' write LLVM assembly to a file with ".s" suffix, while both `llvm-dis' and `opt' write to files with ".ll" suffices. We think ".ll" makes more sense. Also rustc manual page is updated. --- man/rustc.1 | 7 +++++-- src/comp/driver/rustc.rs | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/man/rustc.1 b/man/rustc.1 index 68c3e01cb21..58109cd1e9e 100644 --- a/man/rustc.1 +++ b/man/rustc.1 @@ -25,7 +25,8 @@ output filename for \fBfoo.rs\fR is otherwise \fBfoo\fR plus any platform-specific extension (when compiling a binary), a platform-specific name, e.g. \fBlibfoo.so\fR (when compiling a library), \fBfoo.o\fR (when using \fB-c\fR), \fBfoo.s\fR (when using -\fB-S\fR) or \fBfoo.bc\fR (when using \fB--emit-llvm\fR), and +\fB-S\fR) or \fBfoo.bc\fR (when using \fB--emit-llvm\fR), and \fBfoo.ll\fR +(when using both \fB-S\fR and \fB--emit-llvm\fR). .TP \fB--lib\fR: Compile and link a library crate into a shared object. @@ -82,7 +83,9 @@ Compile to assembly, but do not assemble or link. Compile and assemble, but do not link. .TP \fB--emit-llvm\fR: -Generate llvm bitcode. +Generate output files in LLVM format. When used with \fB-S\fR this generate LLVM +intermediate language assembly files, otherwise this generates LLVM bitcode +format object files. .TP \fB--save-temps\fR: For foo.rs, save generated bitcode before optimization to diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index 3787baffc82..ec715593ce7 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -477,7 +477,7 @@ fn build_output_filenames(ifile: str, ofile: option::t, link::output_type_none. { "none" } link::output_type_bitcode. { "bc" } link::output_type_assembly. { "s" } - link::output_type_llvm_assembly. { "s" } + link::output_type_llvm_assembly. { "ll" } // Object and exe output both use the '.o' extension here link::output_type_object. | link::output_type_exe. { "o"