summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-09-23 12:47:39 +0000
committerDuncan Sands <baldrick@free.fr>2008-09-23 12:47:39 +0000
commit3ee8fc964952a65bcb3668b85938c46f90631e42 (patch)
tree9789cfd5d13ff14c8fc68588f8fb089e5c4d2b41
parent1de42e8374c1479dc30ae043c2ee87bd1d895afe (diff)
downloadllvm-3ee8fc964952a65bcb3668b85938c46f90631e42.tar.gz
llvm-3ee8fc964952a65bcb3668b85938c46f90631e42.tar.bz2
llvm-3ee8fc964952a65bcb3668b85938c46f90631e42.tar.xz
Rationalize the names of passes that print information:
-callgraph => print-callgraph -callscc => print-callgraph-sccs -cfgscc => print-cfg-sccs -externalfnconstants => print-externalfnconstants -print => print-function -print-alias-sets (no change) -print-callgraph => dot-callgraph -print-cfg => dot-cfg -print-cfg-only => dot-cfg-only -print-dom-info (no change) -printm => print-module -printusedtypes => print-used-types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56487 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--docs/Passes.html138
-rw-r--r--lib/Analysis/CFGPrinter.cpp6
-rw-r--r--lib/Analysis/IPA/FindUsedTypes.cpp2
-rw-r--r--lib/VMCore/AsmWriter.cpp4
-rw-r--r--test/Analysis/CallGraph/2008-09-09-DirectCall.ll3
-rw-r--r--test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll3
-rw-r--r--test/Other/2002-01-31-CallGraph.ll2
-rw-r--r--test/Other/2007-06-05-PassID.ll2
-rw-r--r--test/Transforms/BlockPlacement/basictest.ll2
-rw-r--r--test/Transforms/Inline/basictest.ll2
-rw-r--r--test/Transforms/PruneEH/2008-09-05-CGUpdate.ll5
-rw-r--r--tools/opt/AnalysisWrappers.cpp5
-rw-r--r--tools/opt/GraphPrinters.cpp2
-rw-r--r--tools/opt/PrintSCC.cpp12
14 files changed, 96 insertions, 92 deletions
diff --git a/docs/Passes.html b/docs/Passes.html
index bb1a64bd97..22a73516cb 100644
--- a/docs/Passes.html
+++ b/docs/Passes.html
@@ -79,15 +79,14 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<tr><td><a href="#basicaa">-basicaa</a></td><td>Basic Alias Analysis (default AA impl)</td></tr>
<tr><td><a href="#basiccg">-basiccg</a></td><td>Basic CallGraph Construction</td></tr>
<tr><td><a href="#basicvn">-basicvn</a></td><td>Basic Value Numbering (default GVN impl)</td></tr>
-<tr><td><a href="#callgraph">-callgraph</a></td><td>Print a call graph</td></tr>
-<tr><td><a href="#callscc">-callscc</a></td><td>Print SCCs of the Call Graph</td></tr>
-<tr><td><a href="#cfgscc">-cfgscc</a></td><td>Print SCCs of each function CFG</td></tr>
<tr><td><a href="#codegenprepare">-codegenprepare</a></td><td>Optimize for code generation</td></tr>
<tr><td><a href="#count-aa">-count-aa</a></td><td>Count Alias Analysis Query Responses</td></tr>
<tr><td><a href="#debug-aa">-debug-aa</a></td><td>AA use debugger</td></tr>
<tr><td><a href="#domfrontier">-domfrontier</a></td><td>Dominance Frontier Construction</td></tr>
<tr><td><a href="#domtree">-domtree</a></td><td>Dominator Tree Construction</td></tr>
-<tr><td><a href="#externalfnconstants">-externalfnconstants</a></td><td>Print external fn callsites passed constants</td></tr>
+<tr><td><a href="#dot-callgraph">-dot-callgraph</a></td><td>Print Call Graph to 'dot' file</td></tr>
+<tr><td><a href="#dot-cfg">-dot-cfg</a></td><td>Print CFG of function to 'dot' file</td></tr>
+<tr><td><a href="#dot-cfg-only">-dot-cfg-only</a></td><td>Print CFG of function to 'dot' file (with no function bodies)</td></tr>
<tr><td><a href="#globalsmodref-aa">-globalsmodref-aa</a></td><td>Simple mod/ref analysis for globals</td></tr>
<tr><td><a href="#instcount">-instcount</a></td><td>Counts the various types of Instructions</td></tr>
<tr><td><a href="#intervals">-intervals</a></td><td>Interval Partition Construction</td></tr>
@@ -98,13 +97,14 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<tr><td><a href="#no-profile">-no-profile</a></td><td>No Profile Information</td></tr>
<tr><td><a href="#postdomfrontier">-postdomfrontier</a></td><td>Post-Dominance Frontier Construction</td></tr>
<tr><td><a href="#postdomtree">-postdomtree</a></td><td>Post-Dominator Tree Construction</td></tr>
-<tr><td><a href="#print">-print</a></td><td>Print function to stderr</td></tr>
<tr><td><a href="#print-alias-sets">-print-alias-sets</a></td><td>Alias Set Printer</td></tr>
-<tr><td><a href="#print-callgraph">-print-callgraph</a></td><td>Print Call Graph to 'dot' file</td></tr>
-<tr><td><a href="#print-cfg">-print-cfg</a></td><td>Print CFG of function to 'dot' file</td></tr>
-<tr><td><a href="#print-cfg-only">-print-cfg-only</a></td><td>Print CFG of function to 'dot' file (with no function bodies)</td></tr>
-<tr><td><a href="#printm">-printm</a></td><td>Print module to stderr</td></tr>
-<tr><td><a href="#printusedtypes">-printusedtypes</a></td><td>Find Used Types</td></tr>
+<tr><td><a href="#print-callgraph">-print-callgraph</a></td><td>Print a call graph</td></tr>
+<tr><td><a href="#print-callgraph-sccs">-print-callgraph-sccs</a></td><td>Print SCCs of the Call Graph</td></tr>
+<tr><td><a href="#print-cfg-sccs">-print-cfg-sccs</a></td><td>Print SCCs of each function CFG</td></tr>
+<tr><td><a href="#print-externalfnconstants">-print-externalfnconstants</a></td><td>Print external fn callsites passed constants</td></tr>
+<tr><td><a href="#print-function">-print-function</a></td><td>Print function to stderr</td></tr>
+<tr><td><a href="#print-module">-print-module</a></td><td>Print module to stderr</td></tr>
+<tr><td><a href="#print-used-types">-print-used-types</a></td><td>Find Used Types</td></tr>
<tr><td><a href="#profile-loader">-profile-loader</a></td><td>Load profile information from llvmprof.out</td></tr>
<tr><td><a href="#scalar-evolution">-scalar-evolution</a></td><td>Scalar Evolution Analysis</td></tr>
<tr><td><a href="#targetdata">-targetdata</a></td><td>Target Data Layout</td></tr>
@@ -317,39 +317,6 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="callgraph">Print a call graph</a>
-</div>
-<div class="doc_text">
- <p>
- This pass, only available in <code>opt</code>, prints the call graph to
- standard output in a human-readable form.
- </p>
-</div>
-
-<!-------------------------------------------------------------------------- -->
-<div class="doc_subsection">
- <a name="callscc">Print SCCs of the Call Graph</a>
-</div>
-<div class="doc_text">
- <p>
- This pass, only available in <code>opt</code>, prints the SCCs of the call
- graph to standard output in a human-readable form.
- </p>
-</div>
-
-<!-------------------------------------------------------------------------- -->
-<div class="doc_subsection">
- <a name="cfgscc">Print SCCs of each function CFG</a>
-</div>
-<div class="doc_text">
- <p>
- This pass, only available in <code>opt</code>, prints the SCCs of each
- function CFG to standard output in a human-readable form.
- </p>
-</div>
-
-<!-------------------------------------------------------------------------- -->
-<div class="doc_subsection">
<a name="codegenprepare">Optimize for code generation</a>
</div>
<div class="doc_text">
@@ -412,14 +379,38 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="externalfnconstants">Print external fn callsites passed constants</a>
+ <a name="dot-callgraph">Print Call Graph to 'dot' file</a>
</div>
<div class="doc_text">
<p>
- This pass, only available in <code>opt</code>, prints out call sites to
- external functions that are called with constant arguments. This can be
- useful when looking for standard library functions we should constant fold
- or handle in alias analyses.
+ This pass, only available in <code>opt</code>, prints the call graph into a
+ <code>.dot</code> graph. This graph can then be processed with the "dot" tool
+ to convert it to postscript or some other suitable format.
+ </p>
+</div>
+
+<!-------------------------------------------------------------------------- -->
+<div class="doc_subsection">
+ <a name="dot-cfg">Print CFG of function to 'dot' file</a>
+</div>
+<div class="doc_text">
+ <p>
+ This pass, only available in <code>opt</code>, prints the control flow graph
+ into a <code>.dot</code> graph. This graph can then be processed with the
+ "dot" tool to convert it to postscript or some other suitable format.
+ </p>
+</div>
+
+<!-------------------------------------------------------------------------- -->
+<div class="doc_subsection">
+ <a name="dot-cfg-only">Print CFG of function to 'dot' file (with no function bodies)</a>
+</div>
+<div class="doc_text">
+ <p>
+ This pass, only available in <code>opt</code>, prints the control flow graph
+ into a <code>.dot</code> graph, omitting the function bodies. This graph can
+ then be processed with the "dot" tool to convert it to postscript or some
+ other suitable format.
</p>
</div>
@@ -557,64 +548,73 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="print">Print function to stderr</a>
+ <a name="print-alias-sets">Alias Set Printer</a>
+</div>
+<div class="doc_text">
+ <p>Yet to be written.</p>
+</div>
+
+<!-------------------------------------------------------------------------- -->
+<div class="doc_subsection">
+ <a name="print-callgraph">Print a call graph</a>
</div>
<div class="doc_text">
<p>
- The <code>PrintFunctionPass</code> class is designed to be pipelined with
- other <code>FunctionPass</code>es, and prints out the functions of the module
- as they are processed.
+ This pass, only available in <code>opt</code>, prints the call graph to
+ standard output in a human-readable form.
</p>
</div>
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="print-alias-sets">Alias Set Printer</a>
+ <a name="print-callgraph-sccs">Print SCCs of the Call Graph</a>
</div>
<div class="doc_text">
- <p>Yet to be written.</p>
+ <p>
+ This pass, only available in <code>opt</code>, prints the SCCs of the call
+ graph to standard output in a human-readable form.
+ </p>
</div>
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="print-callgraph">Print Call Graph to 'dot' file</a>
+ <a name="print-cfg-sccs">Print SCCs of each function CFG</a>
</div>
<div class="doc_text">
<p>
- This pass, only available in <code>opt</code>, prints the call graph into a
- <code>.dot</code> graph. This graph can then be processed with the "dot" tool
- to convert it to postscript or some other suitable format.
+ This pass, only available in <code>opt</code>, prints the SCCs of each
+ function CFG to standard output in a human-readable form.
</p>
</div>
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="print-cfg">Print CFG of function to 'dot' file</a>
+ <a name="print-externalfnconstants">Print external fn callsites passed constants</a>
</div>
<div class="doc_text">
<p>
- This pass, only available in <code>opt</code>, prints the control flow graph
- into a <code>.dot</code> graph. This graph can then be processed with the
- "dot" tool to convert it to postscript or some other suitable format.
+ This pass, only available in <code>opt</code>, prints out call sites to
+ external functions that are called with constant arguments. This can be
+ useful when looking for standard library functions we should constant fold
+ or handle in alias analyses.
</p>
</div>
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="print-cfg-only">Print CFG of function to 'dot' file (with no function bodies)</a>
+ <a name="print-function">Print function to stderr</a>
</div>
<div class="doc_text">
<p>
- This pass, only available in <code>opt</code>, prints the control flow graph
- into a <code>.dot</code> graph, omitting the function bodies. This graph can
- then be processed with the "dot" tool to convert it to postscript or some
- other suitable format.
+ The <code>PrintFunctionPass</code> class is designed to be pipelined with
+ other <code>FunctionPass</code>es, and prints out the functions of the module
+ as they are processed.
</p>
</div>
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="printm">Print module to stderr</a>
+ <a name="print-module">Print module to stderr</a>
</div>
<div class="doc_text">
<p>
@@ -624,7 +624,7 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if !
<!-------------------------------------------------------------------------- -->
<div class="doc_subsection">
- <a name="printusedtypes">Find Used Types</a>
+ <a name="print-used-types">Find Used Types</a>
</div>
<div class="doc_text">
<p>
diff --git a/lib/Analysis/CFGPrinter.cpp b/lib/Analysis/CFGPrinter.cpp
index 46d3930bd6..143220ce38 100644
--- a/lib/Analysis/CFGPrinter.cpp
+++ b/lib/Analysis/CFGPrinter.cpp
@@ -7,7 +7,7 @@
//
//===----------------------------------------------------------------------===//
//
-// This file defines a '-print-cfg' analysis pass, which emits the
+// This file defines a '-dot-cfg' analysis pass, which emits the
// cfg.<fnname>.dot file for each function in the program, with a graph of the
// CFG for that function.
//
@@ -165,7 +165,7 @@ namespace {
char CFGPrinter::ID = 0;
static RegisterPass<CFGPrinter>
-P1("print-cfg", "Print CFG of function to 'dot' file", false, true);
+P1("dot-cfg", "Print CFG of function to 'dot' file", false, true);
namespace {
struct VISIBILITY_HIDDEN CFGOnlyPrinter : public CFGPrinter {
@@ -188,7 +188,7 @@ namespace {
char CFGOnlyPrinter::ID = 0;
static RegisterPass<CFGOnlyPrinter>
-P2("print-cfg-only",
+P2("dot-cfg-only",
"Print CFG of function to 'dot' file (with no function bodies)", false, true);
/// viewCFG - This function is meant for use from the debugger. You can just
diff --git a/lib/Analysis/IPA/FindUsedTypes.cpp b/lib/Analysis/IPA/FindUsedTypes.cpp
index c3b08debe6..88a180ae52 100644
--- a/lib/Analysis/IPA/FindUsedTypes.cpp
+++ b/lib/Analysis/IPA/FindUsedTypes.cpp
@@ -23,7 +23,7 @@ using namespace llvm;
char FindUsedTypes::ID = 0;
static RegisterPass<FindUsedTypes>
-X("printusedtypes", "Find Used Types", false, true);
+X("print-used-types", "Find Used Types", false, true);
// IncorporateType - Incorporate one type and all of its subtypes into the
// collection of used types.
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp
index 1088236c10..ab8b59bc27 100644
--- a/lib/VMCore/AsmWriter.cpp
+++ b/lib/VMCore/AsmWriter.cpp
@@ -41,10 +41,10 @@ AssemblyAnnotationWriter::~AssemblyAnnotationWriter() {}
char PrintModulePass::ID = 0;
static RegisterPass<PrintModulePass>
-X("printm", "Print module to stderr");
+X("print-module", "Print module to stderr");
char PrintFunctionPass::ID = 0;
static RegisterPass<PrintFunctionPass>
-Y("print","Print function to stderr");
+Y("print-function","Print function to stderr");
//===----------------------------------------------------------------------===//
diff --git a/test/Analysis/CallGraph/2008-09-09-DirectCall.ll b/test/Analysis/CallGraph/2008-09-09-DirectCall.ll
index a3afc379c5..456ffa25d7 100644
--- a/test/Analysis/CallGraph/2008-09-09-DirectCall.ll
+++ b/test/Analysis/CallGraph/2008-09-09-DirectCall.ll
@@ -1,4 +1,5 @@
-; RUN: llvm-as < %s | opt -callgraph -disable-output |& grep {Calls function 'callee'} | count 2
+; RUN: llvm-as < %s | opt -print-callgraph -disable-output |& \
+; RUN: grep {Calls function 'callee'} | count 2
define internal void @callee(...) {
entry:
diff --git a/test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll b/test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll
index 8e6e5d2839..ffc27bbe43 100644
--- a/test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll
+++ b/test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll
@@ -1,4 +1,5 @@
-; RUN: llvm-as < %s | opt -callgraph -disable-output |& grep {Calls function}
+; RUN: llvm-as < %s | opt -print-callgraph -disable-output |& \
+; RUN: grep {Calls function}
@a = global void ()* @f ; <void ()**> [#uses=0]
diff --git a/test/Other/2002-01-31-CallGraph.ll b/test/Other/2002-01-31-CallGraph.ll
index da638d8394..bb4c23e877 100644
--- a/test/Other/2002-01-31-CallGraph.ll
+++ b/test/Other/2002-01-31-CallGraph.ll
@@ -1,6 +1,6 @@
; Call graph construction crash: Not handling indirect calls right
;
-; RUN: llvm-as < %s | opt -analyze -callgraph >& /dev/null
+; RUN: llvm-as < %s | opt -analyze -print-callgraph >& /dev/null
;
%FunTy = type i32 (i32)
diff --git a/test/Other/2007-06-05-PassID.ll b/test/Other/2007-06-05-PassID.ll
index 81e9ef6f79..b6bba36c87 100644
--- a/test/Other/2007-06-05-PassID.ll
+++ b/test/Other/2007-06-05-PassID.ll
@@ -1,4 +1,4 @@
-;RUN: llvm-as < %s | opt -analyze -print-cfg-only -disable-output 2>/dev/null
+;RUN: llvm-as < %s | opt -analyze -dot-cfg-only -disable-output 2>/dev/null
;PR 1497
define void @foo() {
diff --git a/test/Transforms/BlockPlacement/basictest.ll b/test/Transforms/BlockPlacement/basictest.ll
index e7755cf6eb..4eec23e49c 100644
--- a/test/Transforms/BlockPlacement/basictest.ll
+++ b/test/Transforms/BlockPlacement/basictest.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -block-placement -disable-output -print 2> /dev/null
+; RUN: llvm-as < %s | opt -block-placement -disable-output -print-function 2> /dev/null
define i32 @test() {
br i1 true, label %X, label %Y
diff --git a/test/Transforms/Inline/basictest.ll b/test/Transforms/Inline/basictest.ll
index 59cacb6193..d954238dab 100644
--- a/test/Transforms/Inline/basictest.ll
+++ b/test/Transforms/Inline/basictest.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | opt -inline -disable-output -print 2> /dev/null
+; RUN: llvm-as < %s | opt -inline -disable-output -print-function 2> /dev/null
define i32 @func(i32 %i) {
ret i32 %i
diff --git a/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll b/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
index 828be7ac34..6e847fcfdc 100644
--- a/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
+++ b/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
@@ -1,5 +1,6 @@
-; RUN: llvm-as < %s | opt -prune-eh -inline -callgraph -disable-output |& \
-; RUN: grep {Calls.*ce3806g__fxio__put__put_int64__4.1339} | count 2
+; RUN: llvm-as < %s | opt -prune-eh -inline -print-callgraph \
+; RUN: -disable-output |& \
+; RUN: grep {Calls.*ce3806g__fxio__put__put_int64__4.1339} | count 2
%struct.FRAME.ce3806g = type { %struct.string___XUB, %struct.string___XUB, %struct.string___XUB, %struct.string___XUB }
%struct.FRAME.ce3806g__fxio__put__4 = type { i32, i32, i32, %struct.system__file_control_block__pstring*, i32, i32, i8 }
%struct.RETURN = type { i8, i32 }
diff --git a/tools/opt/AnalysisWrappers.cpp b/tools/opt/AnalysisWrappers.cpp
index 454e73872e..94cca50d63 100644
--- a/tools/opt/AnalysisWrappers.cpp
+++ b/tools/opt/AnalysisWrappers.cpp
@@ -65,7 +65,8 @@ namespace {
char ExternalFunctionsPassedConstants::ID = 0;
RegisterPass<ExternalFunctionsPassedConstants>
- P1("externalfnconstants", "Print external fn callsites passed constants");
+ P1("print-externalfnconstants",
+ "Print external fn callsites passed constants");
struct CallGraphPrinter : public ModulePass {
static char ID; // Pass ID, replacement for typeid
@@ -83,5 +84,5 @@ namespace {
char CallGraphPrinter::ID = 0;
RegisterPass<CallGraphPrinter>
- P2("callgraph", "Print a call graph");
+ P2("print-callgraph", "Print a call graph");
}
diff --git a/tools/opt/GraphPrinters.cpp b/tools/opt/GraphPrinters.cpp
index 7f1199a1e3..31515c8993 100644
--- a/tools/opt/GraphPrinters.cpp
+++ b/tools/opt/GraphPrinters.cpp
@@ -79,7 +79,7 @@ namespace {
};
char CallGraphPrinter::ID = 0;
- RegisterPass<CallGraphPrinter> P2("print-callgraph",
+ RegisterPass<CallGraphPrinter> P2("dot-callgraph",
"Print Call Graph to 'dot' file");
}
diff --git a/tools/opt/PrintSCC.cpp b/tools/opt/PrintSCC.cpp
index 0b9c12ff4b..f314baaba9 100644
--- a/tools/opt/PrintSCC.cpp
+++ b/tools/opt/PrintSCC.cpp
@@ -14,12 +14,12 @@
//
// (1) As a reference for how to use the scc_iterator.
// (2) To print out the SCCs for a CFG or a CallGraph:
-// analyze -cfgscc to print the SCCs in each CFG of a module.
-// analyze -cfgscc -stats to print the #SCCs and the maximum SCC size.
-// analyze -cfgscc -debug > /dev/null to watch the algorithm in action.
+// analyze -print-cfg-sccs to print the SCCs in each CFG of a module.
+// analyze -print-cfg-sccs -stats to print the #SCCs and the maximum SCC size.
+// analyze -print-cfg-sccs -debug > /dev/null to watch the algorithm in action.
//
// and similarly:
-// analyze -callscc [-stats] [-debug] to print SCCs in the CallGraph
+// analyze -print-callgraph-sccs [-stats] [-debug] to print SCCs in the CallGraph
//
// (3) To test the scc_iterator.
//
@@ -64,11 +64,11 @@ namespace {
char CFGSCC::ID = 0;
RegisterPass<CFGSCC>
- Y("cfgscc", "Print SCCs of each function CFG");
+ Y("print-cfg-sccs", "Print SCCs of each function CFG");
char CallGraphSCC::ID = 0;
RegisterPass<CallGraphSCC>
- Z("callscc", "Print SCCs of the Call Graph");
+ Z("print-callgraph-sccs", "Print SCCs of the Call Graph");
}
bool CFGSCC::runOnFunction(Function &F) {