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; --- 65 unchanged lines hidden (view full) --- 74#include "params/RubyProfiler.hh" 75#include "sim/sim_object.hh" 76 77class CacheMsg; 78class AddressProfiler; 79 80template <class KEY_TYPE, class VALUE_TYPE> class Map; 81 |
82class Profiler : public SimObject, public Consumer { 83public: 84 // Constructors 85 typedef RubyProfilerParams Params; 86 Profiler(const Params *); 87 88 // Destructor 89 ~Profiler(); --- 52 unchanged lines hidden (view full) --- 142 void rubyWatch(int proc); 143 bool watchAddress(Address addr); 144 145 // return Ruby's start time 146 Time getRubyStartTime(){ 147 return m_ruby_start; 148 } 149 |
150 //added by SS 151 bool getHotLines() { return m_hot_lines; } 152 bool getAllInstructions() { return m_all_instructions; } 153 154private: |
155 156 // Private copy constructor and assignment operator 157 Profiler(const Profiler& obj); 158 Profiler& operator=(const Profiler& obj); 159 160 // Data Members (m_ prefix) 161 AddressProfiler* m_address_profiler_ptr; 162 AddressProfiler* m_inst_profiler_ptr; --- 46 unchanged lines hidden (view full) --- 209 210 Histogram m_average_latency_estimate; 211 212 Map<Address, int>* m_watch_address_list_ptr; 213 // counts all initiated cache request including PUTs 214 int m_requests; 215 Map <string, int>* m_requestProfileMap_ptr; 216 |
217 //added by SS |
218 bool m_hot_lines; 219 bool m_all_instructions; 220 221 int m_num_of_sequencers; 222}; 223 224// Output operator declaration 225ostream& operator<<(ostream& out, const Profiler& obj); --- 15 unchanged lines hidden --- |