diff options
author | Bill Wendling <isanbard@gmail.com> | 2007-02-08 01:35:27 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2007-02-08 01:35:27 +0000 |
commit | 3c4d37a531f874102d2614500b86abd78d0f1bab (patch) | |
tree | 7a26d8efdb3d15ed9509ee5e542965c09a808289 /llvm/lib | |
parent | 27361926d21add1d0ac7b81ebaebcb3243f93037 (diff) | |
download | bcm5719-llvm-3c4d37a531f874102d2614500b86abd78d0f1bab.tar.gz bcm5719-llvm-3c4d37a531f874102d2614500b86abd78d0f1bab.zip |
Add function to create a file writer.
llvm-svn: 34031
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/ELFWriter.cpp | 16 | ||||
-rw-r--r-- | llvm/lib/CodeGen/MachOWriter.cpp | 15 |
2 files changed, 28 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/ELFWriter.cpp b/llvm/lib/CodeGen/ELFWriter.cpp index 5b39ab0540a..5fd3dcc1d6c 100644 --- a/llvm/lib/CodeGen/ELFWriter.cpp +++ b/llvm/lib/CodeGen/ELFWriter.cpp @@ -31,18 +31,32 @@ // //===----------------------------------------------------------------------===// -#include "llvm/CodeGen/ELFWriter.h" +#include "ELFWriter.h" #include "llvm/Module.h" +#include "llvm/PassManager.h" +#include "llvm/CodeGen/FileWriters.h" #include "llvm/CodeGen/MachineCodeEmitter.h" #include "llvm/CodeGen/MachineConstantPool.h" +#include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/Target/TargetData.h" #include "llvm/Target/TargetELFWriterInfo.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Support/Mangler.h" #include "llvm/Support/OutputBuffer.h" #include "llvm/Support/Streams.h" +#include <list> using namespace llvm; +/// AddELFWriter - Concrete function to add the ELF writer to the function pass +/// manager. +MachineCodeEmitter *llvm::AddELFWriter(FunctionPassManager &FPM, + std::ostream &O, + TargetMachine &TM) { + ELFWriter *EW = new ELFWriter(O, TM); + FPM.add(EW); + return &EW->getMachineCodeEmitter(); +} + //===----------------------------------------------------------------------===// // ELFCodeEmitter Implementation //===----------------------------------------------------------------------===// diff --git a/llvm/lib/CodeGen/MachOWriter.cpp b/llvm/lib/CodeGen/MachOWriter.cpp index e6cfedab57f..3beb11a25f2 100644 --- a/llvm/lib/CodeGen/MachOWriter.cpp +++ b/llvm/lib/CodeGen/MachOWriter.cpp @@ -22,13 +22,15 @@ // //===----------------------------------------------------------------------===// +#include "MachOWriter.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" #include "llvm/Module.h" +#include "llvm/PassManager.h" +#include "llvm/CodeGen/FileWriters.h" #include "llvm/CodeGen/MachineCodeEmitter.h" #include "llvm/CodeGen/MachineConstantPool.h" #include "llvm/CodeGen/MachineJumpTableInfo.h" -#include "llvm/CodeGen/MachOWriter.h" #include "llvm/ExecutionEngine/ExecutionEngine.h" #include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/TargetJITInfo.h" @@ -37,9 +39,18 @@ #include "llvm/Support/OutputBuffer.h" #include "llvm/Support/Streams.h" #include <algorithm> - using namespace llvm; +/// AddMachOWriter - Concrete function to add the Mach-O writer to the function +/// pass manager. +MachineCodeEmitter *llvm::AddMachOWriter(FunctionPassManager &FPM, + std::ostream &O, + TargetMachine &TM) { + MachOWriter *MOW = new MachOWriter(O, TM); + FPM.add(MOW); + return &MOW->getMachineCodeEmitter(); +} + //===----------------------------------------------------------------------===// // MachOCodeEmitter Implementation //===----------------------------------------------------------------------===// |