LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BitcodeWriterPass.cpp
Go to the documentation of this file.
1 //===--- Bitcode/Writer/BitcodeWriterPass.cpp - Bitcode Writer ------------===//
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 
15 #include "llvm/Pass.h"
16 using namespace llvm;
17 
18 namespace {
19  class WriteBitcodePass : public ModulePass {
20  raw_ostream &OS; // raw_ostream to print on
21  public:
22  static char ID; // Pass identification, replacement for typeid
23  explicit WriteBitcodePass(raw_ostream &o)
24  : ModulePass(ID), OS(o) {}
25 
26  const char *getPassName() const { return "Bitcode Writer"; }
27 
28  bool runOnModule(Module &M) {
29  WriteBitcodeToFile(&M, OS);
30  return false;
31  }
32  };
33 }
34 
35 char WriteBitcodePass::ID = 0;
36 
37 /// createBitcodeWriterPass - Create and return a pass that writes the module
38 /// to the specified ostream.
40  return new WriteBitcodePass(Str);
41 }
The main container class for the LLVM Intermediate Representation.
Definition: Module.h:112
ID
LLVM Calling Convention Representation.
Definition: CallingConv.h:26
ModulePass * createBitcodeWriterPass(raw_ostream &Str)
void WriteBitcodeToFile(const Module *M, raw_ostream &Out)