Author: sewardj
Date: Tue Sep 1 09:48:04 2015
New Revision: 15611
Log:
Rename the new option --expensive-definedness-check introduced in
r15594 to --expensive-definedness-checks. (Pluralised it, iow.)
Modified:
trunk/NEWS
trunk/memcheck/docs/mc-manual.xml
trunk/memcheck/mc_include.h
trunk/memcheck/mc_main.c
trunk/memcheck/mc_translate.c
trunk/memcheck/tests/bug340392.vgtest
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Tue Sep 1 09:48:04 2015
@@ -61,10 +61,10 @@
assembly sequences. This gives speedups in the region of 0% to 7%
for those targets only.
- - New command line option: --expensive-definedness-check=<yes|no> which
+ - New command line option: --expensive-definedness-checks=yes|no which
is useful to avoid occasional invalid complaints on optimised code.
Watchout for runtime degradation: 25% have been observed but, as always,
- this is highly application specific.
+ this is highly application specific. The default setting is "no".
* Massif:
Modified: trunk/memcheck/docs/mc-manual.xml
==============================================================================
--- trunk/memcheck/docs/mc-manual.xml (original)
+++ trunk/memcheck/docs/mc-manual.xml Tue Sep 1 09:48:04 2015
@@ -969,9 +969,9 @@
</listitem>
</varlistentry>
- <varlistentry id="opt.expensive-definedness-check" xreflabel="--expensive-definedness-check">
+ <varlistentry id="opt.expensive-definedness-checks" xreflabel="--expensive-definedness-checks">
<term>
- <option><![CDATA[--expensive-definedness-check=<yes|no> [default: no] ]]></option>
+ <option><![CDATA[--expensive-definedness-checks=<yes|no> [default: no] ]]></option>
</term>
<listitem>
<para>Controls whether Memcheck should employ more precise but also more
@@ -979,7 +979,7 @@
value. The default setting is not to do that and it is usually
sufficient. However, for highly optimised code valgrind may sometimes
incorrectly complain.
- Invoking valgrind with <option>--expensive-definedness-check==yes</option>
+ Invoking valgrind with <option>--expensive-definedness-checks=yes</option>
helps but comes at a performance cost. Runtime degradation of
25% have been observed but the extra cost depends a lot on the
application at hand.
Modified: trunk/memcheck/mc_include.h
==============================================================================
--- trunk/memcheck/mc_include.h (original)
+++ trunk/memcheck/mc_include.h Tue Sep 1 09:48:04 2015
@@ -697,7 +697,7 @@
/* Should we use expensive definedness checking for add/sub and compare
operations? Default: NO */
-extern Bool MC_(clo_expensive_definedness_check);
+extern Bool MC_(clo_expensive_definedness_checks);
/*------------------------------------------------------------*/
/*--- Instrumentation ---*/
Modified: trunk/memcheck/mc_main.c
==============================================================================
--- trunk/memcheck/mc_main.c (original)
+++ trunk/memcheck/mc_main.c Tue Sep 1 09:48:04 2015
@@ -5706,7 +5706,7 @@
KeepStacktraces MC_(clo_keep_stacktraces) = KS_alloc_and_free;
Int MC_(clo_mc_level) = 2;
Bool MC_(clo_show_mismatched_frees) = True;
-Bool MC_(clo_expensive_definedness_check) = False;
+Bool MC_(clo_expensive_definedness_checks) = False;
static const HChar * MC_(parse_leak_heuristics_tokens) =
"-,stdstring,length64,newarray,multipleinheritance";
@@ -5853,8 +5853,8 @@
else if VG_BOOL_CLO(arg, "--show-mismatched-frees",
MC_(clo_show_mismatched_frees)) {}
- else if VG_BOOL_CLO(arg, "--expensive-definedness-check",
- MC_(clo_expensive_definedness_check)) {}
+ else if VG_BOOL_CLO(arg, "--expensive-definedness-checks",
+ MC_(clo_expensive_definedness_checks)) {}
else
return VG_(replacement_malloc_process_cmd_line_option)(arg);
@@ -5890,6 +5890,8 @@
" --undef-value-errors=no|yes check for undefined value errors [yes]\n"
" --track-origins=no|yes show origins of undefined values? [no]\n"
" --partial-loads-ok=no|yes too hard to explain here; see manual [yes]\n"
+" --expensive-definedness-checks=no|yes\n"
+" Use extra-precise definedness tracking [no]\n"
" --freelist-vol=<number> volume of freed blocks queue [20000000]\n"
" --freelist-big-blocks=<number> releases first blocks with size>= [1000000]\n"
" --workaround-gcc296-bugs=no|yes self explanatory [no]\n"
Modified: trunk/memcheck/mc_translate.c
==============================================================================
--- trunk/memcheck/mc_translate.c (original)
+++ trunk/memcheck/mc_translate.c Tue Sep 1 09:48:04 2015
@@ -6313,7 +6313,7 @@
}
tl_assert( VG_(sizeXA)( mce.tmpMap ) == sb_in->tyenv->types_used );
- if (MC_(clo_expensive_definedness_check)) {
+ if (MC_(clo_expensive_definedness_checks)) {
/* For expensive definedness checking skip looking for bogus
literals. */
mce.bogusLiterals = True;
Modified: trunk/memcheck/tests/bug340392.vgtest
==============================================================================
--- trunk/memcheck/tests/bug340392.vgtest (original)
+++ trunk/memcheck/tests/bug340392.vgtest Tue Sep 1 09:48:04 2015
@@ -1,4 +1,4 @@
-# When run without --expensive-definedness-check valgrind
+# When run without --expensive-definedness-checks valgrind
# produces:
#
# ==10953== Conditional jump or move depends on uninitialised value(s)
@@ -7,4 +7,4 @@
# Making sure we don't get the message.
#
prog: bug340392
-vgopts: -q --expensive-definedness-check=yes
+vgopts: -q --expensive-definedness-checks=yes
|