From 0f54bc7630065eee51739596d77d91b751c6b71d Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 8 Mar 2004 21:30:18 +0000 Subject: We don't want to make this a pure interface, as it makes all implementors bear the burden of implementing what will be all exactly the same methods. They just want to provide the information in differing ways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12239 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/ProfileInfo.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/llvm/Analysis/ProfileInfo.h b/include/llvm/Analysis/ProfileInfo.h index 10b31d5..3bb056b 100644 --- a/include/llvm/Analysis/ProfileInfo.h +++ b/include/llvm/Analysis/ProfileInfo.h @@ -22,6 +22,7 @@ #define LLVM_ANALYSIS_PROFILEINFO_H #include +#include namespace llvm { class BasicBlock; @@ -32,13 +33,19 @@ namespace llvm { /// it available to the optimizers. Pass *createProfileLoaderPass(const std::string &Filename); - struct ProfileInfo { + class ProfileInfo { + protected: + std::map ExecutionCounts; + public: virtual ~ProfileInfo(); // We want to be subclassed //===------------------------------------------------------------------===// /// Profile Information Queries /// - virtual unsigned getExecutionCount(BasicBlock *BB) = 0; + unsigned getExecutionCount(BasicBlock *BB) { + std::map::iterator I = ExecutionCounts.find(BB); + return I != ExecutionCounts.end() ? I->second : 0; + } //===------------------------------------------------------------------===// /// Analysis Update Methods -- cgit v1.1