From 86d064d44caf81e03b4233863747aebb3d0fba9a Mon Sep 17 00:00:00 2001 From: Robert Bocchino Date: Fri, 3 Mar 2006 02:12:04 +0000 Subject: [PATCH] Implemented -quiet feature for analyze git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26494 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/analyze/analyze.cpp | 133 ++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 64 deletions(-) diff --git a/tools/analyze/analyze.cpp b/tools/analyze/analyze.cpp index 95e205912dd..71ae65793c4 100644 --- a/tools/analyze/analyze.cpp +++ b/tools/analyze/analyze.cpp @@ -31,70 +31,6 @@ using namespace llvm; -struct ModulePassPrinter : public ModulePass { - const PassInfo *PassToPrint; - ModulePassPrinter(const PassInfo *PI) : PassToPrint(PI) {} - - virtual bool runOnModule(Module &M) { - std::cout << "Printing analysis '" << PassToPrint->getPassName() << "':\n"; - getAnalysisID(PassToPrint).print(std::cout, &M); - - // Get and print pass... - return false; - } - - virtual const char *getPassName() const { return "'Pass' Printer"; } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequiredID(PassToPrint); - AU.setPreservesAll(); - } -}; - -struct FunctionPassPrinter : public FunctionPass { - const PassInfo *PassToPrint; - FunctionPassPrinter(const PassInfo *PI) : PassToPrint(PI) {} - - virtual bool runOnFunction(Function &F) { - std::cout << "Printing analysis '" << PassToPrint->getPassName() - << "' for function '" << F.getName() << "':\n"; - getAnalysisID(PassToPrint).print(std::cout, F.getParent()); - - // Get and print pass... - return false; - } - - virtual const char *getPassName() const { return "FunctionPass Printer"; } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequiredID(PassToPrint); - AU.setPreservesAll(); - } -}; - -struct BasicBlockPassPrinter : public BasicBlockPass { - const PassInfo *PassToPrint; - BasicBlockPassPrinter(const PassInfo *PI) : PassToPrint(PI) {} - - virtual bool runOnBasicBlock(BasicBlock &BB) { - std::cout << "Printing Analysis info for BasicBlock '" << BB.getName() - << "': Pass " << PassToPrint->getPassName() << ":\n"; - getAnalysisID(PassToPrint).print(std::cout, BB.getParent()->getParent()); - - // Get and print pass... - return false; - } - - virtual const char *getPassName() const { return "BasicBlockPass Printer"; } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequiredID(PassToPrint); - AU.setPreservesAll(); - } -}; - - - namespace { cl::opt InputFilename(cl::Positional, cl::desc(""), cl::init("-"), @@ -116,6 +52,75 @@ namespace { Timer BytecodeLoadTimer("Bytecode Loader"); } +struct ModulePassPrinter : public ModulePass { + const PassInfo *PassToPrint; + ModulePassPrinter(const PassInfo *PI) : PassToPrint(PI) {} + + virtual bool runOnModule(Module &M) { + if (!Quiet) { + std::cout << "Printing analysis '" << PassToPrint->getPassName() << "':\n"; + getAnalysisID(PassToPrint).print(std::cout, &M); + } + + // Get and print pass... + return false; + } + + virtual const char *getPassName() const { return "'Pass' Printer"; } + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.addRequiredID(PassToPrint); + AU.setPreservesAll(); + } +}; + +struct FunctionPassPrinter : public FunctionPass { + const PassInfo *PassToPrint; + FunctionPassPrinter(const PassInfo *PI) : PassToPrint(PI) {} + + virtual bool runOnFunction(Function &F) { + if (!Quiet) { + std::cout << "Printing analysis '" << PassToPrint->getPassName() + << "' for function '" << F.getName() << "':\n"; + } + // Get and print pass... + getAnalysisID(PassToPrint).print(std::cout, F.getParent()); + return false; + } + + virtual const char *getPassName() const { return "FunctionPass Printer"; } + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.addRequiredID(PassToPrint); + AU.setPreservesAll(); + } +}; + +struct BasicBlockPassPrinter : public BasicBlockPass { + const PassInfo *PassToPrint; + BasicBlockPassPrinter(const PassInfo *PI) : PassToPrint(PI) {} + + virtual bool runOnBasicBlock(BasicBlock &BB) { + if (!Quiet) { + std::cout << "Printing Analysis info for BasicBlock '" << BB.getName() + << "': Pass " << PassToPrint->getPassName() << ":\n"; + } + + // Get and print pass... + getAnalysisID(PassToPrint).print(std::cout, BB.getParent()->getParent()); + return false; + } + + virtual const char *getPassName() const { return "BasicBlockPass Printer"; } + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.addRequiredID(PassToPrint); + AU.setPreservesAll(); + } +}; + + + int main(int argc, char **argv) { try { cl::ParseCommandLineOptions(argc, argv, " llvm analysis printer tool\n");