summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/llvm-as/llvm-as.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/llvm-as/llvm-as.cpp b/tools/llvm-as/llvm-as.cpp
index e3dbfb46be..a7463b532e 100644
--- a/tools/llvm-as/llvm-as.cpp
+++ b/tools/llvm-as/llvm-as.cpp
@@ -19,6 +19,7 @@
#include "llvm/Assembly/Parser.h"
#include "llvm/Bytecode/Writer.h"
#include "llvm/Analysis/Verifier.h"
+#include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/Streams.h"
@@ -50,6 +51,10 @@ static cl::opt<bool>
DisableVerify("disable-verify", cl::Hidden,
cl::desc("Do not run verifier on input LLVM (dangerous!)"));
+static cl::opt<bool>
+EnableBitcode("bitcode", cl::desc("Emit bitcode"));
+
+
int main(int argc, char **argv) {
llvm_shutdown_obj X; // Call llvm_shutdown() on exit.
cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n");
@@ -130,8 +135,12 @@ int main(int argc, char **argv) {
}
if (Force || !CheckBytecodeOutputToConsole(Out,true)) {
- OStream L(*Out);
- WriteBytecodeToFile(M.get(), L, !NoCompress);
+ if (EnableBitcode) {
+ WriteBitcodeToFile(M.get(), *Out);
+ } else {
+ OStream L(*Out);
+ WriteBytecodeToFile(M.get(), L, !NoCompress);
+ }
}
} catch (const std::string& msg) {
cerr << argv[0] << ": " << msg << "\n";