diff options
author | Chris Lattner <sabre@nondot.org> | 2006-12-06 18:20:44 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-12-06 18:20:44 +0000 |
commit | cf84504d7a86808117f67264ad5cfab8f5a139bc (patch) | |
tree | c6e673621ce151fe503cc96601279fd9f7f0263e /include | |
parent | 11fd2f1af713584e3dd3a73aebfb8f845d5df459 (diff) |
merge the Statistic and StatisticBase classes, eliminating virtual methods
and eliminating #includes from the Statistic.h file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32282 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/ADT/Statistic.h | 43 |
1 files changed, 6 insertions, 37 deletions
diff --git a/include/llvm/ADT/Statistic.h b/include/llvm/ADT/Statistic.h index 332a57d121..dd44f2709b 100644 --- a/include/llvm/ADT/Statistic.h +++ b/include/llvm/ADT/Statistic.h @@ -26,53 +26,22 @@ #ifndef LLVM_ADT_STATISTIC_H #define LLVM_ADT_STATISTIC_H -#include <ostream> -#include "llvm/Support/Compiler.h" - namespace llvm { -// StatisticBase - Nontemplated base class for Statistic class... -class StatisticBase { +class Statistic { const char *Name; const char *Desc; - static unsigned NumStats; -protected: - StatisticBase(const char *name, const char *desc) : Name(name), Desc(desc) { - ++NumStats; // Keep track of how many stats are created... - } - // Out of line virtual dtor, to give the vtable etc a home. - virtual ~StatisticBase(); - - // destroy - Called by subclass dtor so that we can still invoke virtual - // functions on the subclass. - void destroy() const; - - // printValue - Overridden by template class to print out the value type... - virtual void printValue(std::ostream &o) const = 0; - - // hasSomeData - Return true if some data has been aquired. Avoid printing - // lots of zero counts. - // - virtual bool hasSomeData() const = 0; -}; - -// Statistic Class - templated on the data type we are monitoring... -class Statistic : private StatisticBase { unsigned Value; - - virtual void printValue(std::ostream &o) const { o << Value; } - virtual bool hasSomeData() const { return Value != 0; } + static unsigned NumStats; public: // Normal constructor, default initialize data item... Statistic(const char *name, const char *desc) - : StatisticBase(name, desc), Value(0) {} - - // Constructor to provide an initial value... - Statistic(const unsigned &Val, const char *name, const char *desc) - : StatisticBase(name, desc), Value(Val) {} + : Name(name), Desc(desc), Value(0) { + ++NumStats; // Keep track of how many stats are created... + } // Print information when destroyed, iff command line option is specified - ~Statistic() { destroy(); } + ~Statistic(); // Allow use of this class as the value itself... operator unsigned() const { return Value; } |