Profiler.hh (7454:3a3e8e8cce1b) | Profiler.hh (7455:586f99bf0dc4) |
---|---|
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; --- 32 unchanged lines hidden (view full) --- 41 42 ---------------------------------------------------------------------- 43*/ 44 45#ifndef __MEM_RUBY_PROFILER_PROFILER_HH__ 46#define __MEM_RUBY_PROFILER_PROFILER_HH__ 47 48#include <iostream> | 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; --- 32 unchanged lines hidden (view full) --- 41 42 ---------------------------------------------------------------------- 43*/ 44 45#ifndef __MEM_RUBY_PROFILER_PROFILER_HH__ 46#define __MEM_RUBY_PROFILER_PROFILER_HH__ 47 48#include <iostream> |
49#include <map> |
|
49#include <string> 50#include <vector> 51 | 50#include <string> 51#include <vector> 52 |
53#include "base/hashmap.hh" |
|
52#include "mem/protocol/AccessModeType.hh" 53#include "mem/protocol/AccessType.hh" 54#include "mem/protocol/CacheRequestType.hh" 55#include "mem/protocol/GenericMachineType.hh" 56#include "mem/protocol/GenericRequestType.hh" 57#include "mem/protocol/PrefetchBit.hh" 58#include "mem/ruby/common/Address.hh" 59#include "mem/ruby/common/Consumer.hh" --- 5 unchanged lines hidden (view full) --- 65#include "mem/ruby/system/MemoryControl.hh" 66#include "mem/ruby/system/NodeID.hh" 67#include "params/RubyProfiler.hh" 68#include "sim/sim_object.hh" 69 70class CacheMsg; 71class AddressProfiler; 72 | 54#include "mem/protocol/AccessModeType.hh" 55#include "mem/protocol/AccessType.hh" 56#include "mem/protocol/CacheRequestType.hh" 57#include "mem/protocol/GenericMachineType.hh" 58#include "mem/protocol/GenericRequestType.hh" 59#include "mem/protocol/PrefetchBit.hh" 60#include "mem/ruby/common/Address.hh" 61#include "mem/ruby/common/Consumer.hh" --- 5 unchanged lines hidden (view full) --- 67#include "mem/ruby/system/MemoryControl.hh" 68#include "mem/ruby/system/NodeID.hh" 69#include "params/RubyProfiler.hh" 70#include "sim/sim_object.hh" 71 72class CacheMsg; 73class AddressProfiler; 74 |
73template <class KEY_TYPE, class VALUE_TYPE> class Map; 74 | |
75class Profiler : public SimObject, public Consumer 76{ 77 public: 78 typedef RubyProfilerParams Params; 79 Profiler(const Params *); 80 ~Profiler(); 81 82 void wakeup(); --- 122 unchanged lines hidden (view full) --- 205 Histogram m_delayedCyclesNonPFHistogram; 206 std::vector<Histogram> m_delayedCyclesVCHistograms; 207 208 Histogram m_outstanding_requests; 209 Histogram m_outstanding_persistent_requests; 210 211 Histogram m_average_latency_estimate; 212 | 75class Profiler : public SimObject, public Consumer 76{ 77 public: 78 typedef RubyProfilerParams Params; 79 Profiler(const Params *); 80 ~Profiler(); 81 82 void wakeup(); --- 122 unchanged lines hidden (view full) --- 205 Histogram m_delayedCyclesNonPFHistogram; 206 std::vector<Histogram> m_delayedCyclesVCHistograms; 207 208 Histogram m_outstanding_requests; 209 Histogram m_outstanding_persistent_requests; 210 211 Histogram m_average_latency_estimate; 212 |
213 Map<Address, int>* m_watch_address_list_ptr; | 213 m5::hash_set<Address> m_watch_address_set; |
214 // counts all initiated cache request including PUTs 215 int m_requests; | 214 // counts all initiated cache request including PUTs 215 int m_requests; |
216 Map <std::string, int>* m_requestProfileMap_ptr; | 216 std::map<std::string, int> m_requestProfileMap; |
217 218 //added by SS 219 bool m_hot_lines; 220 bool m_all_instructions; 221 222 int m_num_of_sequencers; 223}; 224 225inline std::ostream& 226operator<<(std::ostream& out, const Profiler& obj) 227{ 228 obj.print(out); 229 out << std::flush; 230 return out; 231} 232 233#endif // __MEM_RUBY_PROFILER_PROFILER_HH__ 234 235 | 217 218 //added by SS 219 bool m_hot_lines; 220 bool m_all_instructions; 221 222 int m_num_of_sequencers; 223}; 224 225inline std::ostream& 226operator<<(std::ostream& out, const Profiler& obj) 227{ 228 obj.print(out); 229 out << std::flush; 230 return out; 231} 232 233#endif // __MEM_RUBY_PROFILER_PROFILER_HH__ 234 235 |