From 05445e30aa95ca53c55ab050fbabc8ca14631516 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Mon, 7 Aug 2006 23:17:24 +0000 Subject: Make this example pass use some things from lib/Support (EscapeString, SlowOperatingInfo, Statistics). Besides providing an example of how to use these facilities, it also serves to debug problems with runtime linking when dlopening a loadable module. These three support facilities exercise different combinations of Text/Weak Weak/Text and Text/Text linking between the executable and the module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29552 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Hello/Hello.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'lib/Transforms/Hello') diff --git a/lib/Transforms/Hello/Hello.cpp b/lib/Transforms/Hello/Hello.cpp index b7fc870d88..804c3a70b2 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; } -- cgit v1.2.3