BitcodeWriterPass.cpp revision 276479
1164640Sflz//===- BitcodeWriterPass.cpp - Bitcode writing pass -----------------------===//
298186Sgordon//
378344Sobrien//                     The LLVM Compiler Infrastructure
4157473Sflz//
578344Sobrien// This file is distributed under the University of Illinois Open Source
678344Sobrien// License. See LICENSE.TXT for details.
778344Sobrien//
878344Sobrien//===----------------------------------------------------------------------===//
978344Sobrien//
1078344Sobrien// BitcodeWriterPass implementation.
1178344Sobrien//
1278344Sobrien//===----------------------------------------------------------------------===//
1378344Sobrien
1478344Sobrien#include "llvm/Bitcode/BitcodeWriterPass.h"
1578344Sobrien#include "llvm/Bitcode/ReaderWriter.h"
1678344Sobrien#include "llvm/IR/Module.h"
1778344Sobrien#include "llvm/IR/PassManager.h"
1878344Sobrien#include "llvm/Pass.h"
1978344Sobrienusing namespace llvm;
2078344Sobrien
2178344SobrienPreservedAnalyses BitcodeWriterPass::run(Module *M) {
2278344Sobrien  WriteBitcodeToFile(M, OS);
2378344Sobrien  return PreservedAnalyses::all();
2478344Sobrien}
2578344Sobrien
2678344Sobriennamespace {
2778344Sobrien  class WriteBitcodePass : public ModulePass {
2878344Sobrien    raw_ostream &OS; // raw_ostream to print on
2978344Sobrien  public:
3078344Sobrien    static char ID; // Pass identification, replacement for typeid
3178344Sobrien    explicit WriteBitcodePass(raw_ostream &o)
3278344Sobrien      : ModulePass(ID), OS(o) {}
3378344Sobrien
3478344Sobrien    const char *getPassName() const override { return "Bitcode Writer"; }
35169668Smtm
36157473Sflz    bool runOnModule(Module &M) override {
3778344Sobrien      WriteBitcodeToFile(&M, OS);
3898186Sgordon      return false;
3998186Sgordon    }
4098186Sgordon  };
41131550Scperciva}
42131550Scperciva
43131550Scpercivachar WriteBitcodePass::ID = 0;
44131550Scperciva
4598186SgordonModulePass *llvm::createBitcodeWriterPass(raw_ostream &Str) {
4698186Sgordon  return new WriteBitcodePass(Str);
47202988Semaste}
48124832Smtm