summaryrefslogtreecommitdiff
path: root/src/mem/ruby/profiler/AccessTraceForAddress.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/profiler/AccessTraceForAddress.hh')
-rw-r--r--src/mem/ruby/profiler/AccessTraceForAddress.hh110
1 files changed, 46 insertions, 64 deletions
diff --git a/src/mem/ruby/profiler/AccessTraceForAddress.hh b/src/mem/ruby/profiler/AccessTraceForAddress.hh
index 2761d6de8..53b96856e 100644
--- a/src/mem/ruby/profiler/AccessTraceForAddress.hh
+++ b/src/mem/ruby/profiler/AccessTraceForAddress.hh
@@ -1,4 +1,3 @@
-
/*
* Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
* All rights reserved.
@@ -27,77 +26,60 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*
- * $Id$
- *
- * Description:
- *
- */
-
-#ifndef ACCESSTRACEFORADDRESS_H
-#define ACCESSTRACEFORADDRESS_H
+#ifndef __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__
+#define __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__
-#include "mem/ruby/common/Global.hh"
-#include "mem/ruby/common/Address.hh"
-#include "mem/protocol/CacheRequestType.hh"
#include "mem/protocol/AccessModeType.hh"
-#include "mem/ruby/system/NodeID.hh"
+#include "mem/protocol/CacheRequestType.hh"
+#include "mem/ruby/common/Address.hh"
+#include "mem/ruby/common/Global.hh"
#include "mem/ruby/common/Set.hh"
-class Histogram;
-
-class AccessTraceForAddress {
-public:
- // Constructors
- AccessTraceForAddress();
- explicit AccessTraceForAddress(const Address& addr);
-
- // Destructor
- ~AccessTraceForAddress();
-
- // Public Methods
-
- void update(CacheRequestType type, AccessModeType access_mode, NodeID cpu, bool sharing_miss);
- int getTotal() const;
- int getSharing() const { return m_sharing; }
- int getTouchedBy() const { return m_touched_by.count(); }
- const Address& getAddress() const { return m_addr; }
- void addSample(int value);
-
- void print(ostream& out) const;
-private:
- // Private Methods
-
- // Private copy constructor and assignment operator
- // AccessTraceForAddress(const AccessTraceForAddress& obj);
- // AccessTraceForAddress& operator=(const AccessTraceForAddress& obj);
+#include "mem/ruby/system/NodeID.hh"
- // Data Members (m_ prefix)
+class Histogram;
- Address m_addr;
- uint64 m_loads;
- uint64 m_stores;
- uint64 m_atomics;
- uint64 m_total;
- uint64 m_user;
- uint64 m_sharing;
- Set m_touched_by;
- Histogram* m_histogram_ptr;
+class AccessTraceForAddress
+{
+ public:
+ AccessTraceForAddress();
+ explicit AccessTraceForAddress(const Address& addr);
+ ~AccessTraceForAddress();
+
+ void update(CacheRequestType type, AccessModeType access_mode, NodeID cpu,
+ bool sharing_miss);
+ int getTotal() const;
+ int getSharing() const { return m_sharing; }
+ int getTouchedBy() const { return m_touched_by.count(); }
+ const Address& getAddress() const { return m_addr; }
+ void addSample(int value);
+
+ void print(ostream& out) const;
+
+ private:
+ Address m_addr;
+ uint64 m_loads;
+ uint64 m_stores;
+ uint64 m_atomics;
+ uint64 m_total;
+ uint64 m_user;
+ uint64 m_sharing;
+ Set m_touched_by;
+ Histogram* m_histogram_ptr;
};
-bool node_less_then_eq(const AccessTraceForAddress* n1, const AccessTraceForAddress* n2);
-
-// Output operator declaration
-ostream& operator<<(ostream& out, const AccessTraceForAddress& obj);
-
-// ******************* Definitions *******************
+inline bool
+node_less_then_eq(const AccessTraceForAddress* n1,
+ const AccessTraceForAddress* n2)
+{
+ return n1->getTotal() > n2->getTotal();
+}
-// Output operator definition
-extern inline
-ostream& operator<<(ostream& out, const AccessTraceForAddress& obj)
+inline ostream&
+operator<<(ostream& out, const AccessTraceForAddress& obj)
{
- obj.print(out);
- out << flush;
- return out;
+ obj.print(out);
+ out << flush;
+ return out;
}
-#endif //ACCESSTRACEFORADDRESS_H
+#endif // __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__