]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
20 years agoBuild rflag thunk for adc/sbb correctly.
Julian Seward [Wed, 24 Aug 2005 10:56:01 +0000 (10:56 +0000)] 
Build rflag thunk for adc/sbb correctly.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1353

20 years agoamd64: Handle BT/BTS/BTR/BTC Gv, Ev.
Julian Seward [Wed, 24 Aug 2005 10:46:19 +0000 (10:46 +0000)] 
amd64: Handle BT/BTS/BTR/BTC Gv, Ev.
x86:   Fix signedness bug in existing BT/BTS/BTR/BTC Gv, Ev code.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1352

20 years agoUpdate.
Julian Seward [Wed, 24 Aug 2005 10:02:57 +0000 (10:02 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4485

20 years agoFix incorrect building of the flags thunk after ADC and SBB.
Julian Seward [Wed, 24 Aug 2005 10:01:36 +0000 (10:01 +0000)] 
Fix incorrect building of the flags thunk after ADC and SBB.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1351

20 years agoEnable ADC Ib, AL.
Julian Seward [Wed, 24 Aug 2005 09:22:39 +0000 (09:22 +0000)] 
Enable ADC Ib, AL.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1350

20 years agoavoid compiler warning
Nicholas Nethercote [Wed, 24 Aug 2005 01:56:15 +0000 (01:56 +0000)] 
avoid compiler warning

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4484

20 years agoUpdate.
Julian Seward [Tue, 23 Aug 2005 23:54:11 +0000 (23:54 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4483

20 years agoAdd tests for amd64 LOOP{,E,NE} insn.
Julian Seward [Tue, 23 Aug 2005 23:52:54 +0000 (23:52 +0000)] 
Add tests for amd64 LOOP{,E,NE} insn.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4482

20 years agoImplement LOOP{,E,NE}.
Julian Seward [Tue, 23 Aug 2005 23:44:35 +0000 (23:44 +0000)] 
Implement LOOP{,E,NE}.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1349

20 years agoRename a couple of inconsistently-named helper functions.
Julian Seward [Tue, 23 Aug 2005 23:26:37 +0000 (23:26 +0000)] 
Rename a couple of inconsistently-named helper functions.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1348

20 years agoUpdate.
Julian Seward [Tue, 23 Aug 2005 23:20:46 +0000 (23:20 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4481

20 years agoWhitespace-only change.
Julian Seward [Tue, 23 Aug 2005 23:17:38 +0000 (23:17 +0000)] 
Whitespace-only change.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1347

20 years agoImplement RDTSC (amd64).
Julian Seward [Tue, 23 Aug 2005 23:16:51 +0000 (23:16 +0000)] 
Implement RDTSC (amd64).

git-svn-id: svn://svn.valgrind.org/vex/trunk@1346

20 years agoMake the allocator's access functions slightly stricter in their
Nicholas Nethercote [Tue, 23 Aug 2005 22:11:20 +0000 (22:11 +0000)] 
Make the allocator's access functions slightly stricter in their
checking of the lo/hi size fields.  If we are corrupting the metadata,
this should make it more likely that we get an assertion failure rather
than an outright crash.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4480

20 years agoRename a couple of inconsistently-named helper functions.
Julian Seward [Tue, 23 Aug 2005 19:30:58 +0000 (19:30 +0000)] 
Rename a couple of inconsistently-named helper functions.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1345

20 years agoImplement RDTSC on x86.
Julian Seward [Tue, 23 Aug 2005 19:24:29 +0000 (19:24 +0000)] 
Implement RDTSC on x86.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1344

20 years agoAdd regtest for x86 LOOP{,E,NE} insns.
Julian Seward [Tue, 23 Aug 2005 18:06:01 +0000 (18:06 +0000)] 
Add regtest for x86 LOOP{,E,NE} insns.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4479

20 years agoUpdate.
Julian Seward [Tue, 23 Aug 2005 18:05:28 +0000 (18:05 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4478

20 years agoImplement LOOP/LOOPE/LOOPNE.
Julian Seward [Tue, 23 Aug 2005 17:29:27 +0000 (17:29 +0000)] 
Implement LOOP/LOOPE/LOOPNE.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1343

20 years agoupdate
Nicholas Nethercote [Tue, 23 Aug 2005 16:13:35 +0000 (16:13 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4477

20 years agoMake "silly arg" message 64-bit clean.
Nicholas Nethercote [Tue, 23 Aug 2005 16:10:36 +0000 (16:10 +0000)] 
Make "silly arg" message 64-bit clean.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4476

20 years agoUpdate.
Julian Seward [Tue, 23 Aug 2005 15:45:33 +0000 (15:45 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4475

20 years agoEnable testing of RCL insns.
Julian Seward [Tue, 23 Aug 2005 15:41:40 +0000 (15:41 +0000)] 
Enable testing of RCL insns.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1342

20 years agoSupport x86 RCL instructions.
Julian Seward [Tue, 23 Aug 2005 15:41:14 +0000 (15:41 +0000)] 
Support x86 RCL instructions.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1341

20 years agoEven more ppc32 syscalls.
Julian Seward [Sun, 21 Aug 2005 00:49:41 +0000 (00:49 +0000)] 
Even more ppc32 syscalls.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4474

20 years agoOn a PPC32Instr_Call, don't merely record how many integer registers
Julian Seward [Sun, 21 Aug 2005 00:48:37 +0000 (00:48 +0000)] 
On a PPC32Instr_Call, don't merely record how many integer registers
carry parameters.  Instead record the actual identities of such
registers in a bitmask.  This is necessary because the PPC calling
conventions have "holes" in the register ranges.  For example, a
routine taking an UInt(32-bit) first param and an ULong(64-bit) second
param passes the first arg in r3 but the second one in r5 and r6, and
r4 is not used.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1340

20 years agoMake sure vex_svnversion.h is updated after an svn update and declare
Tom Hughes [Sat, 20 Aug 2005 16:26:04 +0000 (16:26 +0000)] 
Make sure vex_svnversion.h is updated after an svn update and declare
the libvex.a target as phone to ensure that we always try and rebuild
it in case there have been changed in the VEX code.

The partially fixes bug #110770.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4473

20 years agoUpdate ignore lists.
Tom Hughes [Sat, 20 Aug 2005 16:21:02 +0000 (16:21 +0000)] 
Update ignore lists.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4472

20 years agoUpdate bug status.
Tom Hughes [Sat, 20 Aug 2005 12:10:39 +0000 (12:10 +0000)] 
Update bug status.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4471

20 years agoSuppress memory leaks from the linuxthread manager thread. Bug #111006.
Tom Hughes [Sat, 20 Aug 2005 12:05:32 +0000 (12:05 +0000)] 
Suppress memory leaks from the linuxthread manager thread. Bug #111006.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4470

20 years agoAdd suppressions for some glibc 2.2 linuxthreads issues. Bug #111006.
Tom Hughes [Sat, 20 Aug 2005 11:46:57 +0000 (11:46 +0000)] 
Add suppressions for some glibc 2.2 linuxthreads issues. Bug #111006.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4469

20 years agomake it work for SL10
Dirk Mueller [Fri, 19 Aug 2005 20:23:49 +0000 (20:23 +0000)] 
make it work for SL10

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4468

20 years agorm now-redundant macros.
Julian Seward [Fri, 19 Aug 2005 20:23:05 +0000 (20:23 +0000)] 
rm now-redundant macros.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4465

20 years agoIncorporate a patch from Craig Chaney which gives better stack
Julian Seward [Fri, 19 Aug 2005 16:02:59 +0000 (16:02 +0000)] 
Incorporate a patch from Craig Chaney which gives better stack
snapshots on ppc32-linux in the presence of functions subject to
leaf-function optimisations.

At the same time, simplify the stack unwinding logic by basically
implementing it separately for each target.  Having a single piece of
logic for amd64 and x86 was tenable, but merging ppc32 into it is too
confusing.  So now there is an x86/amd64 unwinder and a ppc32
unwinder.

This requires plumbing a link-register value into
VG_(get_StackTrace2), and that in turn requires passing it around
several other stack-trace-related functions.  Hence 7 changed files.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4464

20 years agoEnable a few more syscalls on ppc32-linux.
Julian Seward [Fri, 19 Aug 2005 10:07:29 +0000 (10:07 +0000)] 
Enable a few more syscalls on ppc32-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4463

20 years agoFix signedness-of-char problem which caused this to segfault on ppc32-linux.
Julian Seward [Fri, 19 Aug 2005 09:07:34 +0000 (09:07 +0000)] 
Fix signedness-of-char problem which caused this to segfault on ppc32-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4462

20 years agoupdate
Dirk Mueller [Fri, 19 Aug 2005 00:23:11 +0000 (00:23 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4461

20 years ago- Fix bug causing thread slots not to get reused
Julian Seward [Fri, 19 Aug 2005 00:22:44 +0000 (00:22 +0000)] 
- Fix bug causing thread slots not to get reused
- yet more syscalls on ppc32

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4460

20 years agoupdate
Dirk Mueller [Fri, 19 Aug 2005 00:17:24 +0000 (00:17 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4456

20 years agoupdate
Dirk Mueller [Fri, 19 Aug 2005 00:15:57 +0000 (00:15 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4454

20 years agoupdate
Dirk Mueller [Fri, 19 Aug 2005 00:14:07 +0000 (00:14 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4452

20 years agoupdate
Dirk Mueller [Fri, 19 Aug 2005 00:06:39 +0000 (00:06 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4450

20 years agoEnable a couple more syscalls on ppc32.
Julian Seward [Thu, 18 Aug 2005 23:44:13 +0000 (23:44 +0000)] 
Enable a couple more syscalls on ppc32.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4449

20 years agoMake show_segments() public, and use it when VG_(get_memory_from_mmap)()
Nicholas Nethercote [Thu, 18 Aug 2005 16:40:23 +0000 (16:40 +0000)] 
Make show_segments() public, and use it when VG_(get_memory_from_mmap)()
fails.  This might help debugging.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4448

20 years agoMake it possible to match against "???" line in suppressions,
Nicholas Nethercote [Thu, 18 Aug 2005 15:49:21 +0000 (15:49 +0000)] 
Make it possible to match against "???" line in suppressions,
using "obj:*" or "fun:*".  Also generate "obj:*" for such lines
with --gen-suppressions.  Includes a regtest.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4447

20 years agovki_stat64 as defined in the 2.6.10 sources looks significantly
Julian Seward [Thu, 18 Aug 2005 11:55:37 +0000 (11:55 +0000)] 
vki_stat64 as defined in the 2.6.10 sources looks significantly
different from our rendition, so update the latter.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4446

20 years agoThe strlen that ld.so uses on ppc32 causes a lot of false errors in
Julian Seward [Thu, 18 Aug 2005 11:54:30 +0000 (11:54 +0000)] 
The strlen that ld.so uses on ppc32 causes a lot of false errors in
memcheck, and they are hard to get rid of and hard to suppress.  So
add a bootstrap strlen function and redirect to it right from the
start.  This fn only replaces the strlen in ld.so; the "normal"
redirect mechanism still replaces the strlen that glibc supplies.

This commit finally (!) makes memcheck behave sanely on ppc32.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4445

20 years agoAdd tested but unused code just in case it is useful at some point in
Julian Seward [Thu, 18 Aug 2005 11:50:43 +0000 (11:50 +0000)] 
Add tested but unused code just in case it is useful at some point in
the future: a potentially more memcheck-friendly implementation of
count-leading-zeroes.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1339

20 years agoAdded VG_(OSet_LookupWithCmp)(), which can be useful.
Nicholas Nethercote [Wed, 17 Aug 2005 21:06:07 +0000 (21:06 +0000)] 
Added VG_(OSet_LookupWithCmp)(), which can be useful.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4444

20 years agoBug status updates.
Tom Hughes [Wed, 17 Aug 2005 09:23:48 +0000 (09:23 +0000)] 
Bug status updates.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4443

20 years agoPass AM_CFLAGS to the compiler when extracting the default linker
Tom Hughes [Wed, 17 Aug 2005 08:50:51 +0000 (08:50 +0000)] 
Pass AM_CFLAGS to the compiler when extracting the default linker
script so we are sure to get the 32 bit version when appropriate.

Also pass ARCH_CORE_AM_CFLAGS in EXTRA_CFLAGS when building VEX so
we can be sure to build a 32 bit VEX when appropriate.

This should fix bug #110830.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4442

20 years agoPartial implementation of mallinfo(). It still puts zero in all
Nicholas Nethercote [Wed, 17 Aug 2005 05:01:37 +0000 (05:01 +0000)] 
Partial implementation of mallinfo().  It still puts zero in all
the fields, but all the plumbing is now there so that m_mallocfree.c
can fill them in.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4441

20 years agoupdate
Nicholas Nethercote [Wed, 17 Aug 2005 04:34:05 +0000 (04:34 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4440

20 years agomalloc_usable_size() was totally broken, crashing immediately.
Nicholas Nethercote [Wed, 17 Aug 2005 04:03:31 +0000 (04:03 +0000)] 
malloc_usable_size() was totally broken, crashing immediately.
I guess it's not very widely used :)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4439

20 years agoHopefully fix a broken regtest.
Nicholas Nethercote [Wed, 17 Aug 2005 02:44:43 +0000 (02:44 +0000)] 
Hopefully fix a broken regtest.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4438

20 years agoupdate
Nicholas Nethercote [Wed, 17 Aug 2005 00:36:44 +0000 (00:36 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4437

20 years agoUpdate bug status documentation.
Tom Hughes [Tue, 16 Aug 2005 10:21:46 +0000 (10:21 +0000)] 
Update bug status documentation.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4436

20 years agoDon't assert if execve fails. Fixes bug #110875.
Tom Hughes [Tue, 16 Aug 2005 10:19:58 +0000 (10:19 +0000)] 
Don't assert if execve fails. Fixes bug #110875.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4435

20 years agominor fixes (probably not worth backporting)
Nicholas Nethercote [Tue, 16 Aug 2005 03:42:44 +0000 (03:42 +0000)] 
minor fixes (probably not worth backporting)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4434

20 years agowibbles
Nicholas Nethercote [Tue, 16 Aug 2005 03:34:56 +0000 (03:34 +0000)] 
wibbles

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4433

20 years agolots of little wibbles
Nicholas Nethercote [Tue, 16 Aug 2005 03:29:50 +0000 (03:29 +0000)] 
lots of little wibbles

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4432

20 years agoMake the nightly script say early on if the results have changed in
Nicholas Nethercote [Tue, 16 Aug 2005 03:28:47 +0000 (03:28 +0000)] 
Make the nightly script say early on if the results have changed in
the last 24 hours.  This saves you from having to scroll down to
determine this when the number of failures is large (eg on PPC).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4431

20 years agoupdate
Nicholas Nethercote [Tue, 16 Aug 2005 02:31:08 +0000 (02:31 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4430

20 years agoFixes for #110657, based on Jakub Jelinek's patch:
Nicholas Nethercote [Tue, 16 Aug 2005 02:30:24 +0000 (02:30 +0000)] 
Fixes for #110657, based on Jakub Jelinek's patch:
- filter out L3 warning messages so they don't break Cachegrind's regtests
- handle lack of mq support gracefully in mq.c

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4429

20 years agoupdate
Nicholas Nethercote [Tue, 16 Aug 2005 02:21:13 +0000 (02:21 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4428

20 years agoHow do you like this: there was no proper description in the manual
Nicholas Nethercote [Tue, 16 Aug 2005 02:20:17 +0000 (02:20 +0000)] 
How do you like this:  there was no proper description in the manual
of leak error messages, nor any examples.  So I added one, and moved
what info there was about leaks out of its separate section, and into
the section describing all the kinds of error message.

BACKPORT TO 3_0_X

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4427

20 years agoupdate
Nicholas Nethercote [Tue, 16 Aug 2005 01:41:43 +0000 (01:41 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4426

20 years agoGive more info about seginfo dropping.
Nicholas Nethercote [Tue, 16 Aug 2005 01:39:34 +0000 (01:39 +0000)] 
Give more info about seginfo dropping.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4425

20 years agoUse the right Vex command line.
Nicholas Nethercote [Mon, 15 Aug 2005 13:29:43 +0000 (13:29 +0000)] 
Use the right Vex command line.

BACKPORT TO 3_0_X?

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4424

20 years agoblah
Nicholas Nethercote [Mon, 15 Aug 2005 04:44:26 +0000 (04:44 +0000)] 
blah

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4423

20 years agofix line numbers
Nicholas Nethercote [Mon, 15 Aug 2005 04:40:57 +0000 (04:40 +0000)] 
fix line numbers

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4422

20 years agofoo
Nicholas Nethercote [Mon, 15 Aug 2005 04:37:34 +0000 (04:37 +0000)] 
foo

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4421

20 years agosome more info in the QSG
Nicholas Nethercote [Mon, 15 Aug 2005 04:34:20 +0000 (04:34 +0000)] 
some more info in the QSG

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4420

20 years agoA few minor manual updates.
Nicholas Nethercote [Mon, 15 Aug 2005 04:26:13 +0000 (04:26 +0000)] 
A few minor manual updates.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4419

20 years agoBleh, forgot this.
Nicholas Nethercote [Mon, 15 Aug 2005 02:06:39 +0000 (02:06 +0000)] 
Bleh, forgot this.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4418

20 years agowibbles
Nicholas Nethercote [Mon, 15 Aug 2005 02:05:21 +0000 (02:05 +0000)] 
wibbles

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4417

20 years agoWhoops... I guess the regtests don't exercise that code...
Nicholas Nethercote [Mon, 15 Aug 2005 01:54:05 +0000 (01:54 +0000)] 
Whoops... I guess the regtests don't exercise that code...

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4416

20 years agoSomething I realised recently: in C, iterators are much better than
Nicholas Nethercote [Mon, 15 Aug 2005 01:52:02 +0000 (01:52 +0000)] 
Something I realised recently:  in C, iterators are much better than
higher-order functions for traversing data structures.  The higher-order
approach is too clumsy due to the lack of polymorphism and closures;  you
have to use void* too much and it is more verbose than it should be.

Hence, I replaced all the uses of HT_first_match() and
HT_apply_to_all_nodes() with equivalent uses of the hashtable iterator.
Also replaced higher-order traversal functions for Memcheck's freed-list
and the thread stacks with iterators.  That last change changes the
core/tool interface, so I've increased the version number.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4415

20 years agowibble
Nicholas Nethercote [Sun, 14 Aug 2005 23:52:32 +0000 (23:52 +0000)] 
wibble

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4414

20 years agoTrim some fat; removing this assertion makes Remove() about 5% faster.
Nicholas Nethercote [Sun, 14 Aug 2005 23:00:57 +0000 (23:00 +0000)] 
Trim some fat;  removing this assertion makes Remove() about 5% faster.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4413

20 years agoAdd a thorough unit test for m_oset. Note that this is Memcheck
Nicholas Nethercote [Sun, 14 Aug 2005 22:43:53 +0000 (22:43 +0000)] 
Add a thorough unit test for m_oset.  Note that this is Memcheck
testing code that's part of Valgrind, which is a good thing.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4412

20 years agoForgot this file.
Nicholas Nethercote [Sun, 14 Aug 2005 22:14:55 +0000 (22:14 +0000)] 
Forgot this file.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4411

20 years agoAdded new module, m_oset, which provides a generic data structure, OSet,
Nicholas Nethercote [Sun, 14 Aug 2005 22:13:00 +0000 (22:13 +0000)] 
Added new module, m_oset, which provides a generic data structure, OSet,
which is a sorted set with no duplicates.  This is derived from
m_skiplist, which it will hopefully replace.  The interface has the
following improvements:

- Avoided all mention of how the data structure is implemented in the
  interface, so it could be replaced with another data structure without
  changing external code.
- Two kinds of comparison:  fast -- use the first word of each element
  for comparison;  slow -- use a custom function.  The custom function
  compares a key with an element, so non-overlapping interval lists can
  be supported easily.  m_skiplist only supports the slow variant, and it
  makes things almost 2x faster.
- Users pass in malloc() and free() functions, so m_oset.c it doesn't
  rely on any particular allocator.
- It has a Destroy() function which will deallocate all the nodes.
- It allows variable-sized nodes.
- No static constructor;  I needed the flexibility of being able to
  execute arbitrary code in the constructor.  This also means no type
  internals are exposed.

No part of Valgrind actually uses OSet yet, although I've privately
converted several data structures, and so I'm confident that the
interface is basically sound.  Some functions may be added later.

The implementation uses AVL trees, and has the following
characteristics:

- Lookup is much faster than for skiplists -- around 3x.  This is
  because the inner lookup loop is much tighter.
- Insertion and removal is similar speed to skiplists, maybe a little
  slower, but there's still some fat to be trimmed.
- The code is a bit longer and more complex than the skiplist code.

This was intended to replace the need for the VgHashTable type.  But my
experiments have shown that VgHashTable is really fast, faster than both
AVL trees and skiplists in all but extreme cases (eg. if the hashtable
becomes way too full):  insertion takes constant time, because you always
prepend to chains;  lookup depends on chain length, but the inner loop
is so tight that you need about 20 elements per chain before it gets
worse than the AVL tree;  removal is similar to lookup.  And because
insertion uses prepending, any locality in accesses will help things.  If
VgHashTable had its interface cleaned up to look like OSet's, and was made
to auto-resize when it got too full, it might be a better OSet (although
it's not sorted).

So, it's currently unclear exactly how the AVL tree OSet will be used.
The skiplist could be converted to the new interface (I have a 90%
complete version which I used in the comparison experiments).  If
VgHashTable was converted to the same interface (or as close as
possible) it would make direct comparison of important places (eg.
Memcheck's malloc_lists) simple.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4410

20 years agoRemove more now-unnecessary casts, thanks to the recent VgHashTable changes.
Nicholas Nethercote [Sun, 14 Aug 2005 18:32:16 +0000 (18:32 +0000)] 
Remove more now-unnecessary casts, thanks to the recent VgHashTable changes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4409

20 years agoRemove ancient backwards compatibility code which is no longer needed, since
Nicholas Nethercote [Sun, 14 Aug 2005 18:24:44 +0000 (18:24 +0000)] 
Remove ancient backwards compatibility code which is no longer needed, since
backwards compatibility was broken in various other ways by 3.0.0.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4408

20 years agoAdded an iterator to VgHashTable.
Nicholas Nethercote [Sun, 14 Aug 2005 17:42:35 +0000 (17:42 +0000)] 
Added an iterator to VgHashTable.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4407

20 years agoClarify comment.
Nicholas Nethercote [Sun, 14 Aug 2005 17:36:07 +0000 (17:36 +0000)] 
Clarify comment.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4406

20 years agoUpdate for Vex.
Nicholas Nethercote [Sun, 14 Aug 2005 17:25:28 +0000 (17:25 +0000)] 
Update for Vex.

BACKPORT TO 3_0_X?

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4405

20 years agoChanged many, but not all, of the VgHashNode* parameters and return
Nicholas Nethercote [Sun, 14 Aug 2005 06:24:20 +0000 (06:24 +0000)] 
Changed many, but not all, of the VgHashNode* parameters and return
types in m_hashtable.c to void*.  This requires no changes to code
already using VgHashTables, but it allows some previously-required casts
to be removed.  I also changed Memcheck and Massif by removing some of
these now-unnecessary casts.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4404

20 years agoCompactify unload_symbols().
Nicholas Nethercote [Sun, 14 Aug 2005 04:29:12 +0000 (04:29 +0000)] 
Compactify unload_symbols().

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4403

20 years agoPartially evaluate m_stacks.c to simplify and shrink it a bit.
Nicholas Nethercote [Sun, 14 Aug 2005 04:12:40 +0000 (04:12 +0000)] 
Partially evaluate m_stacks.c to simplify and shrink it a bit.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4402

20 years agoUpdate.
Julian Seward [Sun, 14 Aug 2005 00:59:45 +0000 (00:59 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4401

20 years agoUpdate.
Julian Seward [Sun, 14 Aug 2005 00:31:26 +0000 (00:31 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4400

20 years agodis_Grp2: decode address mode correctly
Julian Seward [Sun, 14 Aug 2005 00:09:58 +0000 (00:09 +0000)] 
dis_Grp2: decode address mode correctly

git-svn-id: svn://svn.valgrind.org/vex/trunk@1334

20 years agoHandle Iop_Sar16, so that front end amd64 "cwtd" does not bomb.
Julian Seward [Sat, 13 Aug 2005 23:58:34 +0000 (23:58 +0000)] 
Handle Iop_Sar16, so that front end amd64 "cwtd" does not bomb.

git-svn-id: svn://svn.valgrind.org/vex/trunk@1333

20 years agoUpdate.
Julian Seward [Sat, 13 Aug 2005 23:38:26 +0000 (23:38 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4399

20 years agoupdate
Dirk Mueller [Sat, 13 Aug 2005 20:31:18 +0000 (20:31 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4398

20 years agoupdate
Dirk Mueller [Sat, 13 Aug 2005 19:47:57 +0000 (19:47 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4396

20 years agoupdate
Dirk Mueller [Sat, 13 Aug 2005 19:46:18 +0000 (19:46 +0000)] 
update

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4394

20 years agoUpdate.
Julian Seward [Sat, 13 Aug 2005 00:33:08 +0000 (00:33 +0000)] 
Update.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4392