diff options
author | Nathan Binkert <nate@binkert.org> | 2011-01-10 11:11:20 -0800 |
---|---|---|
committer | Nathan Binkert <nate@binkert.org> | 2011-01-10 11:11:20 -0800 |
commit | bd18ac82877072a87745aaf7a104e7bb036c6c66 (patch) | |
tree | 0fb980aea5b81d79160105fbf505670be0cf5e72 /src | |
parent | 8e262adf4fcc009776810b9795f907fcd468591c (diff) | |
download | gem5-bd18ac82877072a87745aaf7a104e7bb036c6c66.tar.xz |
ruby: get rid of ruby's Debug.hh
Get rid of the Debug class
Get rid of ASSERT and use assert
Use DPRINTFR for ProtocolTrace
Diffstat (limited to 'src')
34 files changed, 115 insertions, 712 deletions
diff --git a/src/mem/SConscript b/src/mem/SConscript index f0f6facd1..6692a181e 100644 --- a/src/mem/SConscript +++ b/src/mem/SConscript @@ -60,6 +60,7 @@ TraceFlag('LLSC') TraceFlag('MMU') TraceFlag('MemoryAccess') +TraceFlag('ProtocolTrace') TraceFlag('RubyCache') TraceFlag('RubyDma') TraceFlag('RubyGenerated') diff --git a/src/mem/ruby/buffers/MessageBuffer.cc b/src/mem/ruby/buffers/MessageBuffer.cc index b6d755b58..656787795 100644 --- a/src/mem/ruby/buffers/MessageBuffer.cc +++ b/src/mem/ruby/buffers/MessageBuffer.cc @@ -26,6 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> + #include "base/cprintf.hh" #include "base/misc.hh" #include "base/stl_helpers.hh" @@ -158,7 +160,7 @@ MessageBuffer::enqueue(MsgPtr message, Time delta) } m_msgs_this_cycle++; - // ASSERT(m_max_size == -1 || m_size <= m_max_size + 1); + // assert(m_max_size == -1 || m_size <= m_max_size + 1); // the plus one is a kluge because of a SLICC issue if (!m_ordering_set) { diff --git a/src/mem/ruby/buffers/MessageBuffer.hh b/src/mem/ruby/buffers/MessageBuffer.hh index e09abeb7d..df04d810c 100644 --- a/src/mem/ruby/buffers/MessageBuffer.hh +++ b/src/mem/ruby/buffers/MessageBuffer.hh @@ -35,6 +35,7 @@ #define __MEM_RUBY_BUFFERS_MESSAGEBUFFER_HH__ #include <algorithm> +#include <cassert> #include <functional> #include <iostream> #include <vector> @@ -85,7 +86,7 @@ class MessageBuffer void setPriority(int rank) { m_priority_rank = rank; } void setConsumer(Consumer* consumer_ptr) { - ASSERT(m_consumer_ptr == NULL); + assert(m_consumer_ptr == NULL); m_consumer_ptr = consumer_ptr; } diff --git a/src/mem/ruby/common/Debug.cc b/src/mem/ruby/common/Debug.cc deleted file mode 100644 index 6995ef637..000000000 --- a/src/mem/ruby/common/Debug.cc +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <fstream> -#include <stdarg.h> - -#include "base/misc.hh" -#include "mem/ruby/common/Debug.hh" -#include "mem/ruby/common/Global.hh" -#include "mem/ruby/eventqueue/RubyEventQueue.hh" - -using namespace std; - -class Debug; -extern Debug* g_debug_ptr; -ostream *debug_cout_ptr; - -bool Debug::m_protocol_trace = false; -struct DebugComponentData -{ - const char *desc; - const char ch; -}; - -// component character list -DebugComponentData debugComponents[] = -{ - {"System", 's' }, - {"Node", 'N' }, - {"Queue", 'q' }, - {"Event Queue", 'e' }, - {"Network", 'n' }, - {"Sequencer", 'S' }, - {"Tester", 't' }, - {"Generated", 'g' }, - {"SLICC", 'l' }, - {"Network Queues", 'Q' }, - {"Time", 'T' }, - {"Network Internals", 'i' }, - {"Store Buffer", 'b' }, - {"Cache", 'c' }, - {"Predictor", 'p' }, - {"Memory", 'M' }, -}; - -extern "C" void changeDebugVerbosity(VerbosityLevel vb); -extern "C" void changeDebugFilter(int filter); - -void -changeDebugVerbosity(VerbosityLevel vb) -{ - g_debug_ptr->setVerbosity(vb); -} - -void -changeDebugFilter(int filter) -{ - g_debug_ptr->setFilter(filter); -} - -Debug::Debug(const Params *p) - : SimObject(p) -{ - clearFilter(); - debug_cout_ptr = &cout; - - setFilterString(p->filter_string.c_str()); - setVerbosityString(p->verbosity_string.c_str()); - setDebugOutputFile(p->output_filename.c_str()); - m_starting_cycle = p->start_time; - m_protocol_trace = p->protocol_trace; - g_debug_ptr = this; -} - -Debug::~Debug() -{ -} - -void -Debug::printVerbosity(ostream& out) const -{ - switch (getVerbosity()) { - case No_Verb: - out << "verbosity = No_Verb" << endl; - break; - case Low_Verb: - out << "verbosity = Low_Verb" << endl; - break; - case Med_Verb: - out << "verbosity = Med_Verb" << endl; - break; - case High_Verb: - out << "verbosity = High_Verb" << endl; - break; - default: - out << "verbosity = unknown" << endl; - } -} - -bool -Debug::validDebug(int module, PriorityLevel priority) -{ - int local_module = (1 << module); - if (m_filter & local_module) { - if (g_eventQueue_ptr == NULL || - g_eventQueue_ptr->getTime() >= m_starting_cycle) { - switch (m_verbosityLevel) { - case No_Verb: - return false; - case Low_Verb: - return (priority == HighPrio); - case Med_Verb: - return (priority == HighPrio || priority == MedPrio); - case High_Verb: - return true; - } - } - } - return false; -} - -void -Debug::setDebugTime(Time t) -{ - m_starting_cycle = t; -} - -void -Debug::setVerbosity(VerbosityLevel vb) -{ - m_verbosityLevel = vb; -} - -void -Debug::setFilter(int filter) -{ - m_filter = filter; -} - -bool -Debug::setVerbosityString(const char *verb_str) -{ - string verb = verb_str ? verb_str : ""; - if (verb == "none") { - setVerbosity(No_Verb); - } else if (verb == "low") { - setVerbosity(Low_Verb); - } else if (verb == "med") { - setVerbosity(Med_Verb); - } else if (verb == "high") { - setVerbosity(High_Verb); - } else { - cerr << "Error: unrecognized verbosity (use none, low, med, high): " - << verb << endl; - return true; // error - } - return false; // no error -} - -bool -Debug::checkFilter(char ch) -{ - for (int i = 0; i < NUMBER_OF_COMPS; i++) { - // Look at all components to find a character match - if (debugComponents[i].ch == ch) { - // We found a match - return no error - return false; // no error - } - } - return true; // error -} - -bool -Debug::checkFilterString(const char *filter_str) -{ - if (filter_str == NULL) { - cerr << "Error: unrecognized component filter: NULL" << endl; - return true; // error - } - - // check for default filter ("none") before reporting RUBY_DEBUG error - if (string(filter_str) == "none") { - return false; // no error - } - - if (string(filter_str) == "all") { - return false; // no error - } - - // scan string checking each character - for (unsigned int i = 0; i < strlen(filter_str); i++) { - bool unrecognized = checkFilter(filter_str[i]); - if (unrecognized == true) { - return true; // error - } - } - return false; // no error -} - -bool -Debug::setFilterString(const char *filter_str) -{ - if (checkFilterString(filter_str)) { - return true; // error - } - - if (string(filter_str) == "all" ) { - allFilter(); - } else if (string(filter_str) == "none") { - clearFilter(); - } else { - // scan string adding to bit mask for each component which is present - for (unsigned int i = 0; i < strlen(filter_str); i++) { - bool error = addFilter( filter_str[i] ); - if (error) { - return true; // error - } - } - } - return false; // no error -} - -bool -Debug::addFilter(char ch) -{ - for (int i = 0; i < NUMBER_OF_COMPS; i++) { - // Look at all components to find a character match - if (debugComponents[i].ch == ch) { - // We found a match - update the filter bit mask - cout << " Debug: Adding to filter: '" << ch << "' (" - << debugComponents[i].desc << ")" << endl; - m_filter |= (1 << i); - return false; // no error - } - } - - // We didn't find the character - cerr << "Error: unrecognized component filter: " << ch << endl; - usageInstructions(); - return true; // error -} - -void -Debug::clearFilter() -{ - m_filter = 0; -} - -void Debug::allFilter() -{ - m_filter = ~0; -} - -void -Debug::usageInstructions(void) -{ - cerr << "Debug components: " << endl; - for (int i = 0; i < NUMBER_OF_COMPS; i++) { - cerr << " " << debugComponents[i].ch << ": " - << debugComponents[i].desc << endl; - } -} - -void -Debug::print(ostream& out) const -{ - out << "[Debug]" << endl; -} - -void -Debug::setDebugOutputFile (const char *filename) -{ - if (filename == NULL || !strcmp(filename, "none")) { - debug_cout_ptr = &cout; - return; - } - - if (m_fout.is_open()) { - m_fout.close(); - } - m_fout.open(filename, ios::out); - if (!m_fout.is_open()) { - cerr << "setDebugOutputFile: can't open file " << filename << endl; - } else { - debug_cout_ptr = &m_fout; - } -} - -void -Debug::closeDebugOutputFile () -{ - if (m_fout.is_open()) { - m_fout.close (); - debug_cout_ptr = &cout; - } -} - -void -Debug::debugMsg( const char *fmt, ...) -{ - va_list args; - - // you could check validDebug() here before printing the message - va_start(args, fmt); - vfprintf(stdout, fmt, args); - va_end(args); -} - -Debug * -RubyDebugParams::create() -{ - return new Debug(this); -} diff --git a/src/mem/ruby/common/Debug.hh b/src/mem/ruby/common/Debug.hh deleted file mode 100644 index 4183aca4d..000000000 --- a/src/mem/ruby/common/Debug.hh +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __MEM_RUBY_COMMON_DEBUG_HH__ -#define __MEM_RUBY_COMMON_DEBUG_HH__ - -#include <unistd.h> - -#include <fstream> -#include <iostream> -#include <string> -#include <vector> - -#include "mem/ruby/common/Global.hh" -#include "sim/sim_object.hh" - -#include "params/RubyDebug.hh" - -extern std::ostream * debug_cout_ptr; - -// component enumeration -enum DebugComponents -{ - SYSTEM_COMP, - NODE_COMP, - QUEUE_COMP, - EVENTQUEUE_COMP, - NETWORK_COMP, - SEQUENCER_COMP, - TESTER_COMP, - GENERATED_COMP, - SLICC_COMP, - NETWORKQUEUE_COMP, - TIME_COMP, - NETWORK_INTERNALS_COMP, - STOREBUFFER_COMP, - CACHE_COMP, - PREDICTOR_COMP, - MEMORY_COMP, - NUMBER_OF_COMPS -}; - -enum PriorityLevel {HighPrio, MedPrio, LowPrio}; -enum VerbosityLevel {No_Verb, Low_Verb, Med_Verb, High_Verb}; - -class Debug : public SimObject -{ - public: - typedef RubyDebugParams Params; - Debug(const Params *p); - ~Debug(); - - static bool getProtocolTrace() { return m_protocol_trace; } - bool validDebug(int module, PriorityLevel priority); - void printVerbosity(std::ostream& out) const; - void setVerbosity(VerbosityLevel vb); - bool setVerbosityString(const char *); - VerbosityLevel getVerbosity() const { return m_verbosityLevel; } - void setFilter(int); - static bool checkFilter( char); - static bool checkFilterString(const char *); - bool setFilterString(const char *); - void setDebugTime(Time); - Time getDebugTime() const { return m_starting_cycle; } - bool addFilter(char); - void clearFilter(); - void allFilter(); - void print(std::ostream& out) const; - /* old school debugging "vararg": sends messages to screen and log */ - void debugMsg(const char *fmt, ...); - - void setDebugOutputFile (const char * filename); - void closeDebugOutputFile (); - static void usageInstructions(void); - - private: - // Private copy constructor and assignment operator - Debug(const Debug& obj); - Debug& operator=(const Debug& obj); - - static bool m_protocol_trace; - VerbosityLevel m_verbosityLevel; - int m_filter; - Time m_starting_cycle; - - std::fstream m_fout; -}; - -inline std::ostream& -operator<<(std::ostream& out, const Debug& obj) -{ - obj.print(out); - out << std::flush; - return out; -} - -#undef assert -#define assert(EXPR) ASSERT(EXPR) -#undef ASSERT - -#ifndef NDEBUG - -#define ASSERT(EXPR) do { \ - using namespace std; \ - if (!(EXPR)) { \ - cerr << "failed assertion '" \ - << #EXPR << "' at fn " \ - << __PRETTY_FUNCTION__ << " in " \ - << __FILE__ << ":" \ - << __LINE__ << endl << flush; \ - (*debug_cout_ptr) << "failed assertion '" \ - << #EXPR << "' at fn " \ - << __PRETTY_FUNCTION__ << " in " \ - << __FILE__ << ":" \ - << __LINE__ << endl << flush; \ - if (isatty(STDIN_FILENO)) { \ - cerr << "At this point you might want to attach a debug to " \ - << "the running and get to the" << endl \ - << "crash site; otherwise press enter to continue" \ - << endl \ - << "PID: " << getpid() \ - << endl << flush; \ - char c; \ - cin.get(c); \ - } \ - abort(); \ - } \ -} while (0) - -#else - -#define ASSERT(EXPR) do {} while (0) - -#endif // NDEBUG - -#endif // __MEM_RUBY_COMMON_DEBUG_HH__ - diff --git a/src/mem/ruby/common/Debug.py b/src/mem/ruby/common/Debug.py deleted file mode 100644 index b11a7afeb..000000000 --- a/src/mem/ruby/common/Debug.py +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright (c) 2009 Advanced Micro Devices, Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer; -# redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution; -# neither the name of the copyright holders nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Authors: Steve Reinhardt -# Brad Beckmann - -from m5.params import * -from m5.SimObject import SimObject - -class RubyDebug(SimObject): - type = 'RubyDebug' - cxx_class = 'Debug' - - filter_string = Param.String('none', - "a string for filtering debugging output (see Debug.h)") - verbosity_string = Param.String('none', - "filters debugging messages based on priority (low, med, high)") - output_filename = Param.String('none', - "sends debugging messages to a file") - start_time = Param.Tick(1, - "filters debugging messages based on a ruby time") - # For debugging purposes, one can enable a trace of all the protocol - # state machine changes. Unfortunately, the code to generate the - # trace is protocol specific. To enable the code for some of the - # standard protocols, - # 1. change protocol_trace = true - # 2. enable debug in the Ruby Makefile - protocol_trace = Param.Bool(False, - "enable protocol state machine trace") diff --git a/src/mem/ruby/common/Global.cc b/src/mem/ruby/common/Global.cc index f780707e2..e771de7ae 100644 --- a/src/mem/ruby/common/Global.cc +++ b/src/mem/ruby/common/Global.cc @@ -28,7 +28,6 @@ #include "mem/ruby/common/Global.hh" -RubyEventQueue* g_eventQueue_ptr = NULL; -RubySystem* g_system_ptr = NULL; -Debug* g_debug_ptr = NULL; +RubyEventQueue* g_eventQueue_ptr = 0; +RubySystem* g_system_ptr = 0; diff --git a/src/mem/ruby/common/Global.hh b/src/mem/ruby/common/Global.hh index de96c5a6b..357825465 100644 --- a/src/mem/ruby/common/Global.hh +++ b/src/mem/ruby/common/Global.hh @@ -31,7 +31,6 @@ // external includes for all classes #include "mem/ruby/common/TypeDefines.hh" -#include "mem/ruby/common/Debug.hh" // simple type declarations typedef Time LogicalTime; @@ -47,9 +46,6 @@ extern RubyEventQueue* g_eventQueue_ptr; class RubySystem; extern RubySystem* g_system_ptr; -class Debug; -extern Debug* g_debug_ptr; - // FIXME: this is required by the contructor of Directory_Entry.hh. // It can't go into slicc_util.hh because it opens a can of ugly worms extern inline int max_tokens() diff --git a/src/mem/ruby/common/SConscript b/src/mem/ruby/common/SConscript index 2197faae8..4184b4b5f 100644 --- a/src/mem/ruby/common/SConscript +++ b/src/mem/ruby/common/SConscript @@ -33,11 +33,8 @@ Import('*') if not env['RUBY']: Return() -SimObject('Debug.py') - Source('Address.cc') Source('DataBlock.cc') -Source('Debug.cc') Source('Driver.cc') Source('Global.cc') Source('Histogram.cc') diff --git a/src/mem/ruby/common/Set.cc b/src/mem/ruby/common/Set.cc index e747f5159..ffc0a3f07 100644 --- a/src/mem/ruby/common/Set.cc +++ b/src/mem/ruby/common/Set.cc @@ -29,6 +29,8 @@ // modified (rewritten) 05/20/05 by Dan Gibson to accomimdate FASTER // >32 bit set sizes +#include <cstdio> + #include "base/misc.hh" #include "mem/ruby/common/Set.hh" #include "mem/ruby/system/System.hh" diff --git a/src/mem/ruby/eventqueue/RubyEventQueue.cc b/src/mem/ruby/eventqueue/RubyEventQueue.cc index eb1f2d32b..0e5a68e39 100644 --- a/src/mem/ruby/eventqueue/RubyEventQueue.cc +++ b/src/mem/ruby/eventqueue/RubyEventQueue.cc @@ -26,6 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> + #include "mem/ruby/common/Consumer.hh" #include "mem/ruby/eventqueue/RubyEventQueue.hh" #include "mem/ruby/eventqueue/RubyEventQueueNode.hh" @@ -50,7 +52,7 @@ void RubyEventQueue::scheduleEventAbsolute(Consumer* consumer, Time timeAbs) { // Check to see if this is a redundant wakeup - ASSERT(consumer != NULL); + assert(consumer != NULL); if (!consumer->alreadyScheduled(timeAbs)) { // This wakeup is not redundant RubyEventQueueNode *thisNode = new RubyEventQueueNode(consumer, this); diff --git a/src/mem/ruby/filters/BulkBloomFilter.cc b/src/mem/ruby/filters/BulkBloomFilter.cc index bf7f59732..a5daf4f6b 100644 --- a/src/mem/ruby/filters/BulkBloomFilter.cc +++ b/src/mem/ruby/filters/BulkBloomFilter.cc @@ -26,6 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> + #include "base/intmath.hh" #include "base/str.hh" #include "mem/ruby/filters/BulkBloomFilter.hh" @@ -98,9 +100,9 @@ BulkBloomFilter::set(const Address& addr) //Address permuted_bits = permute(addr); //int c1 = permuted_bits.bitSelect(0, set_bits-1); int c1 = addr.bitSelect( block_bits+set_bits, (block_bits+2*set_bits) - 1); - //ASSERT(c0 < (m_filter_size/2)); - //ASSERT(c0 + (m_filter_size/2) < m_filter_size); - //ASSERT(c1 < (m_filter_size/2)); + //assert(c0 < (m_filter_size/2)); + //assert(c0 + (m_filter_size/2) < m_filter_size); + //assert(c1 < (m_filter_size/2)); // set v0 bit m_filter[c0 + (m_filter_size/2)] = 1; // set v1 bit @@ -124,9 +126,9 @@ BulkBloomFilter::isSet(const Address& addr) //Address permuted_bits = permute(addr); //int c1 = permuted_bits.bitSelect(0, set_bits-1); int c1 = addr.bitSelect( block_bits+set_bits, (block_bits+2*set_bits) - 1); - //ASSERT(c0 < (m_filter_size/2)); - //ASSERT(c0 + (m_filter_size/2) < m_filter_size); - //ASSERT(c1 < (m_filter_size/2)); + //assert(c0 < (m_filter_size/2)); + //assert(c0 + (m_filter_size/2) < m_filter_size); + //assert(c1 < (m_filter_size/2)); // set v0 bit m_temp_filter[c0 + (m_filter_size/2)] = 1; // set v1 bit diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc index 69fc416e6..216234bcb 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc @@ -28,6 +28,8 @@ * Authors: Niket Agarwal */ +#include <cassert> + #include "base/stl_helpers.hh" #include "mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh" #include "mem/protocol/MachineType.hh" @@ -223,8 +225,8 @@ void GarnetNetwork_d::checkNetworkAllocation(NodeID id, bool ordered, int network_num) { - ASSERT(id < m_nodes); - ASSERT(network_num < m_virtual_networks); + assert(id < m_nodes); + assert(network_num < m_virtual_networks); if (ordered) { m_ordered[network_num] = true; diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc index 0bcefe337..45270ad7a 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc +++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc @@ -28,6 +28,7 @@ * Authors: Niket Agarwal */ +#include <cassert> #include <cmath> #include "base/stl_helpers.hh" @@ -105,7 +106,7 @@ void NetworkInterface_d::addNode(vector<MessageBuffer *>& in, vector<MessageBuffer *>& out) { - ASSERT(in.size() == m_virtual_networks); + assert(in.size() == m_virtual_networks); inNode_ptr = in; outNode_ptr = out; for (int j = 0; j < m_virtual_networks; j++) { diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh b/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh index bde8618ee..f928e04f6 100644 --- a/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh +++ b/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh @@ -31,6 +31,7 @@ #ifndef __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_FLIT_D_HH__ #define __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_FLIT_D_HH__ +#include <cassert> #include <iostream> #include "mem/ruby/network/garnet/NetworkHeader.hh" @@ -98,7 +99,7 @@ class flit_d greater(flit_d* n1, flit_d* n2) { if (n1->get_time() == n2->get_time()) { - //ASSERT(n1->flit_id != n2->flit_id); + //assert(n1->flit_id != n2->flit_id); return (n1->get_id() > n2->get_id()); } else { return (n1->get_time() > n2->get_time()); diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc index 631c5ab21..20ddf86e5 100644 --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc @@ -28,6 +28,9 @@ * Authors: Niket Agarwal */ +#include <cassert> + +#include "base/cprintf.hh" #include "base/stl_helpers.hh" #include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh" #include "mem/protocol/MachineType.hh" @@ -188,9 +191,9 @@ void GarnetNetwork::checkNetworkAllocation(NodeID id, bool ordered, int network_num) { - printf ("id = %i, m_nodes = %i \n", id, m_nodes); - ASSERT(id < m_nodes); - ASSERT(network_num < m_virtual_networks); + cprintf ("id = %i, m_nodes = %i \n", id, m_nodes); + assert(id < m_nodes); + assert(network_num < m_virtual_networks); if (ordered) { m_ordered[network_num] = true; diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc index 23efaa618..afc841a1b 100644 --- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc +++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc @@ -28,6 +28,7 @@ * Authors: Niket Agarwal */ +#include <cassert> #include <cmath> #include "base/stl_helpers.hh" @@ -95,7 +96,7 @@ void NetworkInterface::addNode(vector<MessageBuffer*>& in, vector<MessageBuffer*>& out) { - ASSERT(in.size() == m_virtual_networks); + assert(in.size() == m_virtual_networks); inNode_ptr = in; outNode_ptr = out; diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh b/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh index e0825f3ab..4c072b270 100644 --- a/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh +++ b/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh @@ -28,6 +28,7 @@ * Authors: Niket Agarwal */ +#include <cassert> #include <iostream> #include "mem/ruby/network/garnet/NetworkHeader.hh" @@ -57,7 +58,7 @@ class flit greater(flit* n1, flit* n2) { if (n1->get_time() == n2->get_time()) - //ASSERT(n1->flit_id != n2->flit_id); + //assert(n1->flit_id != n2->flit_id); return (n1->get_id() > n2->get_id()); else return (n1->get_time() > n2->get_time()); diff --git a/src/mem/ruby/network/simple/SimpleNetwork.cc b/src/mem/ruby/network/simple/SimpleNetwork.cc index 956b85f1d..3b215b849 100644 --- a/src/mem/ruby/network/simple/SimpleNetwork.cc +++ b/src/mem/ruby/network/simple/SimpleNetwork.cc @@ -26,6 +26,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> #include <numeric> #include "base/stl_helpers.hh" @@ -198,8 +199,8 @@ SimpleNetwork::makeInternalLink(SwitchID src, SwitchID dest, void SimpleNetwork::checkNetworkAllocation(NodeID id, bool ordered, int network_num) { - ASSERT(id < m_nodes); - ASSERT(network_num < m_virtual_networks); + assert(id < m_nodes); + assert(network_num < m_virtual_networks); if (ordered) { m_ordered[network_num] = true; diff --git a/src/mem/ruby/network/simple/Throttle.cc b/src/mem/ruby/network/simple/Throttle.cc index 096a8f466..55e5b4e78 100644 --- a/src/mem/ruby/network/simple/Throttle.cc +++ b/src/mem/ruby/network/simple/Throttle.cc @@ -26,6 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> + #include "base/cprintf.hh" #include "mem/protocol/Protocol.hh" #include "mem/ruby/buffers/MessageBuffer.hh" @@ -45,8 +47,6 @@ const int PRIORITY_SWITCH_LIMIT = 128; static int network_message_to_size(NetworkMessage* net_msg_ptr); -extern ostream *debug_cout_ptr; - Throttle::Throttle(int sID, NodeID node, int link_latency, int link_bandwidth_multiplier) { @@ -67,7 +67,7 @@ Throttle::init(NodeID node, int link_latency, int link_bandwidth_multiplier) m_node = node; m_vnets = 0; - ASSERT(link_bandwidth_multiplier > 0); + assert(link_bandwidth_multiplier > 0); m_link_bandwidth_multiplier = link_bandwidth_multiplier; m_link_latency = link_latency; diff --git a/src/mem/ruby/network/simple/Topology.cc b/src/mem/ruby/network/simple/Topology.cc index 5e6bf9939..d79491ef2 100644 --- a/src/mem/ruby/network/simple/Topology.cc +++ b/src/mem/ruby/network/simple/Topology.cc @@ -26,6 +26,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> + #include "mem/protocol/MachineType.hh" #include "mem/protocol/Protocol.hh" #include "mem/protocol/TopologyType.hh" @@ -224,8 +226,8 @@ void Topology::addLink(SwitchID src, SwitchID dest, int link_latency, int bw_multiplier, int link_weight) { - ASSERT(src <= m_number_of_switches+m_nodes+m_nodes); - ASSERT(dest <= m_number_of_switches+m_nodes+m_nodes); + assert(src <= m_number_of_switches+m_nodes+m_nodes); + assert(dest <= m_number_of_switches+m_nodes+m_nodes); m_links_src_vector.push_back(src); m_links_dest_vector.push_back(dest); m_links_latency_vector.push_back(link_latency); diff --git a/src/mem/ruby/profiler/Profiler.cc b/src/mem/ruby/profiler/Profiler.cc index a42d919f7..8596d04f1 100644 --- a/src/mem/ruby/profiler/Profiler.cc +++ b/src/mem/ruby/profiler/Profiler.cc @@ -47,13 +47,13 @@ #include <sys/times.h> #include <algorithm> +#include <fstream> #include "base/stl_helpers.hh" #include "base/str.hh" #include "mem/protocol/CacheMsg.hh" #include "mem/protocol/MachineType.hh" #include "mem/protocol/Protocol.hh" -#include "mem/ruby/common/Debug.hh" #include "mem/ruby/network/Network.hh" #include "mem/ruby/profiler/AddressProfiler.hh" #include "mem/ruby/profiler/Profiler.hh" @@ -63,8 +63,6 @@ using namespace std; using m5::stl_helpers::operator<<; -extern ostream* debug_cout_ptr; - static double process_memory_total(); static double process_memory_resident(); @@ -697,39 +695,6 @@ Profiler::swPrefetchLatency(Time cycles, } } -void -Profiler::profileTransition(const string& component, NodeID version, - Address addr, const string& state, const string& event, - const string& next_state, const string& note) -{ - const int EVENT_SPACES = 20; - const int ID_SPACES = 3; - const int TIME_SPACES = 7; - const int COMP_SPACES = 10; - const int STATE_SPACES = 6; - - if (g_debug_ptr->getDebugTime() <= 0 || - g_eventQueue_ptr->getTime() < g_debug_ptr->getDebugTime()) - return; - - ostream &out = *debug_cout_ptr; - out.flags(ios::right); - out << setw(TIME_SPACES) << g_eventQueue_ptr->getTime() << " "; - out << setw(ID_SPACES) << version << " "; - out << setw(COMP_SPACES) << component; - out << setw(EVENT_SPACES) << event << " "; - - out.flags(ios::right); - out << setw(STATE_SPACES) << state; - out << ">"; - out.flags(ios::left); - out << setw(STATE_SPACES) << next_state; - - out << " " << addr << " " << note; - - out << endl; -} - // Helper function static double process_memory_total() @@ -764,15 +729,9 @@ Profiler::rubyWatch(int id) { uint64 tr = 0; Address watch_address = Address(tr); - const int ID_SPACES = 3; - const int TIME_SPACES = 7; - - ostream &out = *debug_cout_ptr; - out.flags(ios::right); - out << setw(TIME_SPACES) << g_eventQueue_ptr->getTime() << " "; - out << setw(ID_SPACES) << id << " " - << "RUBY WATCH " << watch_address << endl; + DPRINTFN("%7s %3s RUBY WATCH %d\n", g_eventQueue_ptr->getTime(), id, + watch_address); // don't care about success or failure m_watch_address_set.insert(watch_address); diff --git a/src/mem/ruby/profiler/Profiler.hh b/src/mem/ruby/profiler/Profiler.hh index 3a11f0596..26b5b466d 100644 --- a/src/mem/ruby/profiler/Profiler.hh +++ b/src/mem/ruby/profiler/Profiler.hh @@ -156,9 +156,6 @@ class Profiler : public SimObject, public Consumer void sequencerRequests(int num) { m_sequencer_requests.add(num); } - void profileTransition(const std::string& component, NodeID version, - Address addr, const std::string& state, const std::string& event, - const std::string& next_state, const std::string& note); void profileMsgDelay(int virtualNetwork, int delayCycles); void print(std::ostream& out) const; diff --git a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh index 432379449..7fff1525b 100644 --- a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh +++ b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh @@ -33,6 +33,8 @@ #ifndef __MEM_RUBY_SLICC_INTERFACE_RUBYSLICCUTIL_HH__ #define __MEM_RUBY_SLICC_INTERFACE_RUBYSLICCUTIL_HH__ +#include <cassert> + #include "mem/protocol/AccessType.hh" #include "mem/protocol/CacheMsg.hh" #include "mem/protocol/CacheRequestType.hh" @@ -134,7 +136,7 @@ getTimePlusInt(Time addend1, int addend2) inline Time getTimeMinusTime(Time t1, Time t2) { - ASSERT(t1 >= t2); + assert(t1 >= t2); return t1 - t2; } diff --git a/src/mem/ruby/storebuffer/storebuffer.cc b/src/mem/ruby/storebuffer/storebuffer.cc index 25089aaf2..0486c6510 100644 --- a/src/mem/ruby/storebuffer/storebuffer.cc +++ b/src/mem/ruby/storebuffer/storebuffer.cc @@ -26,14 +26,17 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <cassert> +#include <cstdio> #include <map> +#include "base/trace.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/storebuffer/storebuffer.hh" using namespace std; -#define SYSTEM_EXIT ASSERT(0) +#define SYSTEM_EXIT assert(0) // global map of request id_s to map them back to storebuffer pointers map<uint64_t, StoreBuffer *> request_map; @@ -58,7 +61,7 @@ StoreBuffer::StoreBuffer(uint32 id, uint32 block_bits, int storebuffer_size) sprintf(port_name, "%s%d", name, id); m_port = libruby_get_port(port_name, hit); m_hit_callback = NULL; - ASSERT(storebuffer_size >= 0); + assert(storebuffer_size >= 0); m_storebuffer_size = storebuffer_size; m_id = id; m_block_size = 1 << block_bits; @@ -188,7 +191,7 @@ StoreBuffer::checkForLoadHit(RubyRequest request) // if any matching entry is found, determine if all the // requested bytes have been matched if (found) { - ASSERT(m_buffer_size > 0); + assert(m_buffer_size > 0); int unmatched_bytes = 0; for (int i = physical_address%64; i < len; i++) { unmatched_bytes = unmatched_bytes + data[i]; @@ -221,7 +224,7 @@ StoreBuffer::returnMatchedData(RubyRequest request) physical_address_t physical_address = request.paddr; int len = request.len; - ASSERT(checkForLoadHit(request) != NO_MATCH); + assert(checkForLoadHit(request) != NO_MATCH); physical_address_t lineaddr = physical_address & m_block_mask; bool found = false; deque<SBEntry>::iterator satisfying_store; @@ -285,7 +288,7 @@ StoreBuffer::complete(uint64_t id) return; } - ASSERT(outstanding_requests.find(id) != outstanding_requests.end()); + assert(outstanding_requests.find(id) != outstanding_requests.end()); physical_address_t physical_address = outstanding_requests.find(id)->second.paddr; RubyRequestType type = outstanding_requests.find(id)->second.type; @@ -306,7 +309,7 @@ StoreBuffer::complete(uint64_t id) from_buffer.m_request.type == type) { buffer.pop_back(); m_buffer_size--; - ASSERT(m_buffer_size >= 0); + assert(m_buffer_size >= 0); // schedule the next request if (m_buffer_size > 0) { diff --git a/src/mem/ruby/system/RubySystem.py b/src/mem/ruby/system/RubySystem.py index 00d02b3df..7878cec63 100644 --- a/src/mem/ruby/system/RubySystem.py +++ b/src/mem/ruby/system/RubySystem.py @@ -40,7 +40,6 @@ class RubySystem(SimObject): "default cache block size; must be a power of two"); mem_size = Param.MemorySize("total memory size of the system"); network = Param.RubyNetwork("") - debug = Param.RubyDebug("the default debug object") profiler = Param.RubyProfiler(""); tracer = Param.RubyTracer(""); stats_filename = Param.String("ruby.stats", diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index 6357980f2..a82bcd2af 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -485,19 +485,10 @@ Sequencer::hitCallback(SequencerRequest* srequest, g_eventQueue_ptr->getTime()); } - if (Debug::getProtocolTrace()) { - if (success) { - g_system_ptr->getProfiler()-> - profileTransition("Seq", m_version, - Address(ruby_request.paddr), "", "Done", "", - csprintf("%d cycles", miss_latency)); - } else { - g_system_ptr->getProfiler()-> - profileTransition("Seq", m_version, - Address(ruby_request.paddr), "", "SC_Failed", "", - csprintf("%d cycles", miss_latency)); - } - } + DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %d cycles\n", + g_eventQueue_ptr->getTime(), m_version, "Seq", + success ? "Done" : "SC_Failed", "", "", + Address(ruby_request.paddr), miss_latency); } #if 0 if (request.getPrefetch() == PrefetchBit_Yes) { @@ -658,18 +649,9 @@ Sequencer::issueRequest(const RubyRequest& request) Address(request.pc), amtype, request.len, PrefetchBit_No, request.proc_id); - if (Debug::getProtocolTrace()) { - g_system_ptr->getProfiler()-> - profileTransition("Seq", m_version, Address(request.paddr), - "", "Begin", "", - RubyRequestType_to_string(request.type)); - } - - if (g_system_ptr->getTracer()->traceEnabled()) { - g_system_ptr->getTracer()-> - traceRequest(this, line_addr, Address(request.pc), - request.type, g_eventQueue_ptr->getTime()); - } + DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\n", + g_eventQueue_ptr->getTime(), m_version, "Seq", "Begin", "", "", + Address(request.paddr), RubyRequestType_to_string(request.type)); Time latency = 0; // initialzed to an null value diff --git a/src/mem/ruby/system/System.cc b/src/mem/ruby/system/System.cc index a704724ac..d9c4fa821 100644 --- a/src/mem/ruby/system/System.cc +++ b/src/mem/ruby/system/System.cc @@ -75,7 +75,6 @@ RubySystem::RubySystem(const Params *p) } m_network_ptr = p->network; - g_debug_ptr = p->debug; m_profiler_ptr = p->profiler; m_tracer_ptr = p->tracer; diff --git a/src/mem/ruby/tester/DeterministicDriver.cc b/src/mem/ruby/tester/DeterministicDriver.cc index 533f58e6f..9b0fe7967 100644 --- a/src/mem/ruby/tester/DeterministicDriver.cc +++ b/src/mem/ruby/tester/DeterministicDriver.cc @@ -27,10 +27,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - * $Id$ - * - */ +#include <cassert> #include "base/misc.hh" #include "mem/ruby/common/Global.hh" @@ -127,7 +124,7 @@ void DeterministicDriver::wakeup() { void DeterministicDriver::hitCallback(int64_t request_id) { - ASSERT(requests.find(request_id) != requests.end()); + assert(requests.find(request_id) != requests.end()); int proc = requests[request_id].first; Address address = requests[request_id].second; @@ -177,7 +174,7 @@ bool DeterministicDriver::isAddrReady(NodeID node, vector<NodeID> addr_vector, A { int addr_number = addr.getAddress()/DATA_BLOCK_BYTES; - ASSERT ((addr_number >= 0) && (addr_number < addr_vector.size())); + assert((addr_number >= 0) && (addr_number < addr_vector.size())); if (((addr_vector[addr_number]+1)%m_num_procs == node) && (m_loads_completed+m_stores_completed >= m_numCompletionsPerNode*node) && // is this node next @@ -226,7 +223,7 @@ Address DeterministicDriver::getNextAddr(NodeID node, vector<NodeID> addr_vector Address addr; // should only be called if we know a addr is ready for the node - ASSERT(isAddrReady(node, addr_vector)); + assert(isAddrReady(node, addr_vector)); for (int addr_number=0; addr_number<addr_vector.size(); addr_number++) { diff --git a/src/mem/ruby/tester/RaceyDriver.cc b/src/mem/ruby/tester/RaceyDriver.cc index a9f716334..bc41b0281 100644 --- a/src/mem/ruby/tester/RaceyDriver.cc +++ b/src/mem/ruby/tester/RaceyDriver.cc @@ -27,10 +27,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - * $Id$ - * - */ +#include <cassert> + #include "mem/ruby/common/Global.hh" #include "mem/ruby/tester/Tester_Globals.hh" #include "mem/ruby/tester/RaceyDriver.hh" @@ -77,7 +75,7 @@ void RaceyDriver::go() { void RaceyDriver::hitCallback(int64_t request_id) { - ASSERT(requests.find(request_id) != requests.end()); + assert(requests.find(request_id) != requests.end()); int proc = requests[request_id].first; Address address = requests[request_id].second.address; uint8_t * data = new uint8_t[4]; diff --git a/src/mem/ruby/tester/RaceyPseudoThread.cc b/src/mem/ruby/tester/RaceyPseudoThread.cc index cfe4078cf..ae01585e6 100644 --- a/src/mem/ruby/tester/RaceyPseudoThread.cc +++ b/src/mem/ruby/tester/RaceyPseudoThread.cc @@ -30,6 +30,8 @@ * Description: see RaceyPseudoThread.h */ +#include <cassert> + #include "mem/ruby/tester/RaceyPseudoThread.hh" #include "mem/ruby/tester/RaceyDriver.hh" #include "gzstream.hh" @@ -221,7 +223,7 @@ void RaceyPseudoThread::load_sig(unsigned index) { // pc is zero, problem? int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(sig(index), read_data, 4, 0, RubyRequestType_LD, RubyAccessMode_User)); - ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end()); + assert(m_driver.requests.find(request_id) == m_driver.requests.end()); struct address_data request_data; request_data.address = Address(sig(index)); @@ -248,7 +250,7 @@ void RaceyPseudoThread::load_m(unsigned index) { // pc is zero, problem? int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(m(index), read_data, 4, 0, RubyRequestType_LD, RubyAccessMode_User)); - ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end()); + assert(m_driver.requests.find(request_id) == m_driver.requests.end()); struct address_data request_data; request_data.address = Address(m(index)); @@ -279,7 +281,7 @@ void RaceyPseudoThread::store_sig(unsigned index, unsigned value) { // pc is zero, problem? int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(sig(index), write_data, 4, 0, RubyRequestType_ST, RubyAccessMode_User)); - ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end()); + assert(m_driver.requests.find(request_id) == m_driver.requests.end()); struct address_data request_data; request_data.address = Address(sig(index)); @@ -308,7 +310,7 @@ void RaceyPseudoThread::store_m(unsigned index, unsigned value) { // pc is zero, problem? int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(m(index), write_data, 4, 0, RubyRequestType_ST, RubyAccessMode_User)); - ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end()); + assert(m_driver.requests.find(request_id) == m_driver.requests.end()); struct address_data request_data; request_data.address = Address(m(index)); diff --git a/src/mem/ruby/tester/test_framework.cc b/src/mem/ruby/tester/test_framework.cc index 2dcace49d..6728f9e08 100644 --- a/src/mem/ruby/tester/test_framework.cc +++ b/src/mem/ruby/tester/test_framework.cc @@ -366,8 +366,6 @@ static void usageInstructions() } cerr << endl; - g_debug_ptr->usageInstructions(); - cerr << endl; exit(1); } diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py index da6bc681c..145284726 100644 --- a/src/mem/slicc/symbols/StateMachine.py +++ b/src/mem/slicc/symbols/StateMachine.py @@ -338,6 +338,7 @@ static int m_num_controllers; * Created by slicc definition of Module "${{self.short}}" */ +#include <cassert> #include <sstream> #include <string> @@ -760,6 +761,8 @@ $c_ident::${{action.ident}}(const Address& addr) // Auto generated C++ code started by $__file__:$__line__ // ${ident}: ${{self.short}} +#include <cassert> + #include "base/misc.hh" #include "mem/ruby/common/Global.hh" #include "mem/ruby/slicc_interface/RubySlicc_includes.hh" @@ -829,7 +832,10 @@ ${ident}_Controller::wakeup() // Auto generated C++ code started by $__file__:$__line__ // ${ident}: ${{self.short}} +#include <cassert> + #include "base/misc.hh" +#include "base/trace.hh" #include "mem/ruby/common/Global.hh" #include "mem/protocol/${ident}_Controller.hh" #include "mem/protocol/${ident}_State.hh" @@ -863,36 +869,30 @@ ${ident}_Controller::doTransition(${ident}_Event event, DPRINTF(RubyGenerated, "next_state: %s\\n", ${ident}_State_to_string(next_state)); m_profiler.countTransition(state, event); - if (Debug::getProtocolTrace()) { - g_system_ptr->getProfiler()->profileTransition("${ident}", - m_version, addr, - ${ident}_State_to_string(state), - ${ident}_Event_to_string(event), - ${ident}_State_to_string(next_state), - GET_TRANSITION_COMMENT()); - } - CLEAR_TRANSITION_COMMENT(); - ${ident}_setState(addr, next_state); + DPRINTFR(ProtocolTrace, "%7d %3s %10s%20s %6s>%-6s %s %s\\n", + g_eventQueue_ptr->getTime(), m_version, "${ident}", + ${ident}_Event_to_string(event), + ${ident}_State_to_string(state), + ${ident}_State_to_string(next_state), + addr, GET_TRANSITION_COMMENT()); + CLEAR_TRANSITION_COMMENT(); + ${ident}_setState(addr, next_state); } else if (result == TransitionResult_ResourceStall) { - if (Debug::getProtocolTrace()) { - g_system_ptr->getProfiler()->profileTransition("${ident}", - m_version, addr, - ${ident}_State_to_string(state), - ${ident}_Event_to_string(event), - ${ident}_State_to_string(next_state), - "Resource Stall"); - } + DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\\n", + g_eventQueue_ptr->getTime(), m_version, "${ident}", + ${ident}_Event_to_string(event), + ${ident}_State_to_string(state), + ${ident}_State_to_string(next_state), + addr, "Resource Stall"); } else if (result == TransitionResult_ProtocolStall) { DPRINTF(RubyGenerated, "stalling\\n"); - if (Debug::getProtocolTrace()) { - g_system_ptr->getProfiler()->profileTransition("${ident}", - m_version, addr, - ${ident}_State_to_string(state), - ${ident}_Event_to_string(event), - ${ident}_State_to_string(next_state), - "Protocol Stall"); - } + DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\\n", + g_eventQueue_ptr->getTime(), m_version, "${ident}", + ${ident}_Event_to_string(event), + ${ident}_State_to_string(state), + ${ident}_State_to_string(next_state), + addr, "Protocol Stall"); } return result; @@ -993,6 +993,7 @@ if (!%s.areNSlotsAvailable(%s)) #ifndef __${ident}_PROFILE_DUMPER_HH__ #define __${ident}_PROFILE_DUMPER_HH__ +#include <cassert> #include <iostream> #include <vector> @@ -1088,6 +1089,7 @@ ${ident}_ProfileDumper::dumpStats(std::ostream& out) const #ifndef __${ident}_PROFILER_HH__ #define __${ident}_PROFILER_HH__ +#include <cassert> #include <iostream> #include "mem/ruby/common/Global.hh" @@ -1125,6 +1127,8 @@ class ${ident}_Profiler // Auto generated C++ code started by $__file__:$__line__ // ${ident}: ${{self.short}} +#include <cassert> + #include "mem/protocol/${ident}_Profiler.hh" ${ident}_Profiler::${ident}_Profiler() diff --git a/src/mem/slicc/symbols/Type.py b/src/mem/slicc/symbols/Type.py index d6e156908..e521d544f 100644 --- a/src/mem/slicc/symbols/Type.py +++ b/src/mem/slicc/symbols/Type.py @@ -508,6 +508,7 @@ std::ostream& operator<<(std::ostream& out, const ${{self.c_ident}}& obj); * Auto generated C++ code started by $__file__:$__line__ */ +#include <cassert> #include <iostream> #include <string> |