Major documentation update for 570 F04.
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
This commit is contained in:
parent
be0184b463
commit
40c665dd7b
2 changed files with 26 additions and 65 deletions
71
sim/main.cc
71
sim/main.cc
|
@ -112,11 +112,14 @@ showBriefHelp(ostream &out)
|
||||||
{
|
{
|
||||||
out << "Usage: " << myProgName
|
out << "Usage: " << myProgName
|
||||||
<< " [-hnu] [-Dname[=def]] [-Uname] [-I[dir]] "
|
<< " [-hnu] [-Dname[=def]] [-Uname] [-I[dir]] "
|
||||||
<< "[--<section>:<param>=<value>] [<config file> ...]" << endl
|
<< "<config-spec> [<config-spec> ...]\n"
|
||||||
<< " -h: print long help (including parameter listing)" << endl
|
<< "[] [<config file> ...]\n"
|
||||||
<< " -n: don't load default.ini" << endl
|
<< " -h: print long help (including parameter listing)\n"
|
||||||
<< " -u: don't quit on unreferenced parameters" << endl
|
<< " -u: don't quit on unreferenced parameters\n"
|
||||||
<< " -D,-U,-I: passed to cpp for preprocessing .ini files" << endl;
|
<< " -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
|
/// Show verbose help message. Includes parameter listing from
|
||||||
|
@ -212,27 +215,6 @@ echoCommandLine(int argc, char **argv, ostream &out)
|
||||||
///
|
///
|
||||||
static IniFile simConfigDB;
|
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.
|
/// M5 entry point.
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
|
@ -254,21 +236,13 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
vector<char *> cppArgs;
|
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
|
// Should we quit if there are unreferenced parameters? By
|
||||||
// default, yes... it's a good way of catching typos in
|
// default, yes... it's a good way of catching typos in
|
||||||
// section/parameter names (which otherwise go by silently). Use
|
// section/parameter names (which otherwise go by silently). Use
|
||||||
// -u to override.
|
// -u to override.
|
||||||
bool quitOnUnreferenced = true;
|
bool quitOnUnreferenced = true;
|
||||||
|
|
||||||
// Parse command-line options. The tricky part here is figuring
|
// Parse command-line options.
|
||||||
// out whether to look for & load default.ini, and if needed,
|
|
||||||
// doing so at the right time w.r.t. processing the other
|
|
||||||
// parameters.
|
|
||||||
//
|
|
||||||
// Since most of the complex options are handled through the
|
// Since most of the complex options are handled through the
|
||||||
// config database, we don't mess with getopts, and just parse
|
// config database, we don't mess with getopts, and just parse
|
||||||
// manually.
|
// manually.
|
||||||
|
@ -286,17 +260,6 @@ main(int argc, char **argv)
|
||||||
showLongHelp(cerr);
|
showLongHelp(cerr);
|
||||||
exit(1);
|
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':
|
case 'u':
|
||||||
// -u: don't quit on unreferenced parameters
|
// -u: don't quit on unreferenced parameters
|
||||||
quitOnUnreferenced = false;
|
quitOnUnreferenced = false;
|
||||||
|
@ -317,11 +280,6 @@ main(int argc, char **argv)
|
||||||
case '-':
|
case '-':
|
||||||
// command-line configuration parameter:
|
// command-line configuration parameter:
|
||||||
// '--<section>:<parameter>=<value>'
|
// '--<section>:<parameter>=<value>'
|
||||||
|
|
||||||
// Load default.ini if necessary -- see comment in
|
|
||||||
// else clause below.
|
|
||||||
handleDefaultIni(loadDefaultIni, cppArgs);
|
|
||||||
|
|
||||||
if (!simConfigDB.add(arg_str + 2)) {
|
if (!simConfigDB.add(arg_str + 2)) {
|
||||||
// parse error
|
// parse error
|
||||||
ccprintf(cerr,
|
ccprintf(cerr,
|
||||||
|
@ -350,13 +308,6 @@ main(int argc, char **argv)
|
||||||
(ext_loc != string::npos) ? filename.substr(ext_loc) : "";
|
(ext_loc != string::npos) ? filename.substr(ext_loc) : "";
|
||||||
|
|
||||||
if (ext == ".ini") {
|
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)) {
|
if (!simConfigDB.loadCPP(filename, cppArgs)) {
|
||||||
cprintf("Error processing file %s\n", filename);
|
cprintf("Error processing file %s\n", filename);
|
||||||
exit(1);
|
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.
|
// The configuration database is now complete; start processing it.
|
||||||
|
|
||||||
// Parse and check all non-config-hierarchy parameters.
|
// Parse and check all non-config-hierarchy parameters.
|
||||||
|
|
|
@ -27,10 +27,20 @@
|
||||||
#
|
#
|
||||||
# Authors: Steve Reinhardt
|
# 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) {
|
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
|
# First two args are the two simulator binaries to compare
|
||||||
|
@ -41,6 +51,10 @@ $sim2 = shift;
|
||||||
# be given to both invocations
|
# be given to both invocations
|
||||||
$simargs = '"' . join('" "', @ARGV) . '"';
|
$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 |";
|
$cmd1 = "$sim1 $simargs --stats:text_file=tracediff-$$-1.stats 2>&1 |";
|
||||||
$cmd2 = "$sim2 $simargs --stats:text_file=tracediff-$$-2.stats 2>&1 |";
|
$cmd2 = "$sim2 $simargs --stats:text_file=tracediff-$$-2.stats 2>&1 |";
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue