summaryrefslogtreecommitdiff
path: root/include/llvm/ADT/Statistic.h
diff options
context:
space:
mode:
authorJan Wen Voung <jvoung@google.com>2013-03-08 22:56:31 +0000
committerJan Wen Voung <jvoung@google.com>2013-03-08 22:56:31 +0000
commitfa785cb22d50c657eb08c762d627cd6aa96982f3 (patch)
tree8cf730a27cbe3d59e14adb2e0e2ed6d3f836850b /include/llvm/ADT/Statistic.h
parentd25c05efd55fe190a50965b31e04db69bd8e19de (diff)
downloadllvm-fa785cb22d50c657eb08c762d627cd6aa96982f3.tar.gz
llvm-fa785cb22d50c657eb08c762d627cd6aa96982f3.tar.bz2
llvm-fa785cb22d50c657eb08c762d627cd6aa96982f3.tar.xz
Disable statistics on Release builds and move tests that depend on -stats.
Summary: Statistics are still available in Release+Asserts (any +Asserts builds), and stats can also be turned on with LLVM_ENABLE_STATS. Move some of the FastISel stats that were moved under DEBUG() back out of DEBUG(), since stats are disabled across the board now. Many tests depend on grepping "-stats" output. Move those into a orig_dir/Stats/. so that they can be marked as unsupported when building without statistics. Differential Revision: http://llvm-reviews.chandlerc.com/D486 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176733 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/ADT/Statistic.h')
-rw-r--r--include/llvm/ADT/Statistic.h44
1 files changed, 43 insertions, 1 deletions
diff --git a/include/llvm/ADT/Statistic.h b/include/llvm/ADT/Statistic.h
index b54d10b9dd..26aac7bea6 100644
--- a/include/llvm/ADT/Statistic.h
+++ b/include/llvm/ADT/Statistic.h
@@ -51,7 +51,9 @@ public:
// Allow use of this class as the value itself.
operator unsigned() const { return Value; }
- const Statistic &operator=(unsigned Val) {
+
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
+ const Statistic &operator=(unsigned Val) {
Value = Val;
return init();
}
@@ -106,6 +108,46 @@ public:
return init();
}
+#else // Statistics are disabled in release builds.
+
+ const Statistic &operator=(unsigned Val) {
+ return *this;
+ }
+
+ const Statistic &operator++() {
+ return *this;
+ }
+
+ unsigned operator++(int) {
+ return 0;
+ }
+
+ const Statistic &operator--() {
+ return *this;
+ }
+
+ unsigned operator--(int) {
+ return 0;
+ }
+
+ const Statistic &operator+=(const unsigned &V) {
+ return *this;
+ }
+
+ const Statistic &operator-=(const unsigned &V) {
+ return *this;
+ }
+
+ const Statistic &operator*=(const unsigned &V) {
+ return *this;
+ }
+
+ const Statistic &operator/=(const unsigned &V) {
+ return *this;
+ }
+
+#endif // !defined(NDEBUG) || defined(LLVM_ENABLE_STATS)
+
protected:
Statistic &init() {
bool tmp = Initialized;