From 09caa3751f3c53a8c8a7a81c2a60d6c8ddf5a980 Mon Sep 17 00:00:00 2001 From: Brian Gaeke Date: Fri, 30 Jan 2004 21:53:46 +0000 Subject: Give clients of MachineFunctionPrinter the ability to specify a banner and choose an ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11016 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/MachineFunction.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'lib/CodeGen/MachineFunction.cpp') diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp index fa77906332..e25fe8d588 100644 --- a/lib/CodeGen/MachineFunction.cpp +++ b/lib/CodeGen/MachineFunction.cpp @@ -34,6 +34,12 @@ static AnnotationID MF_AID( namespace { struct Printer : public MachineFunctionPass { + std::ostream *OS; + const std::string &Banner; + + Printer (std::ostream *_OS, const std::string &_Banner) : + OS (_OS), Banner (_Banner) { } + const char *getPassName() const { return "MachineFunction Printer"; } virtual void getAnalysisUsage(AnalysisUsage &AU) const { @@ -41,14 +47,19 @@ namespace { } bool runOnMachineFunction(MachineFunction &MF) { - MF.dump(); + (*OS) << Banner; + MF.print (*OS); return false; } }; } -FunctionPass *llvm::createMachineFunctionPrinterPass() { - return new Printer(); +/// Returns a newly-created MachineFunction Printer pass. The default output +/// stream is std::cerr; the default banner is empty. +/// +FunctionPass *llvm::createMachineFunctionPrinterPass(std::ostream *OS, + const std::string &Banner) { + return new Printer(OS, Banner); } namespace { -- cgit v1.2.3-18-g5258