Implemented -quiet feature for analyze
authorRobert Bocchino <bocchino@illinois.edu>
Fri, 3 Mar 2006 02:12:04 +0000 (02:12 +0000)
committerRobert Bocchino <bocchino@illinois.edu>
Fri, 3 Mar 2006 02:12:04 +0000 (02:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26494 91177308-0d34-0410-b5e6-96231b3b80d8

tools/analyze/analyze.cpp

index 95e205912dd66c9f829df705cc47930c339073ec..71ae65793c4ee7d29dc04eb04311a1d4746d42bb 100644 (file)
 
 using namespace llvm;
 
+namespace {
+  cl::opt<std::string>
+  InputFilename(cl::Positional, cl::desc("<input file>"), cl::init("-"),
+                cl::value_desc("filename"));
+
+  cl::opt<bool> Quiet("q", cl::desc("Don't print analysis pass names"));
+  cl::alias    QuietA("quiet", cl::desc("Alias for -q"),
+                      cl::aliasopt(Quiet));
+
+  cl::opt<bool> NoVerify("disable-verify", cl::Hidden,
+                         cl::desc("Do not verify input module"));
+
+  // The AnalysesList is automatically populated with registered Passes by the
+  // PassNameParser.
+  //
+  cl::list<const PassInfo*, bool, FilteredPassNameParser<PassInfo::Analysis> >
+  AnalysesList(cl::desc("Analyses available:"));
+
+  Timer BytecodeLoadTimer("Bytecode Loader");
+}
+
 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<Pass>(PassToPrint).print(std::cout, &M);
+    if (!Quiet) {
+      std::cout << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
+      getAnalysisID<Pass>(PassToPrint).print(std::cout, &M);
+    }
 
     // Get and print pass...
     return false;
@@ -56,11 +79,12 @@ struct FunctionPassPrinter : public FunctionPass {
   FunctionPassPrinter(const PassInfo *PI) : PassToPrint(PI) {}
 
   virtual bool runOnFunction(Function &F) {
-    std::cout << "Printing analysis '" << PassToPrint->getPassName()
-              << "' for function '" << F.getName() << "':\n";
-    getAnalysisID<Pass>(PassToPrint).print(std::cout, F.getParent());
-
+    if (!Quiet) {
+      std::cout << "Printing analysis '" << PassToPrint->getPassName()
+               << "' for function '" << F.getName() << "':\n";
+    }
     // Get and print pass...
+    getAnalysisID<Pass>(PassToPrint).print(std::cout, F.getParent());
     return false;
   }
 
@@ -77,11 +101,13 @@ struct BasicBlockPassPrinter : public BasicBlockPass {
   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<Pass>(PassToPrint).print(std::cout, BB.getParent()->getParent());
+    if (!Quiet) {
+      std::cout << "Printing Analysis info for BasicBlock '" << BB.getName()
+               << "': Pass " << PassToPrint->getPassName() << ":\n";
+    }
 
     // Get and print pass...
+    getAnalysisID<Pass>(PassToPrint).print(std::cout, BB.getParent()->getParent());
     return false;
   }
 
@@ -95,27 +121,6 @@ struct BasicBlockPassPrinter : public BasicBlockPass {
 
 
 
-namespace {
-  cl::opt<std::string>
-  InputFilename(cl::Positional, cl::desc("<input file>"), cl::init("-"),
-                cl::value_desc("filename"));
-
-  cl::opt<bool> Quiet("q", cl::desc("Don't print analysis pass names"));
-  cl::alias    QuietA("quiet", cl::desc("Alias for -q"),
-                      cl::aliasopt(Quiet));
-
-  cl::opt<bool> NoVerify("disable-verify", cl::Hidden,
-                         cl::desc("Do not verify input module"));
-
-  // The AnalysesList is automatically populated with registered Passes by the
-  // PassNameParser.
-  //
-  cl::list<const PassInfo*, bool, FilteredPassNameParser<PassInfo::Analysis> >
-  AnalysesList(cl::desc("Analyses available:"));
-
-  Timer BytecodeLoadTimer("Bytecode Loader");
-}
-
 int main(int argc, char **argv) {
   try {
     cl::ParseCommandLineOptions(argc, argv, " llvm analysis printer tool\n");