summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/CFGPrinter.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-03-18 00:39:19 +0000
committerDevang Patel <dpatel@apple.com>2008-03-18 00:39:19 +0000
commit864970e9b629e34e39f1a8b80c01d196ebf706de (patch)
treeffe44f7fdef61737d3e6c236ff45cc4922a2b1ce /llvm/lib/Analysis/CFGPrinter.cpp
parent924ca7f01d4670682d4e68222e06e7ed6bc1fbad (diff)
downloadbcm5719-llvm-864970e9b629e34e39f1a8b80c01d196ebf706de.tar.gz
bcm5719-llvm-864970e9b629e34e39f1a8b80c01d196ebf706de.zip
Identify Analysis pass.
Do not run analysis pass again if analysis info is still available. This fixes PR1441. llvm-svn: 48476
Diffstat (limited to 'llvm/lib/Analysis/CFGPrinter.cpp')
-rw-r--r--llvm/lib/Analysis/CFGPrinter.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/CFGPrinter.cpp b/llvm/lib/Analysis/CFGPrinter.cpp
index a96e9d066ee..7b61ff8ebfe 100644
--- a/llvm/lib/Analysis/CFGPrinter.cpp
+++ b/llvm/lib/Analysis/CFGPrinter.cpp
@@ -94,6 +94,9 @@ namespace {
static char ID; // Pass identifcation, replacement for typeid
CFGViewer() : FunctionPass((intptr_t)&ID) {}
+ /// isAnalysis - Return true if this pass is implementing an analysis pass.
+ virtual bool isAnalysis() const { return true; }
+
virtual bool runOnFunction(Function &F) {
F.viewCFG();
return false;
@@ -114,6 +117,9 @@ namespace {
static char ID; // Pass identifcation, replacement for typeid
CFGOnlyViewer() : FunctionPass((intptr_t)&ID) {}
+ /// isAnalysis - Return true if this pass is implementing an analysis pass.
+ virtual bool isAnalysis() const { return true; }
+
virtual bool runOnFunction(Function &F) {
CFGOnly = true;
F.viewCFG();
@@ -137,6 +143,9 @@ namespace {
CFGPrinter() : FunctionPass((intptr_t)&ID) {}
explicit CFGPrinter(intptr_t pid) : FunctionPass(pid) {}
+ /// isAnalysis - Return true if this pass is implementing an analysis pass.
+ virtual bool isAnalysis() const { return true; }
+
virtual bool runOnFunction(Function &F) {
std::string Filename = "cfg." + F.getName() + ".dot";
cerr << "Writing '" << Filename << "'...";
@@ -164,6 +173,10 @@ namespace {
struct VISIBILITY_HIDDEN CFGOnlyPrinter : public CFGPrinter {
static char ID; // Pass identification, replacement for typeid
CFGOnlyPrinter() : CFGPrinter((intptr_t)&ID) {}
+
+ /// isAnalysis - Return true if this pass is implementing an analysis pass.
+ virtual bool isAnalysis() const { return true; }
+
virtual bool runOnFunction(Function &F) {
bool OldCFGOnly = CFGOnly;
CFGOnly = true;
OpenPOWER on IntegriCloud