diff --git a/lib/Transforms/Hello/Hello.cpp b/lib/Transforms/Hello/Hello.cpp index b7fc870d882..804c3a70b2d 100644 --- a/lib/Transforms/Hello/Hello.cpp +++ b/lib/Transforms/Hello/Hello.cpp @@ -14,14 +14,23 @@ #include "llvm/Pass.h" #include "llvm/Function.h" +#include "llvm/ADT/StringExtras.h" +#include "llvm/Support/SlowOperationInformer.h" +#include "llvm/ADT/Statistic.h" #include using namespace llvm; namespace { + Statistic HelloCounter("hellocount", + "Counts number of functions greeted"); // Hello - The first implementation, without getAnalysisUsage. struct Hello : public FunctionPass { virtual bool runOnFunction(Function &F) { - std::cerr << "Hello: " << F.getName() << "\n"; + SlowOperationInformer soi("EscapeString"); + HelloCounter++; + std::string fname = F.getName(); + EscapeString(fname); + std::cerr << "Hello: " << fname << "\n"; return false; } }; @@ -30,7 +39,11 @@ namespace { // Hello2 - The second implementation with getAnalysisUsage implemented. struct Hello2 : public FunctionPass { virtual bool runOnFunction(Function &F) { - std::cerr << "Hello: " << F.getName() << "\n"; + SlowOperationInformer soi("EscapeString"); + HelloCounter++; + std::string fname = F.getName(); + EscapeString(fname); + std::cerr << "Hello: " << fname << "\n"; return false; }