Commit graph

148 commits

Author SHA1 Message Date
Nathan Binkert
3a0dfc43d1 make the interaction of the stats event stuff with the
database work better.

base/stats/events.cc:
    properly connect to the database
base/stats/mysql.cc:
    cleanup the event stuff too

--HG--
extra : convert_revision : f05fd6456decc9c4f95beff5c12497439e45f886
2004-05-23 12:53:34 -04:00
Nathan Binkert
fee1e1ec0a Add support for event tracking. Esentially this puts a sequence
of events into the database for a given run.

base/stats/mysql.cc:
base/stats/mysql.hh:
    reorganize mysql stat stuff so that other stuff can use
    the same database connection
base/traceflags.py:
    Trace flag to print out events

--HG--
extra : convert_revision : 4d502532ed0ba40b42baefee46b2c99defcc620c
2004-05-21 13:57:44 -04:00
Nathan Binkert
b4405682d9 Change the namespace Statistics to Stats
--HG--
extra : convert_revision : 3084b292bbe2e8a392af8e99a31763ca0b0a9467
2004-05-21 13:03:17 -04:00
Lisa Hsu
73501ea38f push the new system_events file that i was prevented from pushing way back when cable died. :(. also, fix the printing of binned stats, it was printing hex values instead of bin names.
base/stats/text.cc:
    fix the printing of binned stats.

--HG--
extra : convert_revision : 3a04d004f5ea1d90536f7102fce946fd6dd34613
2004-05-17 13:22:19 -04:00
Nathan Binkert
a4d7bb113a Make a new stat type of Value which is a scalar stat that
proxies for a real C/C++ scalar value or scalar functor.
This replaces the scalar() and functor() terms that were
previously used in formulas.  This helps when dumping
statistics because the formulas are not supposed to change.

cpu/base_cpu.cc:
    Add a number of cycles stat to the cpu object that tracks the
    number of cycles that the cpu has executed.  This starts to pave
    the way for cpu cycles being different from event ticks.
cpu/base_cpu.hh:
    provide a functor for calculating all simulated instructions
    of all CPUs and a virtual function for determining that number.
    To deal with the change from functor() to Value::functor()
cpu/simple_cpu/simple_cpu.cc:
    simTicks -> numCycles
    numInsts is now a real Scalar stat, not a Formula
cpu/simple_cpu/simple_cpu.hh:
    numInsts is now a real Scalar stat, not a Formula
    count all instructions
sim/stat_control.cc:
    simInsts, simTicks, hostMemory, and hostSeconds are no
    longer Statistics::Formula but rather Statistics::Value
    add new stat for tick frequency
sim/stats.hh:
    don't need everything to be extern.
test/Makefile:
    Make stuff work a tad bit better
test/stattest.cc:
    test out Statistics::Value

--HG--
extra : convert_revision : c812e8baa2b17c08abf3a68ed1e1125dc6f2cfb4
2004-05-12 15:49:01 -04:00
Nathan Binkert
24715f50ac add support for sticking generated files in the build directory
instead of with the source code.  This will hopefully be especially
useful when we're generating dozens of files when we flesh out the
object description stuff.
remove generated files from the source tree.  python is required
to build now.

base/trace.hh:
    no need for the underscore in the name
base/traceflags.py:
    clean up code

--HG--
extra : convert_revision : f68af8c3460eb7e73a1defaea3081a02ad7db33c
2004-05-06 12:09:54 -04:00
Nathan Binkert
25a358983a Major stats package cleanup
Add support for generic visitors for stats and use them
to implement independent output functions.

Support for mysql output and some initial code for hacking
on mysql output with python

arch/alpha/pseudo_inst.cc:
base/hybrid_pred.cc:
base/hybrid_pred.hh:
base/sat_counter.cc:
base/sat_counter.hh:
cpu/simple_cpu/simple_cpu.cc:
kern/tru64/tru64_events.cc:
sim/main.cc:
sim/process.cc:
sim/process.hh:
sim/sim_events.cc:
sim/sim_object.cc:
sim/system.hh:
    update for changes in stats package
base/statistics.cc:
    move the python output code to base/stats/puthon.(cc|hh)
    and reimplement it as a visitor.

    move the text output code to base/stats/text.(cc|hh) and
    reimplement it as a visitor.

    move the database stuff into base/stats/statdb.(cc|hh) and
    get rid of the class.  Put everything as globals in the
    Statistics::Database namespace.

    allocate unique ids for all stats.

    directly implement the check routine and get rid of the
    various dumping routines since they're now in separate files.

    make sure that no two stats have the same name

    clean up some loops
base/statistics.hh:
    major changes to the statistics package again

    lots of code was factored out of statistics.hh into several
    separate files in base/stats/ (this will continue)

    There are now two Stat package types Result and Counter that
    are specified to allow the user to keep the counted type
    separate from the result type.  They are currently both doubles
    but that's an experiment.  There is no more per stat ability to
    set the type.  Statistics::Counter is not the same as Counter!

    Implement a visitor for statistics output so that new output
    types can be implemented independently from the stats package
    itself.

    Add a unique id to each stat so that it can be used to keep
    track of stats more simply.  This number can also be used in
    debugging problems with stats.

    Tweak the bucket size stuff a bit to make it work better.

    fixed VectorDist size bug
cpu/memtest/memtest.cc:
    Fix up for changes in stats package
    Don't use value() since it doesn't work with binning.  If you
    want a number as a stat, and to use it in the program itself,
    you really want two separate variables, one that's a stat,
    and one that's not.
cpu/memtest/memtest.hh:
    Fix up for changes in stats package
test/Makefile:
    Try to build stuff now that directories matter
test/stattest.cc:
    test all new output types
    choose which one with command line options

--HG--
extra : convert_revision : e3a3f5f0828c67c0e2de415d936ad240adaddc89
2004-05-04 17:01:00 -04:00
Nathan Binkert
3a12b6d7ce Function for getting username
--HG--
extra : convert_revision : 50c0bf7b083e780071e85fabdcd6f91a96f4b2e3
2004-05-04 12:23:57 -04:00
Steve Reinhardt
aeb8e8ccb7 Minor cleanup from building & diffing behavior
on various platforms.

base/hashmap.hh:
    gcc on Alpha doesn't always define __LP64__,
    even though it arguably should.
cpu/exec_context.cc:
    Clear register file on non-full-system too (even though
    it typically gets overwritten by the initial regs from
    the Process object).
sim/process.cc:
    Clear initial register copy in Process object.
    Not all regs get initialized when the executable is loaded.

--HG--
extra : convert_revision : f1fe4734a5ea81331d70994cb5284b1e9db0dceb
2004-03-24 23:29:10 -08:00
Nathan Binkert
2ae06f42b3 Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : b0af82ea6028d1f7f6756edf266945732c25ad52
2004-03-24 05:16:13 -05:00
Nathan Binkert
8b0f69166e Hacks to make the libelf stuff work in openbsd.
base/loader/elf_object.cc:
    The symbol versioning stuff screws up OpenBSD.  We don't need it anyway

--HG--
extra : convert_revision : 736d5c1baaf7f5727665f84cc08e3781e193b389
2004-03-24 05:13:49 -05:00
Erik Hallnor
6cb02394c0 Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : d950120ed0f96421bb953a96db94fb4aecf2241d
2004-03-24 04:41:27 -05:00
Erik Hallnor
81882c0d10 A few memory system performance enhancements.
base/compression/lzss_compression.cc:
base/compression/lzss_compression.hh:
    Rework for better performance

--HG--
extra : convert_revision : b13d706e0e23cbe7122b611258354c66cf5f3c70
2004-03-24 04:41:19 -05:00
Nathan Binkert
2484aeaee7 Minor changes to Time
base/time.cc:
base/time.hh:
    Don't set the current time in the constructor.  Use a flag and
    make the default to not set the time.
    Change reset() to set().  Dunno.  Just seems right.

--HG--
extra : convert_revision : 5a3b09ed30376d4863b45b2bae551ba1c3aff8e1
2004-03-24 04:35:48 -05:00
Lisa Hsu
f3861d0cc7 Overall gist of this is to 'dynamicize' the tracking of functions so you can choose them at the .ini stage rather than at compile time.
to do it:
in .ini file set binned_fns=foo null bar foo

what this says is, track foo when it is called by null (i.e. anything).  bin bar only when it is called by foo.
essentially, if you have a path of functions to track, the 0th, 2nd, 4th fn listed are the fns to track, and the 1st, 3rd, 5th are their respective callers.

base/statistics.hh:
    turn it back to FS_MEASURE since we already have a build in place
kern/tru64/tru64_events.cc:
    remove FS_MEASURE #defs.  add more DPRINTF's.  manage an anomaly that happens when tracking idle_thread.
kern/tru64/tru64_events.hh:
    remove FS_MEASURE #defs
kern/tru64/tru64_system.cc:
    make DumpState print all the time, but only with DPRINTF.  add a new parameter to tru64System a vector<string> binned_fns, to read in from .ini file.  now all this binning stuff is dynamically generated.
kern/tru64/tru64_system.hh:
    remove all static binning stuff, add support for dynamic
sim/system.cc:
    change nonPath bin name to Kernel, remove FS_MEASURE
sim/system.hh:
    change nonPath to Kernel

--HG--
extra : convert_revision : 9ee813c0a64273bab4125815b7bc8145c5897ec1
2004-03-04 21:57:09 -05:00
Nathan Binkert
0a3948bcfd Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : b3fd8bcfbaf1e9d09bac8c1403944df36dde671e
2004-02-29 20:25:52 -05:00
Nathan Binkert
ee96799519 Initial cleanup pass of lisa's function call tracking
code.

base/statistics.hh:
    We're getting rid of FS_MEASURE, but for now, we're going
    to still use a compile time flag to turn on and off binning
    of statistics.  (The flag is STATS_BINNING)
cpu/exec_context.cc:
cpu/exec_context.hh:
kern/tru64/tru64_system.cc:
    get rid of FS_MEASURE
cpu/simple_cpu/simple_cpu.cc:
    yank the function call tracking code out of the cpu and move
    it into the software context class itself.
kern/tru64/tru64_system.hh:
    get rid of FS_MEASURE
    move all of the tacking stuff to the same place.
sim/system.hh:
    cleanup

--HG--
extra : convert_revision : 73d3843afe1b3ba0d5445421c39c1148d3f4e7c0
2004-02-29 20:22:32 -05:00
Nathan Binkert
45f377bcd8 more debugging support
base/trace.cc:
    code to set/clear/print trace flags from the debugger.

--HG--
extra : convert_revision : f2a549e9af05c4a177186b9f1792a0493ce15c95
2004-02-29 19:29:30 -05:00
Nathan Binkert
b678152277 Fix stats debugging and always compile it in for the
debug target

--HG--
extra : convert_revision : aa16e6256a056e6df9affec6fd973e62e812e23c
2004-02-25 16:12:48 -05:00
Nathan Binkert
a51cec6669 Make it so dump takes a void *
base/trace.cc:
base/trace.hh:
    take a void * for the raw data

--HG--
extra : convert_revision : fc336dc82b4d533c3a0f319977074f26342445ea
2004-02-20 15:19:55 -05:00
Nathan Binkert
da8a702212 - Whack unused code
-  Make the MemoryController use address ranges (via Range) instead
of an address and a mask

base/remote_gdb.cc:
    reflect name change
dev/alpha_access.h:
    better include
dev/alpha_console.cc:
    -  FunctionalMemory no longer takes care of mapping my address into
    the proper address space.  It must be done locally.
    -  the memory controller no longer uses a mask, but a size, and the
    size is determined by the device, not the .ini file
    -  fix up address calculations to reflect the removal of a mask
    -  PhysicalMemory::getSize() -> PhysicalMemory::size()
dev/alpha_console.hh:
    -  FunctionalMemory no longer takes care of mapping my address into
    the proper address space.  It must be done locally.
    -  the memory controller no longer uses a mask, but a size, and the
    size is determined by the device, not the .ini file
    -  fix up address calculations to reflect the removal of a mask
    -  get rid of MmapDevice and inherit from FunctionalMemory

--HG--
extra : convert_revision : e3a65c9debf6f899632d62c70781cbdc2826616b
2004-02-09 10:49:48 -05:00
Nathan Binkert
087334bfe5 Merge zizzer.eecs.umich.edu:/m5/Bitkeeper/m5
into zizzer.eecs.umich.edu:/.automount/ziff/z/binkertn/research/m5/memory

--HG--
extra : convert_revision : 9f385ee5b6958373a9a1bc600eb3e5e8b7987f38
2004-02-09 10:36:32 -05:00
Nathan Binkert
6ece3a7e59 random fixes
base/range.hh:
    Add a constructor that takes the beginning and end as arguments
    size returns T not a bool
    quick make_range() function that is a shortcut for making a range
    kinda like make_pair()

    quick formatting fix

--HG--
extra : convert_revision : 94b1d462710e6fb55e72e1da2ad8c46993af1ef7
2004-02-09 09:04:52 -05:00
Erik Hallnor
88c5bd695f Merge ehallnor@zizzer:/bk/m5 into zazzer.eecs.umich.edu:/z/ehallnor/m5
--HG--
extra : convert_revision : b24970f5bbf817d6ef581114178e27f2ab7c3459
2004-02-08 17:27:08 -05:00
Erik Hallnor
9c7bec74b1 Separate template definitions and instantiations into *_impl.hh and *.cc. Eventually the *.cc fils should be generate by our super-duper python script.
base/compression/null_compression.hh:
    Need some includes.

--HG--
extra : convert_revision : caf52320f6f6ff255e8a93817419ad13ad44224f
2004-02-08 17:26:27 -05:00
Nathan Binkert
de285ff2a0 Totally rework the Range class. Now the range is from [start, end)
to be consistent with the way that the stl works.  It also makes
lots of other stuff easier.  (Maybe those guys were smart?)
Overload the various comparison operators so that you can test
for overlapping of ranges, etc.

base/range.hh:
    Totally rework the Range class.  Now the range is from [start, end)
    to be consistent with the way that the stl works.  It also makes
    lots of other stuff easier.  (Maybe those guys were smart?)
    Overload the various comparison operators so that you can test
    for overlapping of ranges, etc.

    make parse function private and offer operator= instead
    isValid -> valid
    and for you erik, I add comments
test/Makefile:
    add range.o
test/rangetest.cc:
    better tests

--HG--
extra : convert_revision : dd58720aa3d02f20b03e933f2eaa3320c82bb27a
2004-02-07 01:16:50 -05:00
Steve Reinhardt
98948b2e57 More reformatting of reference parameter declarations.
The last change only caught the ones with types that
started with capitals.  This pass catches the rest
(mostly STL and uint*_t types).

base/cprintf_formats.hh:
cpu/simple_cpu/simple_cpu.cc:
sim/serialize.cc:
sim/serialize.hh:
    Change "foo_t& foo" to "foo_t &foo".

--HG--
extra : convert_revision : fc7f7425db2aef33e490f952b5ce74c8c36d0d41
2004-02-04 11:16:30 -08:00
Nathan Binkert
b1221a3395 Remote debugging cleanup and internal debugging support
base/kgdb.h:
    Remove flags that aren't used
base/remote_gdb.cc:
    Better debugging:
    - Give each class a name() function so that the trace infrastructure
    knows the correct object name.
    - Make the remote debugger capable of detach.
    - Split out the RGDB trace flag into a bunch of specific flags.
    Remove dead code
    Add a new trap type
base/remote_gdb.hh:
    Add a name() to the various objects for the trace system
base/trace.hh:
    don't need a using directive
    add DPRINTFNR: debug printf, no flag, raw output
kern/tru64/tru64_system.cc:
    use the INT trap type instead of IF

--HG--
extra : convert_revision : 25e610216c6f43d5d328651bba915f71bade059e
2004-02-03 10:50:04 -05:00
Steve Reinhardt
548b4a1cb0 Change "Foo& foo" declarations to "Foo &foo".
This primarily to be internally consistent (sometimes we used one,
sometimes the other, even within the same line of code!).
I picked the latter to be symmetric with "Foo *foo".

base/cprintf_formats.hh:
base/range.hh:
base/refcnt.hh:
base/res_list.hh:
base/statistics.hh:
base/str.hh:
cpu/exec_context.hh:
cpu/simple_cpu/simple_cpu.cc:
cpu/simple_cpu/simple_cpu.hh:
sim/serialize.cc:
sim/serialize.hh:
sim/syscall_emul.hh:
    Change "Foo& foo" declarations to "Foo &foo".

--HG--
extra : convert_revision : ca1b0e85a578b539214bda3b8d61ac23792f2e87
2004-02-02 15:55:35 -08:00
Steve Reinhardt
956aff1291 More conversions of ref-counted parameters to references:
Statistics::NodePtr, StaticInstPtr, ethernet PacketPtr.

base/statistics.hh:
    Change NodePtr parameters to Nodeptr &.
cpu/exetrace.hh:
    Change StaticInstPtr parameters to StaticInstPtr &.
dev/etherbus.cc:
dev/etherbus.hh:
dev/etherdump.cc:
dev/etherdump.hh:
dev/etherint.hh:
dev/etherlink.cc:
dev/etherlink.hh:
dev/ethertap.cc:
dev/ethertap.hh:
    change PacketPtr parameters to PacketPtr &.

--HG--
extra : convert_revision : a778efdca33b0ec5beb76cf47db0e9e4728897ee
2004-02-02 15:45:22 -08:00
Nathan Binkert
cb35f819c5 delete the data in the arglist when the list is destroyed,
not while printing out the data.  This allows the data
to be dumped more than once.

base/cprintf.hh:
    need a destructor

--HG--
extra : convert_revision : 235e9fe24488ac4c0ae1b562ef9fa6e0bd1e899c
2004-01-29 17:44:08 -05:00
Nathan Binkert
2db1b6ea1b provide an output stream for simulator output. (This takes place of the
statStream catchall that we had before)
Also provide an optional output directory that multiple simulator output
files can be written to.
Make most output files use the output directory

base/misc.cc:
    send warnings to the outputStream as well
base/trace.cc:
    dprintf_stream defaults to cerr
dev/console.cc:
    use the output directory for the console output if it exists
dev/etherdump.cc:
    dump to the output directory if it exists
sim/builder.cc:
sim/builder.hh:
    move constructor and destructor to .cc file
    use a function to get the stream that the builder dumps its
    output to, and create a separate file in the output directory
    if able
sim/main.cc:
    statStream -> outputStream
sim/serialize.cc:
    dump checkpoints to the output directory if specified
sim/universe.cc:
    provide an output stream for simulator output.  (This takes place of the
    statStream catchall that we had before)
    Also provide an optional output directory that multiple simulator output
    files can be written to.

--HG--
extra : convert_revision : 03abce20edbbf7ec19c9ddd8d69ec8485c383532
2004-01-29 00:38:18 -05:00
Nathan Binkert
dc70ce3a60 cleanup on aisle 5
base/statistics.cc:
    dead code

--HG--
extra : convert_revision : 8f3fd638acdf7a704475ea90b607a3225a3c174d
2004-01-29 00:36:22 -05:00
Nathan Binkert
801c46d250 a bunch of warning fixes
arch/alpha/isa_desc:
    don't say warn: Warning:
base/misc.cc:
    avoid printing two newlines in a row
sim/main.cc:
    print out a message just before we enter the event queue

--HG--
extra : convert_revision : 2a824d4b67661903fc739a0fb0759aa91d72382c
2004-01-27 17:56:23 -05:00
Steve Reinhardt
946b481831 Set LIBELF_LINUX to 0 to build on zax. Builds
but did not test... however the only thing this
affects in libelf is the header, so I don't expect
any functional problems.

base/loader/elf_object.cc:
    Set LIBELF_LINUX to 0 to build on zax.

--HG--
extra : convert_revision : d024b33deff6fc8ea6f1d465f76dc8d9d63254ab
2004-01-20 13:53:18 -05:00
Nathan Binkert
c9f2aa8c18 Make each stat take up one full line. This allows us to use grep
to find and remove stats from the files so we can put less
burden on the python interpreter.

base/statistics.cc:
    Manually insert newlines into the python code so that we now have one
    stat per line.  (Make it so we can use grep -v to remove stats)
test/stattest.cc:
    update to reflect changes in how python is accessed

--HG--
extra : convert_revision : 554edcf9c795b33d00d3d15554447c8accebebfa
2004-01-15 16:33:58 -05:00
Steve Reinhardt
9f2aae4e28 Fixes and cleanup to elf loader code.
base/loader/elf_object.cc:
    - Use program header instead of section headers for loading.
    The old code doesn't work for Alpha/Linux user binaries.

    - Deal properly with single-segment ELF executables (e.g. kernels)...
    haven't tested this but it looks like it matches the functionality
    of the patch the L4::Pistachio guys sent.

    - Factor load symbol code into one common function.

    - Some formatting to match style conventions.

    - Only include libelf stuff in .cc file, not .hh.
base/loader/elf_object.hh:
    - Use program header instead of section headers for loading.
    The old code doesn't work for Alpha/Linux user binaries.

    - Factor load symbol code into one common function.

    - Only include libelf stuff in .cc file, not .hh.

--HG--
extra : convert_revision : 782062d09d43083b01e65cd645c941f49c27640a
2004-01-14 22:30:16 -08:00
Nathan Binkert
b4301c652c Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : bff2fb78e205f327ce8d04f3ae1b2352857ab824
2004-01-11 21:22:33 -05:00
Steve Reinhardt
7e07aa9300 Fix cprintf bug, plus minor cleanup & better error messages.
base/cprintf.cc:
    Fix bug where a call with a format string with no specifiers
    but one or more arguments would crash.  Old code tried to print
    extra args using last available format, but in this case there
    was no format, hence the problem.  Now we just print "<extra arg>"
    for each extra arg.

    Also reorganized code a bit to make scope of fmt variable
    match the scope in which you can be confident it's meaningful.
base/cprintf.hh:
    Print specific error message instead of calling format_invalid().
base/cprintf_formats.hh:
    Clear Format object in constructor.
    Use specific error messages instead of format_invalid() function.

--HG--
extra : convert_revision : 87d5e902174e3eb2583131d056742af166540db0
2004-01-11 15:09:27 -08:00
Ali Saidi
98613950a3 Fixed another small libelf problem, everything should work now, on any
machine.

base/loader/elf_object.hh:
    put #defines for libelf that normally arn't defined so that -Wundef
    doesn't cause problems.

--HG--
extra : convert_revision : fa2de6aa94c7ddbaa59990db4473402b0df7d93a
2004-01-08 16:35:47 -05:00
Nathan Binkert
a3691fe09e Merge zizzer.eecs.umich.edu:/bk/m5
into ziff.eecs.umich.edu:/z/binkertn/research/m5/latest

--HG--
extra : convert_revision : b7411b25ae9e3a546996aec59e1a67cbe728da85
2004-01-08 12:25:49 -05:00
Ali Saidi
14b4119aaf Changed elf_object.* to use libelf for reading elf files. The makefile
and setup filed had to be modified to build libelf. The ext repository
MUST exist in the directory below m5!

base/loader/elf_object.cc:
base/loader/elf_object.hh:
    now uses libelf to read elf binaries

--HG--
extra : convert_revision : b70511f5379edf35d639f3bb64b786cb0bd180af
2004-01-07 19:46:45 -05:00
Nathan Binkert
9dcfdce732 Improve python output support
fix some bugs

base/statistics.cc:
    -  Move the python dump stream stuff into the statistics package
    because it needs more control over the file when there
    are multiple dumps
    -  add a subname to the output
    -  make all of the stats a list instead of variable arguments to
    get around the 255 argument limit
    -  the description needs to be triple quoted
    -  avoid errors for formulas that don't have any root element
    set up.
base/statistics.hh:
    -  get rid of mode_python and just separate python dumping from
    regular stats dumping
    -  fix a huge bug that made a Formula use a VectorData instead
    of a FormulaData

--HG--
extra : convert_revision : 7303cff3ccdcc3d306ab17375219fc7fecac7e5e
2003-12-28 12:48:13 -05:00
Nathan Binkert
55d94ba2e8 Add python output support to the statistics package!
base/statistics.cc:
base/statistics.hh:
    -  add python output support to the statistics package
    -  each statistic type has a python() member function that takes
    a Python object to which the stat will output it's python
    representation
    -  add getStatData hack so that the StatData pointer can be looked
    up by the proxies with their opaque pointer to the stat they're
    proxying for.  This is necessary because the proxy really proxies
    for the bin and not the stat.  Be nice to figure out how to get
    rid of it.  The hack is used so that the str() function of a
    proxy can properly name itself.
    -  To print formula stats, every stat has a str() function that
    converts that stat to a string that python can execute to get
    a value.
test/Makefile:
    add python stuff
test/stattest.cc:
    add more tests and test python support

--HG--
extra : convert_revision : 513814ab0a125606897f2c57dccdf22879032ef9
2003-12-24 03:25:36 -05:00
Nathan Binkert
3f5ca9e5e8 initial basic hooks into the stats package to output python code
python dumping takes a name for the output data

base/statistics.cc:
base/statistics.hh:
    initial basic hooks into the stats package to output python code

--HG--
extra : convert_revision : 37f52dc03df50aa90346dc9ca341f961e7e855e8
2003-12-24 02:35:33 -05:00
Nathan Binkert
4bdf46c819 Random cleanup
base/statistics.hh:
    -  use a typedef to get at bin_t
    -  clean up template declaration
    -  public access to typedefs

--HG--
extra : convert_revision : 0650c5a1cba51c7af04790498af0d354884be0ee
2003-12-24 02:25:26 -05:00
Nathan Binkert
2b2c8388a2 formatting for consistency
--HG--
extra : convert_revision : f859244880dcc2be9424edaac0c73adfd467221e
2003-12-24 02:22:43 -05:00
Nathan Binkert
263886bc83 more readable formatting
--HG--
extra : convert_revision : 99bd142099482dbd04645a0f44ac63d2467b883c
2003-12-24 02:17:20 -05:00
Nathan Binkert
fad8b13add Random cleanup to make things work a bit better
base/statistics.cc:
    -  give an internal name to statistics that aren't printable
    -  speed up reset a tad
    -  Make sure that the original value of the current bin is restored properly
    -  check for the case where there are no subnames so we don't have an error
    -  check to make sure that the formula's root is set before accessing it
base/statistics.hh:
    -  clean up includes a bit
    -  deal with the case where there are no subnames
    -  get rid of remnants of FS_MEASURE stuff

--HG--
extra : convert_revision : 1e4338fc2b225647df47641b04c13b7046b2e114
2003-12-24 01:45:56 -05:00
Nathan Binkert
9908987f15 never print the cdf or pdf or the overflow bucket if we're simplescalr
--HG--
extra : convert_revision : 921ad80a5c671fee9eab3f389636dccc101d18f6
2003-12-24 00:22:02 -05:00