4212 Commits

Author SHA1 Message Date
Nicholas Nethercote
c2e79c35e4 Remove the old profiling stuff from Memcheck.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5385
2005-12-19 22:23:35 +00:00
Nicholas Nethercote
2f133641b1 Fix for bug #117096.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5384
2005-12-19 21:27:58 +00:00
Nicholas Nethercote
0dd9f36a41 Bugfix update
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5383
2005-12-19 19:40:58 +00:00
Nicholas Nethercote
c8b46396d2 Fix a minor --gen-suppressions output bug.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5382
2005-12-19 19:40:12 +00:00
Nicholas Nethercote
a375c52a0c update
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5380
2005-12-19 19:38:02 +00:00
Nicholas Nethercote
fd4241f3f6 Clarify leak checker output.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5378
2005-12-19 19:33:36 +00:00
Nicholas Nethercote
f2977e4f83 update
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5375
2005-12-19 19:12:13 +00:00
Nicholas Nethercote
592b25f8e0 Add comment from commit log.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5374
2005-12-19 17:01:14 +00:00
Tom Hughes
de29d2a03e Check that noinst_PROGRAMS and noinst_LIBRARIES are not empty strings
before trying to run a for loop over them as some versions of bash can't
cope with being asked to loop over an empty list.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5373
2005-12-19 12:48:03 +00:00
Tom Hughes
9a850246f9 Fixed to check whether __builtin_expect is supported before using it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5372
2005-12-19 12:40:13 +00:00
Tom Hughes
a1091ebfd5 Make sure EM_X86_64 is defined as elf.h doesn't define it on some
older systems.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5371
2005-12-19 12:27:42 +00:00
Julian Seward
d3781fc974 Duh, remove debug printing. Duh.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5370
2005-12-18 03:59:16 +00:00
Julian Seward
043ec18434 Update.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5369
2005-12-18 03:35:09 +00:00
Julian Seward
f57f6f1921 Increase buffer size, so that long debugger command lines don't crash
V.  Also add buffer overrun checks.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5368
2005-12-18 03:22:50 +00:00
Julian Seward
d2de349f96 Nasty hack to stop the leak checker dying on custom-allocator example
from Ashley Pittman.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5367
2005-12-18 02:48:40 +00:00
Julian Seward
89add09cf8 When using a custom allocator that allocates with no intervening
blocks, the <= relation is the correct one.  In effect asserting <
constitutes an off-by-one error.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5366
2005-12-18 02:37:50 +00:00
Julian Seward
be18f74393 findSb: gradually rearrange the superblock list to bring frequently
accessed blocks closer to the front.  This speeds up malloc/free
intensive programs because evidently those searches cause a lot of
cache misses (so cachegrind tells us).  For perf/heap.c on P4
Northwood, this halves the run-time (!) from 85.8 to 42.9 seconds.
For "real" code (start/exit ktuberling) there is a small but
worthwhile performance gain, of about 2 seconds out of 95.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5365
2005-12-17 20:37:36 +00:00
Julian Seward
5681b27e9a Update known-bugs summary.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5364
2005-12-17 13:53:46 +00:00
Nicholas Nethercote
d7bd1688ca Add a malloc/free stress test.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5362
2005-12-17 00:22:39 +00:00
Nicholas Nethercote
ad827637fd Add info about overhead in heap blocks and OSet nodes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5361
2005-12-16 17:06:37 +00:00
Julian Seward
c2a49bec4b Hold the event count in r29 rather than the count register, since the
former doesn't need to be spilled and reloaded for every bb run.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5358
2005-12-16 01:08:22 +00:00
Julian Seward
cf2cdb0269 Add missing cases in debug printing.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5357
2005-12-16 01:07:11 +00:00
Julian Seward
02a7e5b5d0 Rewrite ppc32 dispatch loop to avoid profiling overhead, as per
today's x86 and amd64 rewrites.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5352
2005-12-15 21:40:34 +00:00
Nicholas Nethercote
a75ddd7aaa add note about recent performance improvement
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5349
2005-12-15 19:41:14 +00:00
Nicholas Nethercote
d38a28567e Improvments to vg_perf:
- show percentage speedup over the first Valgrind when comparing multiple
  Valgrind
- don't accept --reps < 0
- avoid div-by-zero if the runtime is measured as zero



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5348
2005-12-15 17:22:37 +00:00
Julian Seward
da4b5dca48 Make this work on platforms where r != x.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5347
2005-12-15 16:11:25 +00:00
Julian Seward
bcc3feca7e Rewrite amd64 dispatch loop to add performance enhancements as per x86
reorganisation of r5345.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5346
2005-12-15 15:46:43 +00:00
Julian Seward
87e9f78e0c - Track vex r1494 (x86/amd64 change of conventions for getting
to translations and back to dispatcher, and also different arg
  passing conventions to LibVEX_Translate).

- Rewrite x86 dispatcher to not increment the profiling counters
  unless requested by the user.  This dramatically reduces the
  D1 miss rate and gives considerable performance improvement
  on x86.  Also, restructure and add comments to dispatch-x86-linux.S
  to make it much easier to follow (imo).

amd64/ppc32/ppc64 fixes to follow.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5345
2005-12-15 14:07:07 +00:00
Cerion Armour-Brown
857aaf871f Added fp regtest
- needed some hackery to get around VEX's loss of accuracy.

------------------------------
Added test for fsqrt (fp square root)

Enabled stfs(u)(x) (fp single-precision stores)
 - VEX implementation not great: ends up rounding twice, losing
accuracy, but is good enough for this test's small fp argument array.

Changed fp arg setup
 - no denormals (for VEX inaccuracy)

All fp tests
 - don't print CR, XER flags, as VEX doesn't set them.

3 arg fp arith tests (fp 'multiply and add' etc)
 - no 'special' fp vals (for VEX inaccuracy)
 - zap lo byte (for VEX inaccuracy)

fctiw, fctiwz (fp convert to int)
 - zap high 32bits of result (is undefined)




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5344
2005-12-14 22:24:45 +00:00
Cerion Armour-Brown
8cbc827d9f Changed jm_insns.c usage to use one of flags 'i|f|a' to run int|fp|av insns respectively.
Removed integer test insns for jm-vmx.vgtest - already tested in jm-int.vgtest



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5343
2005-12-14 17:59:35 +00:00
Cerion Armour-Brown
0641a24c3d svn:ignores
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5342
2005-12-14 13:30:44 +00:00
Nicholas Nethercote
49f8ec5fad Added a stress test which measures the cost of translation.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5341
2005-12-14 05:33:35 +00:00
Nicholas Nethercote
53297cb180 Ensure that f() doesn't get inlined.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5340
2005-12-14 05:33:17 +00:00
Nicholas Nethercote
b8922da7a0 Add --vg option to vg_perf, which lets you specify one or more Valgrinds
to time, and presents their timings in an easy-to-compare way.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5339
2005-12-14 02:58:23 +00:00
Nicholas Nethercote
cb30dfe2ba whoops
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5338
2005-12-13 22:00:17 +00:00
Cerion Armour-Brown
4d00629c04 Added some more svn:ignores.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5337
2005-12-13 21:58:29 +00:00
Nicholas Nethercote
9a24d17e62 Added a --reps option to control how many times each program is run.
Also added a better help message.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5336
2005-12-13 21:55:16 +00:00
Nicholas Nethercote
7de9c0e307 remove bogus whitespace
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5335
2005-12-13 21:53:39 +00:00
Nicholas Nethercote
12dde1f51d Die if a performance benchmark is missing.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5334
2005-12-13 21:44:48 +00:00
Nicholas Nethercote
7eb82ccaa9 Use user time instead of wall-clock time.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5332
2005-12-13 20:23:38 +00:00
Nicholas Nethercote
0bea14f4f1 Improve vg_SP_update_pass() to catch more constant offset cases. Improves
performance by 1--3% on several programs on my machine.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5331
2005-12-13 20:05:00 +00:00
Nicholas Nethercote
d5c8f18d4a File recording info about each performance benchmark.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5330
2005-12-13 17:20:24 +00:00
Julian Seward
c8e82f70e6 Remove nanosleep and adjust iteration count and array size accordingly.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5329
2005-12-13 17:13:39 +00:00
Nicholas Nethercote
b676c5925b Abort the performance timings if any of the programs fail,
and record info in perf.{cmd,stdout,stderr} to allow diagnosis.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5328
2005-12-13 16:54:58 +00:00
Nicholas Nethercote
87def42dc3 Make sarp return zero.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5327
2005-12-13 16:38:55 +00:00
Nicholas Nethercote
689e02aae2 Add two new programs to the performance suite.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5326
2005-12-13 04:06:29 +00:00
Nicholas Nethercote
a52e4734eb Make it clearer that internal errors are Valgrind's fault.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5325
2005-12-12 15:54:50 +00:00
Robert Walsh
dae59e3eec Update ignores.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5324
2005-12-10 23:46:11 +00:00
Nicholas Nethercote
49db1b68a8 First attempt at some performance tracking tools. Includes a script vg_perf
(use "make perf" to run) that executes test programs and times their
slowdowns under various tools.  It works a lot like the vg_regtest script.
It's a bit rough around the edges -- eg. you can't currently directly
compare two different versions of Valgrind, which would be useful -- but it
is a good start.

There are currently two test programs in perf/.  More will be added as time
goes on.  This stuff will be built on so that performance changes can be
tracked over time.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5323
2005-12-10 23:11:28 +00:00
Nicholas Nethercote
6fd30a473c Remove dead line.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5322
2005-12-09 21:01:46 +00:00