AccessTraceForAddress.hh (7048:2ab58c54de63) | AccessTraceForAddress.hh (7055:4e24742201d7) |
---|---|
1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 15 unchanged lines hidden (view full) --- 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29#ifndef __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__ 30#define __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__ 31 | 1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 15 unchanged lines hidden (view full) --- 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29#ifndef __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__ 30#define __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__ 31 |
32#include <iostream> 33 |
|
32#include "mem/protocol/AccessModeType.hh" 33#include "mem/protocol/CacheRequestType.hh" 34#include "mem/ruby/common/Address.hh" 35#include "mem/ruby/common/Global.hh" 36#include "mem/ruby/common/Set.hh" 37#include "mem/ruby/system/NodeID.hh" 38 39class Histogram; --- 8 unchanged lines hidden (view full) --- 48 void update(CacheRequestType type, AccessModeType access_mode, NodeID cpu, 49 bool sharing_miss); 50 int getTotal() const; 51 int getSharing() const { return m_sharing; } 52 int getTouchedBy() const { return m_touched_by.count(); } 53 const Address& getAddress() const { return m_addr; } 54 void addSample(int value); 55 | 34#include "mem/protocol/AccessModeType.hh" 35#include "mem/protocol/CacheRequestType.hh" 36#include "mem/ruby/common/Address.hh" 37#include "mem/ruby/common/Global.hh" 38#include "mem/ruby/common/Set.hh" 39#include "mem/ruby/system/NodeID.hh" 40 41class Histogram; --- 8 unchanged lines hidden (view full) --- 50 void update(CacheRequestType type, AccessModeType access_mode, NodeID cpu, 51 bool sharing_miss); 52 int getTotal() const; 53 int getSharing() const { return m_sharing; } 54 int getTouchedBy() const { return m_touched_by.count(); } 55 const Address& getAddress() const { return m_addr; } 56 void addSample(int value); 57 |
56 void print(ostream& out) const; | 58 void print(std::ostream& out) const; |
57 58 private: 59 Address m_addr; 60 uint64 m_loads; 61 uint64 m_stores; 62 uint64 m_atomics; 63 uint64 m_total; 64 uint64 m_user; --- 4 unchanged lines hidden (view full) --- 69 70inline bool 71node_less_then_eq(const AccessTraceForAddress* n1, 72 const AccessTraceForAddress* n2) 73{ 74 return n1->getTotal() > n2->getTotal(); 75} 76 | 59 60 private: 61 Address m_addr; 62 uint64 m_loads; 63 uint64 m_stores; 64 uint64 m_atomics; 65 uint64 m_total; 66 uint64 m_user; --- 4 unchanged lines hidden (view full) --- 71 72inline bool 73node_less_then_eq(const AccessTraceForAddress* n1, 74 const AccessTraceForAddress* n2) 75{ 76 return n1->getTotal() > n2->getTotal(); 77} 78 |
77inline ostream& 78operator<<(ostream& out, const AccessTraceForAddress& obj) | 79inline std::ostream& 80operator<<(std::ostream& out, const AccessTraceForAddress& obj) |
79{ 80 obj.print(out); | 81{ 82 obj.print(out); |
81 out << flush; | 83 out << std::flush; |
82 return out; 83} 84 85#endif // __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__ | 84 return out; 85} 86 87#endif // __MEM_RUBY_PROFILER_ACCESSTRACEFORADDRESS_HH__ |