Cache simulator now handles basic block discards correctly. When

VG_(cachesim_discard_notify) is called, the cost centre array for the basic
block is removed from the table, and its counts are aggregated into a single
"discard" cost centre, and the cost centre array is free'd.

The aggregate discard cost centre is given the filename:function_name
"(discarded):(discarded)".  Mentioned this in the manual.

Only tested with tests/discard.c.  Seems to work well for that case though :)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@385
This commit is contained in:
Nicholas Nethercote
2002-06-05 14:41:10 +00:00
parent 6cae67ce51
commit 77dca1afe5
6 changed files with 232 additions and 38 deletions

View File

@@ -1197,8 +1197,7 @@ A brief description of the available macros:
fresh memory, and just call this occasionally to discard large
chunks of old code all at once.
<p>
Warning: minimally tested. Also, doesn't interact well with the
cache simulator.
Warning: minimally tested, especially for the cache simulator.
</ul>
<p>
@@ -2313,7 +2312,9 @@ contains no instructions that write to memory). The name
<code>???</code> is used if the the file name and/or function name
could not be determined from debugging information. If most of the
entries have the form <code>???:???</code> the program probably wasn't
compiled with <code>-g</code>. <p>
compiled with <code>-g</code>. If any code was invalidated (either due to
self-modifying code or unloading of shared objects) its counts are aggregated
into a single cost centre written as <code>(discarded):(discarded)</code>.<p>
It is worth noting that functions will come from three types of source files:
<ol>