ruby: get rid of ruby's Debug.hh
authorNathan Binkert <nate@binkert.org>
Mon, 10 Jan 2011 19:11:20 +0000 (11:11 -0800)
committerNathan Binkert <nate@binkert.org>
Mon, 10 Jan 2011 19:11:20 +0000 (11:11 -0800)
Get rid of the Debug class
Get rid of ASSERT and use assert
Use DPRINTFR for ProtocolTrace

35 files changed:
configs/ruby/Ruby.py
src/mem/SConscript
src/mem/ruby/buffers/MessageBuffer.cc
src/mem/ruby/buffers/MessageBuffer.hh
src/mem/ruby/common/Debug.cc [deleted file]
src/mem/ruby/common/Debug.hh [deleted file]
src/mem/ruby/common/Debug.py [deleted file]
src/mem/ruby/common/Global.cc
src/mem/ruby/common/Global.hh
src/mem/ruby/common/SConscript
src/mem/ruby/common/Set.cc
src/mem/ruby/eventqueue/RubyEventQueue.cc
src/mem/ruby/filters/BulkBloomFilter.cc
src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh
src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
src/mem/ruby/network/garnet/flexible-pipeline/flit.hh
src/mem/ruby/network/simple/SimpleNetwork.cc
src/mem/ruby/network/simple/Throttle.cc
src/mem/ruby/network/simple/Topology.cc
src/mem/ruby/profiler/Profiler.cc
src/mem/ruby/profiler/Profiler.hh
src/mem/ruby/slicc_interface/RubySlicc_Util.hh
src/mem/ruby/storebuffer/storebuffer.cc
src/mem/ruby/system/RubySystem.py
src/mem/ruby/system/Sequencer.cc
src/mem/ruby/system/System.cc
src/mem/ruby/tester/DeterministicDriver.cc
src/mem/ruby/tester/RaceyDriver.cc
src/mem/ruby/tester/RaceyPseudoThread.cc
src/mem/ruby/tester/test_framework.cc
src/mem/slicc/symbols/StateMachine.py
src/mem/slicc/symbols/Type.py

index e88e8dfb79629554c462bc73f8832ed2556d6f6e..398a18844bc786cef8b787cae1730db2258d233d 100644 (file)
@@ -50,10 +50,6 @@ def define_options(parser):
     parser.add_option("--use-map", action="store_true", default=False)
     parser.add_option("--map-levels", type="int", default=4)
 
-    # ruby debug cmd line options
-    parser.add_option("--ruby-debug", action="store_true", default=False)
-    parser.add_option("--ruby-debug-cycle", type="int", default=1)
-
     parser.add_option("--recycle-latency", type="int", default=10,
                       help="Recycle latency for ruby controller input buffers")
 
@@ -131,10 +127,6 @@ def create_system(options, system, piobus = None, dma_devices = []):
                       network = network,
                       profiler = ruby_profiler,
                       tracer = RubyTracer(),
-                      debug = RubyDebug(filter_string = 'none',
-                                        verbosity_string = 'none',
-                                        protocol_trace = options.ruby_debug,
-                                        start_time = options.ruby_debug_cycle),
                       mem_size = total_mem_size)
 
     ruby.cpu_ruby_ports = cpu_sequencers
index f0f6facd17e5b9256d31044ce35ed68f5eb9ad04..6692a181ea8b9245d26f248e6e85051bea7cab23 100644 (file)
@@ -60,6 +60,7 @@ TraceFlag('LLSC')
 TraceFlag('MMU')
 TraceFlag('MemoryAccess')
 
+TraceFlag('ProtocolTrace')
 TraceFlag('RubyCache')
 TraceFlag('RubyDma')
 TraceFlag('RubyGenerated')
index b6d755b580d3bfb0c84c62d1f31a06d01bf10d01..6567877954ba01fd2adf6f43708e9c2ec9f1a362 100644 (file)
@@ -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) {
index e09abeb7de3c0195eb75e7c4e3fefd68eb3061bb..df04d810c340d61984f75996475a8ad514404a46 100644 (file)
@@ -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 (file)
index 6995ef6..0000000
+++ /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 (file)
index 4183aca..0000000
+++ /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 (file)
index b11a7af..0000000
+++ /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")
index f780707e2a3aead3bd4cce2c2fc73e8f76d69c69..e771de7aebe13b2e896bb285f32f38cf2c3664f1 100644 (file)
@@ -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;
 
index de96c5a6b3bdab436e4c442b88be865c2186f2f0..357825465f6933167416348ef5a60c9123515b69 100644 (file)
@@ -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()
index 2197faae8b386e4e811968374d6ddad4f676aad9..4184b4b5fff2d870a78eed81455059dc49eab296 100644 (file)
@@ -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')
index e747f51594e919adb5d429e61ffc6e90e6b23731..ffc0a3f0771fa41aefbe9f6d3586369726f7287c 100644 (file)
@@ -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"
index eb1f2d32b62beb469cee77a12d0b4e3f121fb889..0e5a68e39650a448a434260ef9585e2b0a2baa34 100644 (file)
@@ -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);
index bf7f5973256770c7e87eb8a01f83dac899d316a5..a5daf4f6b9d338aa4eb5541dcf007a91822bef19 100644 (file)
@@ -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
index 69fc416e6681b7223a509c9c1a6bd88fc626e55b..216234bcba85ad688ee1d7ccd8062e542ab0755d 100644 (file)
@@ -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;
index 0bcefe337b78e0af88d07f9b14c449ab04fe6125..45270ad7ac3c068775e26d006fbf8b08a6a5d830 100644 (file)
@@ -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++) {
index bde8618ee01ebd3330ac73df039ecc4b0a4f210a..f928e04f6fbffd969b422835910fb1d36b46676e 100644 (file)
@@ -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());
index 631c5ab21d54115dd1a541de2be6fb2c16af430f..20ddf86e5b23360d056d85d0733230fe19999e99 100644 (file)
@@ -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;
index 23efaa618d33c7d37f6fdbf3c2c4e203c02697c7..afc841a1b9decb51e5e0eaf32213f18d5d0980f5 100644 (file)
@@ -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;
 
index e0825f3ab309d58e6934ea1f3ad122ba9e1eb8f4..4c072b2702ebe4de96cb619228610edd8565c074 100644 (file)
@@ -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());
index 956b85f1d538ff26a2647cb67880cf93ae9c02aa..3b215b8498a5d615acf39ba2eb24834de54af3eb 100644 (file)
@@ -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;
index 096a8f466e7a71513f55adcfde64cab47516f2ba..55e5b4e78560e96aa5adcba00678a7e77f2c9690 100644 (file)
@@ -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;
 
index 5e6bf99395b8d40f433edc277dce62182d1053e2..d79491ef280e2b35e6302f0d5e3168cfcc881b69 100644 (file)
@@ -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);
index a42d919f76dfd62e15123ce19a08e133cc71f4c6..8596d04f19f7dffe6ff7bbc3f37796e6ca1d4914 100644 (file)
 #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);
index 3a11f059605d0d79ff81640584648725b122b99f..26b5b466d67de5f9bbab7998aa04964800a6734e 100644 (file)
@@ -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;
index 432379449b34c52200be8bbe7006ce615f85c5bc..7fff1525bb8502bf1b998fb32447ba9383f06bb2 100644 (file)
@@ -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;
 }
 
index 25089aaf23d832dc23faae217ab8c3775dc5602a..0486c6510390c723ea8a1fc9a919b38f9e3d0006 100644 (file)
  * 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) {
index 00d02b3df47037d28a3592fd514aa26a565837e2..7878cec639ce37bec793e030d4a7a27ed271f530 100644 (file)
@@ -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",
index 6357980f26d422c4830f56e69c76a98f5d0d7793..a82bcd2af9269b2e62f490e21c9436a894cd6dbc 100644 (file)
@@ -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
 
index a704724ac361a33b0b80b0aeba92759b6282a254..d9c4fa821d3fc072b0ad61ebe0328a07b89f414a 100644 (file)
@@ -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;
 
index 533f58e6f0e8f9b55cba203130aaee820fb04ba4..9b0fe79674a3efdbb96eb02e4d7cf7816b4d356b 100644 (file)
  * 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++) {
 
index a9f7163348797b00606b61fb27276e5800a74d69..bc41b028179d159405a74c09b71f2a8325c7321a 100644 (file)
  * 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];
index cfe4078cf0de97e79ce165cd413914dc1d069bc0..ae01585e6d1751adc8ba1d99bdc8ac8b055dfa82 100644 (file)
@@ -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));
index 2dcace49d0d11544430fa220a4ab2d6002d2df6c..6728f9e08dab34d8f295b6eb152762ad960f1676 100644 (file)
@@ -365,8 +365,6 @@ static void usageInstructions()
     counter++;
   }
 
-  cerr << endl;
-  g_debug_ptr->usageInstructions();
   cerr << endl;
 
   exit(1);
index da6bc681c9494ef8c91094b951b8fa979df4e124..1452847261c6e1765b0bef43fb4b4d25e552d64f 100644 (file)
@@ -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()
index d6e156908db5e26fb07fb7d796003833e5ba8266..e521d544fd08ceacc9aa6e18ddd9f47f42f5beb7 100644 (file)
@@ -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>