]> git.proxmox.com Git - rustc.git/blame - src/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / lib / Bitcode / Writer / BitcodeWriterPass.cpp
CommitLineData
1a4d82fc 1//===- BitcodeWriterPass.cpp - Bitcode writing pass -----------------------===//
223e47cc
LB
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// BitcodeWriterPass implementation.
11//
12//===----------------------------------------------------------------------===//
13
1a4d82fc 14#include "llvm/Bitcode/BitcodeWriterPass.h"
223e47cc 15#include "llvm/Bitcode/ReaderWriter.h"
1a4d82fc
JJ
16#include "llvm/IR/Module.h"
17#include "llvm/IR/PassManager.h"
223e47cc
LB
18#include "llvm/Pass.h"
19using namespace llvm;
20
85aaf69f
SL
21PreservedAnalyses BitcodeWriterPass::run(Module &M) {
22 WriteBitcodeToFile(&M, OS);
1a4d82fc
JJ
23 return PreservedAnalyses::all();
24}
25
223e47cc
LB
26namespace {
27 class WriteBitcodePass : public ModulePass {
28 raw_ostream &OS; // raw_ostream to print on
29 public:
30 static char ID; // Pass identification, replacement for typeid
31 explicit WriteBitcodePass(raw_ostream &o)
32 : ModulePass(ID), OS(o) {}
970d7e83 33
1a4d82fc 34 const char *getPassName() const override { return "Bitcode Writer"; }
970d7e83 35
1a4d82fc 36 bool runOnModule(Module &M) override {
223e47cc
LB
37 WriteBitcodeToFile(&M, OS);
38 return false;
39 }
40 };
41}
42
43char WriteBitcodePass::ID = 0;
44
223e47cc
LB
45ModulePass *llvm::createBitcodeWriterPass(raw_ostream &Str) {
46 return new WriteBitcodePass(Str);
47}