From b7bdfd65acd07e1d4158049219a6b68178873983 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Mon, 13 Jan 2014 07:38:24 +0000 Subject: [PM] Wire up support for writing bitcode with new PM. This moves the old pass creation functionality to its own header and updates the callers of that routine. Then it adds a new PM supporting bitcode writer to the header file, and wires that up in the opt tool. A test is added that round-trips code into bitcode and back out using the new pass manager. llvm-svn: 199078 --- llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Bitcode/Writer') diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp index e5e76e29bd2..4757cacb4ca 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp @@ -1,4 +1,4 @@ -//===--- Bitcode/Writer/BitcodeWriterPass.cpp - Bitcode Writer ------------===// +//===- BitcodeWriterPass.cpp - Bitcode writing pass -----------------------===// // // The LLVM Compiler Infrastructure // @@ -11,10 +11,18 @@ // //===----------------------------------------------------------------------===// +#include "llvm/Bitcode/BitcodeWriterPass.h" #include "llvm/Bitcode/ReaderWriter.h" +#include "llvm/IR/Module.h" +#include "llvm/IR/PassManager.h" #include "llvm/Pass.h" using namespace llvm; +PreservedAnalyses BitcodeWriterPass::run(Module *M) { + WriteBitcodeToFile(M, OS); + return PreservedAnalyses::all(); +} + namespace { class WriteBitcodePass : public ModulePass { raw_ostream &OS; // raw_ostream to print on @@ -34,8 +42,6 @@ namespace { char WriteBitcodePass::ID = 0; -/// createBitcodeWriterPass - Create and return a pass that writes the module -/// to the specified ostream. ModulePass *llvm::createBitcodeWriterPass(raw_ostream &Str) { return new WriteBitcodePass(Str); } -- cgit v1.2.3