diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:01:22 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:01:22 +0000 |
commit | 71d5a2540a98c81f5bcaeb48805e0e2881f530ef (patch) | |
tree | 5343938942df402b49ec7300a1c25a2d4ccd5821 /lib/Analysis/CallGraphSCCPass.cpp | |
parent | 31bbf64f3a4974a2d6c8b3b27ad2f519caf74057 (diff) | |
download | src-71d5a2540a98c81f5bcaeb48805e0e2881f530ef.tar.gz src-71d5a2540a98c81f5bcaeb48805e0e2881f530ef.zip |
Vendor import of llvm trunk r300422:vendor/llvm/llvm-trunk-r300422
Notes
Notes:
svn path=/vendor/llvm/dist/; revision=317017
svn path=/vendor/llvm/llvm-trunk-r300422/; revision=317018; tag=vendor/llvm/llvm-trunk-r300422
Diffstat (limited to 'lib/Analysis/CallGraphSCCPass.cpp')
-rw-r--r-- | lib/Analysis/CallGraphSCCPass.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/Analysis/CallGraphSCCPass.cpp b/lib/Analysis/CallGraphSCCPass.cpp index 9cef78144150..ea70f5752c61 100644 --- a/lib/Analysis/CallGraphSCCPass.cpp +++ b/lib/Analysis/CallGraphSCCPass.cpp @@ -609,16 +609,28 @@ namespace { } bool runOnSCC(CallGraphSCC &SCC) override { - Out << Banner; + auto PrintBannerOnce = [&] () { + static bool BannerPrinted = false; + if (BannerPrinted) + return; + Out << Banner; + BannerPrinted = true; + }; for (CallGraphNode *CGN : SCC) { if (CGN->getFunction()) { - if (isFunctionInPrintList(CGN->getFunction()->getName())) + if (isFunctionInPrintList(CGN->getFunction()->getName())) { + PrintBannerOnce(); CGN->getFunction()->print(Out); - } else + } + } else if (llvm::isFunctionInPrintList("*")) { + PrintBannerOnce(); Out << "\nPrinting <null> Function\n"; + } } return false; } + + StringRef getPassName() const override { return "Print CallGraph IR"; } }; } // end anonymous namespace. |