summaryrefslogtreecommitdiff
path: root/src/mem/ruby/profiler/StoreTrace.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/profiler/StoreTrace.hh')
-rw-r--r--src/mem/ruby/profiler/StoreTrace.hh120
1 files changed, 50 insertions, 70 deletions
diff --git a/src/mem/ruby/profiler/StoreTrace.hh b/src/mem/ruby/profiler/StoreTrace.hh
index 5cdf7ce41..8bddfe6c7 100644
--- a/src/mem/ruby/profiler/StoreTrace.hh
+++ b/src/mem/ruby/profiler/StoreTrace.hh
@@ -1,4 +1,3 @@
-
/*
* Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
* All rights reserved.
@@ -27,82 +26,63 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*
- * $Id$
- *
- * Description:
- *
- */
-
-#ifndef StoreTrace_H
-#define StoreTrace_H
+#ifndef __MEM_RUBY_PROFILER_STORETRACE_HH__
+#define __MEM_RUBY_PROFILER_STORETRACE_HH__
-#include "mem/ruby/common/Global.hh"
#include "mem/ruby/common/Address.hh"
+#include "mem/ruby/common/Global.hh"
#include "mem/ruby/common/Histogram.hh"
-class StoreTrace {
-public:
- // Constructors
- StoreTrace() { }
- explicit StoreTrace(const Address& addr);
-
- // Destructor
- ~StoreTrace();
-
- // Public Methods
- void store(NodeID node);
- void downgrade(NodeID node);
- int getTotal() const { return m_total_samples; }
- static void initSummary();
- static void printSummary(ostream& out);
- static void clearSummary();
-
- void print(ostream& out) const;
-private:
- // Private Methods
-
- // Private copy constructor and assignment operator
- // StoreTrace(const StoreTrace& obj);
- // StoreTrace& operator=(const StoreTrace& obj);
-
- // Class Members (s_ prefix)
- static bool s_init;
- static int64 s_total_samples; // Total number of store lifetimes of all lines
- static Histogram* s_store_count_ptr;
- static Histogram* s_store_first_to_stolen_ptr;
- static Histogram* s_store_last_to_stolen_ptr;
- static Histogram* s_store_first_to_last_ptr;
-
- // Data Members (m_ prefix)
-
- Address m_addr;
- NodeID m_last_writer;
- Time m_first_store;
- Time m_last_store;
- int m_stores_this_interval;
-
- int64 m_total_samples; // Total number of store lifetimes of this line
- Histogram m_store_count;
- Histogram m_store_first_to_stolen;
- Histogram m_store_last_to_stolen;
- Histogram m_store_first_to_last;
+class StoreTrace
+{
+ public:
+ StoreTrace() { }
+ explicit StoreTrace(const Address& addr);
+ ~StoreTrace();
+
+ void store(NodeID node);
+ void downgrade(NodeID node);
+ int getTotal() const { return m_total_samples; }
+ static void initSummary();
+ static void printSummary(ostream& out);
+ static void clearSummary();
+
+ void print(ostream& out) const;
+
+ private:
+ static bool s_init;
+ static int64 s_total_samples; // Total number of store lifetimes
+ // of all lines
+ static Histogram* s_store_count_ptr;
+ static Histogram* s_store_first_to_stolen_ptr;
+ static Histogram* s_store_last_to_stolen_ptr;
+ static Histogram* s_store_first_to_last_ptr;
+
+ Address m_addr;
+ NodeID m_last_writer;
+ Time m_first_store;
+ Time m_last_store;
+ int m_stores_this_interval;
+
+ int64 m_total_samples; // Total number of store lifetimes of this line
+ Histogram m_store_count;
+ Histogram m_store_first_to_stolen;
+ Histogram m_store_last_to_stolen;
+ Histogram m_store_first_to_last;
};
-bool node_less_then_eq(const StoreTrace* n1, const StoreTrace* n2);
-
-// Output operator declaration
-ostream& operator<<(ostream& out, const StoreTrace& obj);
-
-// ******************* Definitions *******************
+inline bool
+node_less_then_eq(const StoreTrace* n1, const StoreTrace* n2)
+{
+ return n1->getTotal() > n2->getTotal();
+}
-// Output operator definition
-extern inline
-ostream& operator<<(ostream& out, const StoreTrace& obj)
+inline ostream&
+operator<<(ostream& out, const StoreTrace& obj)
{
- obj.print(out);
- out << flush;
- return out;
+ obj.print(out);
+ out << flush;
+ return out;
}
-#endif //StoreTrace_H
+#endif // __MEM_RUBY_PROFILER_STORETRACE_HH__