Major documentation update for 570 F04.
authorSteve Reinhardt <stever@eecs.umich.edu>
Thu, 28 Oct 2004 02:37:52 +0000 (22:37 -0400)
committerSteve Reinhardt <stever@eecs.umich.edu>
Thu, 28 Oct 2004 02:37:52 +0000 (22:37 -0400)
sim/main.cc:
    Get rid of default.ini processing... it's kind of a pain and nobody uses it.
util/tracediff:
    Add comments on usage.

--HG--
extra : convert_revision : b811288b2945585d60685684ea88c99d1913fbf3

sim/main.cc
util/tracediff

index 76507bbd8506b31e3bb75078d67fa9e2a9f337ec..46738a4c71d731551ea8b3d6a6fa5077954ef783 100644 (file)
@@ -111,12 +111,15 @@ static void
 showBriefHelp(ostream &out)
 {
     out << "Usage: " << myProgName
-         << " [-hnu] [-Dname[=def]] [-Uname] [-I[dir]] "
-         << "[--<section>:<param>=<value>] [<config file> ...]" << endl
-         << "   -h: print long help (including parameter listing)" << endl
-         << "   -n: don't load default.ini" << endl
-         << "   -u: don't quit on unreferenced parameters" << endl
-         << "   -D,-U,-I: passed to cpp for preprocessing .ini files" << endl;
+        << " [-hnu] [-Dname[=def]] [-Uname] [-I[dir]] "
+        << "<config-spec> [<config-spec> ...]\n"
+        << "[] [<config file> ...]\n"
+        << "   -h: print long help (including parameter listing)\n"
+        << "   -u: don't quit on unreferenced parameters\n"
+        << "   -D,-U,-I: passed to cpp for preprocessing .ini files\n"
+        << "   <config-spec>: config file name (.ini or .py) or\n"
+        << "                  single param (--<section>:<param>=<value>)"
+        << endl;
 }
 
 /// Show verbose help message.  Includes parameter listing from
@@ -212,27 +215,6 @@ echoCommandLine(int argc, char **argv, ostream &out)
 ///
 static IniFile simConfigDB;
 
-/// Check for a default.ini file and load it if necessary.
-static void
-handleDefaultIni(bool &loadIt, vector<char *> &cppArgs)
-{
-    struct stat sb;
-
-    if (loadIt) {
-        if (stat("default.ini", &sb) == 0) {
-            if (!simConfigDB.loadCPP("default.ini", cppArgs)) {
-                cout << "Error processing file default.ini" << endl;
-                exit(1);
-            }
-        }
-
-        // set this whether it actually was found or not, so we don't
-        // bother to check again next time
-        loadIt = false;
-    }
-}
-
-
 /// M5 entry point.
 int
 main(int argc, char **argv)
@@ -254,21 +236,13 @@ main(int argc, char **argv)
 
     vector<char *> cppArgs;
 
-    // Should we use default.ini if it exists?  By default, yes.  (Use
-    // -n to override.)
-    bool loadDefaultIni = true;
-
     // Should we quit if there are unreferenced parameters?  By
     // default, yes... it's a good way of catching typos in
     // section/parameter names (which otherwise go by silently).  Use
     // -u to override.
     bool quitOnUnreferenced = true;
 
-    // Parse command-line options.  The tricky part here is figuring
-    // out whether to look for & load default.ini, and if needed,
-    // doing so at the right time w.r.t. processing the other
-    // parameters.
-    //
+    // Parse command-line options.
     // Since most of the complex options are handled through the
     // config database, we don't mess with getopts, and just parse
     // manually.
@@ -286,17 +260,6 @@ main(int argc, char **argv)
                 showLongHelp(cerr);
                 exit(1);
 
-              case 'n':
-                // -n: don't load default.ini
-                if (!loadDefaultIni) {
-                    cerr << "Warning: -n option needs to precede any "
-                         << "explicit configuration file name " << endl
-                         << "         or command-line configuration parameter."
-                         << endl;
-                }
-                loadDefaultIni = false;
-                break;
-
               case 'u':
                 // -u: don't quit on unreferenced parameters
                 quitOnUnreferenced = false;
@@ -317,11 +280,6 @@ main(int argc, char **argv)
               case '-':
                 // command-line configuration parameter:
                 // '--<section>:<parameter>=<value>'
-
-                // Load default.ini if necessary -- see comment in
-                // else clause below.
-                handleDefaultIni(loadDefaultIni, cppArgs);
-
                 if (!simConfigDB.add(arg_str + 2)) {
                     // parse error
                     ccprintf(cerr,
@@ -350,13 +308,6 @@ main(int argc, char **argv)
                 (ext_loc != string::npos) ? filename.substr(ext_loc) : "";
 
             if (ext == ".ini") {
-                // If we haven't loaded default.ini yet, and we want to,
-                // now is the time.  Can't do it sooner because we need to
-                // look for '-n', can't do it later since we want
-                // default.ini loaded first (so that any other settings
-                // override it).
-                handleDefaultIni(loadDefaultIni, cppArgs);
-
                 if (!simConfigDB.loadCPP(filename, cppArgs)) {
                     cprintf("Error processing file %s\n", filename);
                     exit(1);
@@ -375,10 +326,6 @@ main(int argc, char **argv)
         }
     }
 
-    // Final check for default.ini, in case no config files or
-    // command-line config parameters were given.
-    handleDefaultIni(loadDefaultIni, cppArgs);
-
     // The configuration database is now complete; start processing it.
 
     // Parse and check all non-config-hierarchy parameters.
index ed35d5dd73cea23bbf8495761cb3edc5d0ce7685..a95ce8b824a9ed127f09f445dc8e17e1ce64e2b4 100755 (executable)
 #
 # Authors: Steve Reinhardt
 
-# Script to simplify using rundiff on trace outputs from two invocations of m5.
+# Script to simplify using rundiff on trace outputs from two
+# invocations of m5.
+#
+# Note that you need to enable some trace flags in the args in order
+# to do anything useful!
+#
+# If you want to pass different arguments to the two instances of m5,
+# you can embed them in the simulator arguments like this:
+#
+# % tracediff "m5.opt --foo:bar=1" "m5.opt --foo:bar=2" [common args]
+#
 
 if (@ARGV < 2) {
-    die "Usage: tracediff sim1 sim2 [args...]\n";
+    die "Usage: tracediff sim1 sim2 [--trace:flags=X args...]\n";
 }
 
 # First two args are the two simulator binaries to compare
@@ -41,6 +51,10 @@ $sim2 = shift;
 # be given to both invocations
 $simargs = '"' . join('" "', @ARGV) . '"';
 
+# Redirect config output to cout so that gets diffed too (in case
+# that's the source of the problem).
+$simargs += " --Universe:config_output_file=cout";
+
 $cmd1 = "$sim1 $simargs --stats:text_file=tracediff-$$-1.stats 2>&1 |";
 $cmd2 = "$sim2 $simargs --stats:text_file=tracediff-$$-2.stats 2>&1 |";