]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
18 years agoUpdate todo notes
Nicholas Nethercote [Fri, 2 Nov 2007 21:44:02 +0000 (21:44 +0000)] 
Update todo notes

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

18 years agoFix a Makefile issue that I think caused automated testing to fail on
Nicholas Nethercote [Fri, 2 Nov 2007 20:47:53 +0000 (20:47 +0000)] 
Fix a Makefile issue that I think caused automated testing to fail on
'alvis' last night.  I don't no why it worked on the other machines, must be
an automake version thing.

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

18 years agoChange ms_print to ms_print.in, link it into the build/install system.
Nicholas Nethercote [Fri, 2 Nov 2007 20:44:57 +0000 (20:44 +0000)] 
Change ms_print to ms_print.in, link it into the build/install system.

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

18 years agoFilter out libc differences. All Massif tests now pass on the AMD64 machine
Nicholas Nethercote [Fri, 2 Nov 2007 04:17:28 +0000 (04:17 +0000)] 
Filter out libc differences.  All Massif tests now pass on the AMD64 machine
I just tested.

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

18 years agoFix 64-bit Massif breakage, caused by problems with integer arithmetic on
Nicholas Nethercote [Fri, 2 Nov 2007 04:12:48 +0000 (04:12 +0000)] 
Fix 64-bit Massif breakage, caused by problems with integer arithmetic on
values of different signs and sizes that only a C language lawyer would
spot.

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

18 years agoThis should have gone in with the last commit.
Nicholas Nethercote [Thu, 1 Nov 2007 04:44:58 +0000 (04:44 +0000)] 
This should have gone in with the last commit.

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

18 years agoMerged the MASSIF2 branch to the trunk. Main changes:
Nicholas Nethercote [Thu, 1 Nov 2007 04:40:37 +0000 (04:40 +0000)] 
Merged the MASSIF2 branch to the trunk.  Main changes:

- ms_main.c: completely overhauled.

- massif/tests/*:  lots of them now.

- massif/perf/:  added.

- massif/hp2ps:  removed.  No longer used.

- vg_regtest: renamed the previously unused "posttest" notion to "post".
  Using it for checking ms_print's output.

Although the code has changed dramatically, as has the form of the tool's
output, the information presented in the output is basically the same,
although it's now (hopefully) much more useful.  So the tool name is
unchanged.

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

18 years agoAdd comment about 32-bit UIDs/GIDs.
Nicholas Nethercote [Tue, 23 Oct 2007 22:26:12 +0000 (22:26 +0000)] 
Add comment about 32-bit UIDs/GIDs.

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

18 years agoUpdate bug status.
Tom Hughes [Tue, 23 Oct 2007 08:16:01 +0000 (08:16 +0000)] 
Update bug status.

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

18 years agoUse geteuid32/getegid32 on those platforms which have them.
Tom Hughes [Tue, 23 Oct 2007 08:03:59 +0000 (08:03 +0000)] 
Use geteuid32/getegid32 on those platforms which have them.
Fixes bug #151209.

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

18 years agoSuggest compiling with --Wall.
Nicholas Nethercote [Thu, 18 Oct 2007 23:14:48 +0000 (23:14 +0000)] 
Suggest compiling with --Wall.

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

18 years agoclarify a paragraph
Nicholas Nethercote [Wed, 17 Oct 2007 22:29:08 +0000 (22:29 +0000)] 
clarify a paragraph

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

18 years agoAdd a comment.
Nicholas Nethercote [Tue, 16 Oct 2007 23:18:06 +0000 (23:18 +0000)] 
Add a comment.

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

18 years agoreadd right adjustment.
Dirk Mueller [Thu, 4 Oct 2007 21:36:40 +0000 (21:36 +0000)] 
readd right adjustment.

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

18 years agorevert format checking warnings from trunk, will
Dirk Mueller [Thu, 4 Oct 2007 21:35:21 +0000 (21:35 +0000)] 
revert format checking warnings from trunk, will
be done in a branch

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

18 years agofix a few format string warnings
Dirk Mueller [Mon, 1 Oct 2007 10:33:41 +0000 (10:33 +0000)] 
fix a few format string warnings

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

18 years agoAdd an FAQ.
Nicholas Nethercote [Tue, 25 Sep 2007 22:05:04 +0000 (22:05 +0000)] 
Add an FAQ.

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

18 years agoadd format argument checking. might find useful portability issues
Dirk Mueller [Mon, 24 Sep 2007 13:25:24 +0000 (13:25 +0000)] 
add format argument checking. might find useful portability issues

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

18 years agoupdate bugs status
Dirk Mueller [Mon, 24 Sep 2007 13:24:50 +0000 (13:24 +0000)] 
update bugs status

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

18 years agofix various format string errors
Dirk Mueller [Mon, 24 Sep 2007 13:23:53 +0000 (13:23 +0000)] 
fix various format string errors

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

18 years agoFix various format string errors, courtesy of Florian Krohm.
Nicholas Nethercote [Sun, 23 Sep 2007 00:51:24 +0000 (00:51 +0000)] 
Fix various format string errors, courtesy of Florian Krohm.

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

18 years agoAdd VG_(atoll).
Nicholas Nethercote [Sat, 22 Sep 2007 06:23:07 +0000 (06:23 +0000)] 
Add VG_(atoll).

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

18 years agoUpdate
Josef Weidendorfer [Tue, 18 Sep 2007 19:29:25 +0000 (19:29 +0000)] 
Update

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

18 years agocallgrind_control: Fix behavior with callgrind runs of another user
Josef Weidendorfer [Tue, 18 Sep 2007 19:12:57 +0000 (19:12 +0000)] 
callgrind_control: Fix behavior with callgrind runs of another user

callgrind_control uses files /tmp/callgrind.info.* to be able to
locate running callgrind processes. These files can be read only by
the user which started callgrind. The callgrind_control script
did not check for "permission denied" on opening these files, which
resulted in some unexpected errors. Now, it is checked whether
the "open" was successful, and if not, we skip the according callgrind
process.

Fixes bug 149963.

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

18 years agoAdd a warning about --log-file-exactly.
Nicholas Nethercote [Mon, 17 Sep 2007 23:15:35 +0000 (23:15 +0000)] 
Add a warning about --log-file-exactly.

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

18 years agoupdate
Nicholas Nethercote [Mon, 17 Sep 2007 22:50:46 +0000 (22:50 +0000)] 
update

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

18 years agoChange an Int to a SSizeT to avoid overflows. Fixed bug 148174.
Nicholas Nethercote [Mon, 17 Sep 2007 22:46:45 +0000 (22:46 +0000)] 
Change an Int to a SSizeT to avoid overflows.  Fixed bug 148174.

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

18 years agoExtra info about debugging with GDB
Nicholas Nethercote [Mon, 17 Sep 2007 22:35:57 +0000 (22:35 +0000)] 
Extra info about debugging with GDB

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

18 years agoAdd a section to the cachegrind manual suggesting how to act on the results.
Nicholas Nethercote [Mon, 17 Sep 2007 22:28:21 +0000 (22:28 +0000)] 
Add a section to the cachegrind manual suggesting how to act on the results.

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

18 years agoAdd section on how to use Cachegrind's results.
Nicholas Nethercote [Mon, 17 Sep 2007 22:19:01 +0000 (22:19 +0000)] 
Add section on how to use Cachegrind's results.

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

18 years agominor tweak
Nicholas Nethercote [Mon, 17 Sep 2007 22:01:14 +0000 (22:01 +0000)] 
minor tweak

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

18 years agocallgrind: Use directory in debug info when available
Josef Weidendorfer [Mon, 17 Sep 2007 12:52:10 +0000 (12:52 +0000)] 
callgrind: Use directory in debug info when available

Prepend the file name of a source file with the directory
if that is available. This not only gets rid of problems with the
same file name used in different paths of a project, but lets
the annotation work out of the box without having to specify any
source directory.
Works both with callgrind_annotate and KCachegrind without any
changes there.

Inspired by Nick's change to cachegrind doing the same thing
in r6839 (and gets rid of a FIXME in the source)

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

18 years agoSplit the OSet interface into two parts: "OSetGen_", which is the existing
Nicholas Nethercote [Mon, 17 Sep 2007 05:30:48 +0000 (05:30 +0000)] 
Split the OSet interface into two parts:  "OSetGen_", which is the existing
interface and provides full power;  and "OSetWord_", which is an
easier-to-use interface for if you just want to store words.

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

18 years agoupdate
Nicholas Nethercote [Mon, 17 Sep 2007 00:41:18 +0000 (00:41 +0000)] 
update

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

18 years agoAdd directory-reading of debug info to cachegrind.
Nicholas Nethercote [Mon, 17 Sep 2007 00:41:07 +0000 (00:41 +0000)] 
Add directory-reading of debug info to cachegrind.

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

18 years agoremove dead declaration
Nicholas Nethercote [Mon, 17 Sep 2007 00:33:52 +0000 (00:33 +0000)] 
remove dead declaration

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

18 years agofix division by zero's
Dirk Mueller [Fri, 14 Sep 2007 09:02:25 +0000 (09:02 +0000)] 
fix division by zero's

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

18 years agosuppression update for 10.3
Dirk Mueller [Wed, 12 Sep 2007 13:25:35 +0000 (13:25 +0000)] 
suppression update for 10.3

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

18 years agoppc64-linux equivalent to r6813 (use sigframe return stub in
Julian Seward [Mon, 10 Sep 2007 16:52:09 +0000 (16:52 +0000)] 
ppc64-linux equivalent to r6813 (use sigframe return stub in
m_trampoline, not on the stack)

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

18 years agoppc32-linux signal handling: don't place the sigframe return stub on
Julian Seward [Mon, 10 Sep 2007 16:28:38 +0000 (16:28 +0000)] 
ppc32-linux signal handling: don't place the sigframe return stub on
the stack; instead use a stub in m_trampoline.S.  This makes it
possible to deliver signals on non-executable stacks, and makes the
behaviour consistent with x86-linux and amd64-linux.

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

18 years agoAdd test for tw instruction.
Julian Seward [Sat, 1 Sep 2007 23:22:39 +0000 (23:22 +0000)] 
Add test for tw instruction.

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

18 years agoAdd test for tw and td instructions.
Julian Seward [Sat, 1 Sep 2007 23:16:49 +0000 (23:16 +0000)] 
Add test for tw and td instructions.

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

18 years agoUpdate list-of-known-sins :-)
Julian Seward [Sat, 1 Sep 2007 19:43:08 +0000 (19:43 +0000)] 
Update list-of-known-sins :-)

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

18 years agoImplement maskmovq and maskmovdq.
Julian Seward [Sat, 1 Sep 2007 18:59:53 +0000 (18:59 +0000)] 
Implement maskmovq and maskmovdq.

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

18 years agoAdd regtest for amd64 implementation of maskmovq and maskmovdq.
Julian Seward [Sat, 1 Sep 2007 18:58:54 +0000 (18:58 +0000)] 
Add regtest for amd64 implementation of maskmovq and maskmovdq.

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

18 years agoHandle DW_OP_deref in DWARF3 expressions. Fixes #147285.
Julian Seward [Fri, 31 Aug 2007 23:08:39 +0000 (23:08 +0000)] 
Handle DW_OP_deref in DWARF3 expressions.  Fixes #147285.

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

18 years agoOops. Fix silly error that gcc-4.3 complained about.
Julian Seward [Fri, 31 Aug 2007 10:21:40 +0000 (10:21 +0000)] 
Oops.  Fix silly error that gcc-4.3 complained about.

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

18 years agoValgrind-side changes to track vx1786 (which was: Support x86 $int
Julian Seward [Wed, 29 Aug 2007 09:11:35 +0000 (09:11 +0000)] 
Valgrind-side changes to track vx1786 (which was: Support x86 $int
0x40 .. 0x43 instructions on Linux.  Apparently these generate a
segfault and then restart the instruction.)

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

18 years agoSupport x86 $int 0x40 .. 0x43 instructions on Linux. Apparently these
Julian Seward [Wed, 29 Aug 2007 09:09:17 +0000 (09:09 +0000)] 
Support x86 $int 0x40 .. 0x43 instructions on Linux.  Apparently these
generate a segfault and then restart the instruction.

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

18 years agocallgrind: fix example description and clarification of callgrind format
Josef Weidendorfer [Tue, 28 Aug 2007 21:52:45 +0000 (21:52 +0000)] 
callgrind: fix example description and clarification of callgrind format

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

18 years agoMove a 'break' around.
Julian Seward [Tue, 28 Aug 2007 21:48:09 +0000 (21:48 +0000)] 
Move a 'break' around.

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

18 years agoMake the --max-stackframe machinery 64-bit clean.
Julian Seward [Tue, 28 Aug 2007 17:03:01 +0000 (17:03 +0000)] 
Make the --max-stackframe machinery 64-bit clean.

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

18 years agoSupport td (64-bit counterpart to r1784).
Julian Seward [Tue, 28 Aug 2007 16:39:52 +0000 (16:39 +0000)] 
Support td (64-bit counterpart to r1784).

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

18 years agoBetter support for trap insns. This adds support for tw (previously twi and
Julian Seward [Tue, 28 Aug 2007 14:48:35 +0000 (14:48 +0000)] 
Better support for trap insns.  This adds support for tw (previously twi and
tdi only were supported).  td to follow.

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

18 years agoAdd missing return.
Julian Seward [Tue, 28 Aug 2007 06:06:57 +0000 (06:06 +0000)] 
Add missing return.

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

18 years agoMerge, from CGTUNE branch, r1774:
Julian Seward [Tue, 28 Aug 2007 06:06:27 +0000 (06:06 +0000)] 
Merge, from CGTUNE branch, r1774:

Vex-side changes to allow tools to provide a final_tidy function which
they can use to mess with the final post-tree-built IR before it is
handed off to instruction selection.

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

18 years agoMerge, from CGTUNE branch, a cleaned up version of r6742:
Julian Seward [Tue, 28 Aug 2007 06:05:20 +0000 (06:05 +0000)] 
Merge, from CGTUNE branch, a cleaned up version of r6742:

Another optimisation: allow tools to provide a final_tidy function
which they can use to mess with the final post-tree-built IR before it
is handed off to instruction selection.

In memcheck, use this to remove redundant calls to
MC_(helperc_value_check0_fail) et al.  Gives a 6% reduction in code
size for Memcheck on x86 and a smaller (3% ?) speedup.

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

18 years agoFix silly bug.
Julian Seward [Tue, 28 Aug 2007 05:19:16 +0000 (05:19 +0000)] 
Fix silly bug.

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

18 years agofixed a couple of minor things
Nicholas Nethercote [Mon, 27 Aug 2007 22:18:58 +0000 (22:18 +0000)] 
fixed a couple of minor things

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

18 years agoFollowup to r6783: supply a correct index/strchr replacement for
Julian Seward [Mon, 27 Aug 2007 11:50:39 +0000 (11:50 +0000)] 
Followup to r6783: supply a correct index/strchr replacement for
ppc32-linux/ppc64-linux.

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

18 years agoThis module supplies various replacement functions, amongst them a
Julian Seward [Mon, 27 Aug 2007 10:46:39 +0000 (10:46 +0000)] 
This module supplies various replacement functions, amongst them a
replacement for index/strchr in ld.so.  Unfortunately the replacement
functionality was actually rindex/strrchr and amazingly it has taken
about 2.5 years for anyone to notice.

This fixes the x86-linux case; ppc32-linux and ppc64-linux fixes to
follow.

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

18 years agoupdating licensing wording
Dirk Mueller [Mon, 27 Aug 2007 10:05:51 +0000 (10:05 +0000)] 
updating licensing wording

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

18 years agoUpdate
Julian Seward [Sun, 26 Aug 2007 20:55:17 +0000 (20:55 +0000)] 
Update

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

18 years agoMerge from CGTUNE branch:
Julian Seward [Sat, 25 Aug 2007 23:25:00 +0000 (23:25 +0000)] 
Merge from CGTUNE branch:

r6738:
Unroll memset; apparently is popular in some places (kpdf).

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

18 years agoMerge from CGTUNE branch, code generation improvements for amd64:
Julian Seward [Sat, 25 Aug 2007 23:21:08 +0000 (23:21 +0000)] 
Merge from CGTUNE branch, code generation improvements for amd64:

r1772:
When generating code for helper calls, be more aggressive about
computing values directly into argument registers, thereby avoiding
some reg-reg shuffling.  This reduces the amount of code (on amd64)
generated by Cachegrind by about 6% and has zero or marginal benefit
for other tools.

r1773:
Emit 64-bit branch targets using 32-bit short forms when possible.
Since (with V's default amd64 load address of 0x38000000) this is
usually possible, it saves about 7% in code size for Memcheck and even
more for Cachegrind.

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

18 years agoMerge from CGTUNE branch:
Julian Seward [Sat, 25 Aug 2007 23:09:36 +0000 (23:09 +0000)] 
Merge from CGTUNE branch:

r6736:
Hook up Memcheck to the new Left and CmpwNEZ primops defined in vex r1769.

r6737:
Track vex r1770 (removal of Iop_Neg64/32/16/8 primops)

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

18 years agoMerge from CGTUNE branch:
Julian Seward [Sat, 25 Aug 2007 23:07:44 +0000 (23:07 +0000)] 
Merge from CGTUNE branch:

r1769:
This commit provides a bunch of enhancements to the IR optimiser
(iropt) and to the various backend instruction selectors.
Unfortunately the changes are interrelated and cannot easily be
committed in pieces in any meaningful way.  Between them and the
already-committed register allocation enhancements (r1765, r1767)
performance of Memcheck is improved by 0%-10%.  Improvements are also
applicable to other tools to lesser extents.

Main changes are:

* Add new IR primops Iop_Left64/32/16/8 and Iop_CmpwNEZ64/32/16/8
  which Memcheck uses to express some primitive operations on
  definedness (V) bits:

     Left(x)    = set all bits to the left of the rightmost 1 bit to 1
     CmpwNEZ(x) = if x == 0 then 0 else 0xFF...FF

  Left and CmpwNEZ are detailed in the Usenix 2005 paper (in which
  CmpwNEZ is called PCast).  The new primops expose opportunities for
  IR optimisation at tree-build time.  Prior to this change Memcheck
  expressed Left and CmpwNEZ in terms of lower level primitives
  (logical or, negation, compares, various casts) which was simpler
  but hindered further optimisation.

* Enhance the IR optimiser's tree builder so it can rewrite trees
  as they are constructed, according to useful identities, for example:

     CmpwNEZ64( Or64 ( CmpwNEZ64(x), y ) ) --> CmpwNEZ64( Or64( x, y ) )

  which gets rid of a CmpwNEZ64 operation - a win as they are relatively
  expensive.  See functions fold_IRExpr_Binop and fold_IRExpr_Unop.

  Allowing the tree builder to rewrite trees also makes it possible to
  have a single implementation of certain transformation rules which
  were previously duplicated in the x86, amd64 and ppc instruction
  selectors.  For example

     32to1(1Uto32(x)) --> x

  This simplifies the instruction selectors and gives a central place
  to put such IR-level transformations, which is a Good Thing.

* Various minor refinements to the instruction selectors:
  - ppc64 generates 32Sto64 into 1 instruction instead of 2
  - x86 can now generate movsbl
  - x86 handles 64-bit integer Mux0X better for cases typically
    arising from Memchecking of FP code
  - misc other patterns handled better

Overall these changes are a straight win - vex generates less code,
and does so a bit faster since its register allocator has to chew
through fewer instructions.  The main risk is that of correctness:
making Left and CmpwNEZ explicit, and adding rewrite rules for them,
is a substantial change in the way Memcheck deals with undefined value
tracking, and I am concerned to ensure that the changes do not cause
false negatives.  I _think_ it's all correct so far.

r1770:
Get rid of Iop_Neg64/32/16/8 as they are no longer used by Memcheck,
and any uses as generated by the front ends are so infrequent that
generating the equivalent Sub(0, ..) is good enough.  This gets rid of
quite a few lines of code.  Add isel cases for Sub(0, ..) patterns so
that the x86/amd64 backends still generate negl/negq where possible.

r1771:
Handle Left64.  Fixes failure on none/tests/x86/insn_sse2.

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

18 years agoMerge, from CGTUNE branch:
Julian Seward [Sat, 25 Aug 2007 21:29:03 +0000 (21:29 +0000)] 
Merge, from CGTUNE branch:

r1768:
Cosmetic (non-functional) changes associated with r1767.

r1767:
Add a second spill-code-avoidance optimisation, which could be called
'directReload' for lack of a better name.

If an instruction reads exactly one vreg which is currently in a spill
slot, and this is last use of that vreg, see if the instruction can be
converted into one that reads directly from the spill slot.  This is
clearly only possible for x86 and amd64 targets, since ppc is a
load-store architecture.  So, for example,

   orl %vreg, %dst

where %vreg is in a spill slot, and this is its last use, would
previously be converted to

   movl $spill-offset(%ebp), %tmp
   orl %tmp, %dst

whereas now it becomes

   orl $spill-offset(%ebp), %dst

This not only avoids an instruction, it eliminates the need for a
reload temporary (%tmp in this example) and so potentially further
reduces spilling.

Implementation is in two parts: an architecture independent part, in
reg_alloc2.c, which finds candidate instructions, and a host dependent
function (directReload_ARCH) for each arch supporting the
optimisation.  The directReload_ function does the instruction form
conversion, when possible.  Currently only x86 hosts are supported.

As a side effect, change the form of the X86_Test32 instruction from
reg-only to reg/mem so it can participate in such transformations.

This gives a code size reduction of 0.6% for perf/bz2 on x86 memcheck,
but tends to be more effective for long blocks of x86 FP code.

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

18 years agoMerge, from CGTUNE branch:
Julian Seward [Sat, 25 Aug 2007 21:11:33 +0000 (21:11 +0000)] 
Merge, from CGTUNE branch:

r1765:
During register allocation, keep track of which (real) registers have
the same value as their associated spill slot.  Then, if a register
needs to be freed up for some reason, and that register has the same
value as its spill slot, there is no need to produce a spill store.
This substantially reduces the number of spill store instructions
created.  Overall gives a 1.9% generated code size reduction for
perf/bz2 running on x86.

r1766:
Followup to r1765: fix some comments, and rearrange fields in struct
RRegState so as to fit it into 16 bytes.

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

18 years agoChanges to m_hashtable:
Julian Seward [Sat, 25 Aug 2007 07:19:08 +0000 (07:19 +0000)] 
Changes to m_hashtable:

Allow hashtables to dynamically resize (patch from Christoph
Bartoschek).  Results in the following interface changes:

* HT_construct: no need to supply an initial table size.
  Instead, supply a text string used to "name" the table, so
  that debugging messages ("resizing the table") can say which
  one they are resizing.

* Remove VG_(HT_get_node).  This exposes the chain structure to
  callers (via the next_ptr parameter), which is a problem since
  callers could get some info about the chain structure which then
  changes when the table is resized.  Fortunately is not used.

* Remove VG_(HT_first_match) and VG_(HT_apply_to_all_nodes) as
  they are unused.

* Make the iteration mechanism more paranoid, so any adding or
  deleting of nodes part way through an iteration causes VG_(HT_next)
  to assert.

* Fix the comment on VG_(HT_to_array) so it no longer speaks
  specifically about MC's leak detector.

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

18 years agogcc-4.3 compile fixes.
Julian Seward [Fri, 24 Aug 2007 20:37:09 +0000 (20:37 +0000)] 
gcc-4.3 compile fixes.

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

18 years agoAllow up to 7 prefixes, so as to accept
Julian Seward [Thu, 23 Aug 2007 18:53:59 +0000 (18:53 +0000)] 
Allow up to 7 prefixes, so as to accept
66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00  nopw   %cs:0x0(%rax,%rax,1)
as a valid no-op.  Blargh.

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

18 years agoDynamically expand the ExeContext hash table, rather than using a
Julian Seward [Thu, 23 Aug 2007 10:24:30 +0000 (10:24 +0000)] 
Dynamically expand the ExeContext hash table, rather than using a
fixed size.  Partial commit of a patch from Christoph Bartoschek.

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

18 years agoThe drastic increase in the number of per-arena freelists in r6771
Julian Seward [Thu, 23 Aug 2007 10:22:44 +0000 (10:22 +0000)] 
The drastic increase in the number of per-arena freelists in r6771
exposes a performance problem with doing m_mallocfree.c sanity checks
(at --sanity-level=3, at least), caused by slowness in
listNo_to_pszB_min.  This commit fixes the problem by caching the
results of queries to listNo_to_pszB_min.

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

18 years agoMake the ExeContext hash table a whole lot bigger.
Julian Seward [Wed, 22 Aug 2007 23:51:33 +0000 (23:51 +0000)] 
Make the ExeContext hash table a whole lot bigger.

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

18 years agoupdate suppressions
Dirk Mueller [Tue, 21 Aug 2007 20:28:34 +0000 (20:28 +0000)] 
update suppressions

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

18 years agoPreviously, each Arena has a linked list of Superblocks, which can
Julian Seward [Tue, 21 Aug 2007 10:55:26 +0000 (10:55 +0000)] 
Previously, each Arena has a linked list of Superblocks, which can
make VG_(arena_free) expensive if many superblocks have to be checked
before the right one is found.  This change gives the arena a
dynamically expanding sorted array of superblocks, so that finding the
superblock containing an about-to-be-freed block (findSb) is now
O(log2 n) rather than linear in the number of superblocks in the
arena.  Patch from Christoph Bartoschek.

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

18 years agoSome improvements for malloc/free intensive programs, inspired by
Julian Seward [Mon, 20 Aug 2007 22:57:56 +0000 (22:57 +0000)] 
Some improvements for malloc/free intensive programs, inspired by
performance studies by Christoph Bartoschek:

* Increase the number of freelists per arena from 18 to 112, so as
  to (drastically) cut down on the amount of freelist searching that
  happens.

* Increase the size of the client and tool arenas, so as to reduce
  the cost of finding arenas during freeing.  This is a kludge; a
  better solution would be to use binary search on superblocks, as
  Christoph's patches do.

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

18 years agosuppression update for 10.3/glibc 2.6
Dirk Mueller [Mon, 23 Jul 2007 14:31:55 +0000 (14:31 +0000)] 
suppression update for 10.3/glibc 2.6

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

18 years agoadd glibc-2.6.supp to the distribution list
Dirk Mueller [Sat, 14 Jul 2007 22:43:25 +0000 (22:43 +0000)] 
add glibc-2.6.supp to the distribution list

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

18 years agoUpdate.
Julian Seward [Wed, 11 Jul 2007 23:10:05 +0000 (23:10 +0000)] 
Update.

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

18 years ago* implement fistp
Julian Seward [Wed, 11 Jul 2007 22:49:26 +0000 (22:49 +0000)] 
* implement fistp
* fix incorrect behaviour in out-of-range conversion conditions for fisttp

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

18 years agoAll platforms: make it clearer that missing syscalls constitute
Julian Seward [Tue, 10 Jul 2007 00:18:46 +0000 (00:18 +0000)] 
All platforms: make it clearer that missing syscalls constitute
reportable bugs.

AIX only: print name of missing syscall as well as number -- important
because there is no fixed name/number binding.

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

18 years agoGet rid of VG_(getcwd) and replace it with a pair of functions,
Julian Seward [Mon, 9 Jul 2007 23:13:07 +0000 (23:13 +0000)] 
Get rid of VG_(getcwd) and replace it with a pair of functions,
VG_(record_startup_wd) which records the working directory at startup,
and VG_(get_startup_wd) which later tells you what value was recorded.
This works because all uses of VG_(getcwd) serve only to record the
directory at process start anyway.  The motivation is that AIX does
not support sys_getcwd directly, so it's easier for the launcher to
ship in the required value using an environment variable.  On Linux
sys_getcwd is used as before.

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

19 years agoupdate bugstatus
Dirk Mueller [Tue, 3 Jul 2007 10:38:03 +0000 (10:38 +0000)] 
update bugstatus

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

19 years agoVG_(needs_shadow_memory) does not exist; remove prototype for it.
Julian Seward [Sat, 23 Jun 2007 16:03:05 +0000 (16:03 +0000)] 
VG_(needs_shadow_memory) does not exist; remove prototype for it.

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

19 years agoApparently 'index' shadows a global decl on some targets; therefore rename.
Julian Seward [Tue, 5 Jun 2007 20:48:54 +0000 (20:48 +0000)] 
Apparently 'index' shadows a global decl on some targets; therefore rename.

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

19 years agoHandle a whole bunch of obscure types.
Julian Seward [Tue, 5 Jun 2007 19:51:35 +0000 (19:51 +0000)] 
Handle a whole bunch of obscure types.

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

19 years agoTest a whole bunch of obscure types.
Julian Seward [Tue, 5 Jun 2007 19:51:02 +0000 (19:51 +0000)] 
Test a whole bunch of obscure types.

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

19 years agoMerge (from branch) r6755 (Handle MPI_DOUBLE_PRECISION).
Julian Seward [Mon, 4 Jun 2007 21:14:36 +0000 (21:14 +0000)] 
Merge (from branch) r6755 (Handle MPI_DOUBLE_PRECISION).

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

19 years agoupdate bugstatus
Dirk Mueller [Mon, 4 Jun 2007 09:47:36 +0000 (09:47 +0000)] 
update bugstatus

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

19 years agoupdate suppression file. Patch by Diego Petteno from Gentoo
Dirk Mueller [Mon, 4 Jun 2007 09:43:39 +0000 (09:43 +0000)] 
update suppression file. Patch by Diego Petteno from Gentoo

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

19 years agoUpdate
Josef Weidendorfer [Sat, 2 Jun 2007 21:51:12 +0000 (21:51 +0000)] 
Update

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

19 years agocallgrind: fix build with srcdir != builddir
Josef Weidendorfer [Sat, 2 Jun 2007 21:36:26 +0000 (21:36 +0000)] 
callgrind: fix build with srcdir != builddir

Thanks to Diego 'Flameeyes' Pettenò for noting and providing the patch

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

19 years agoAdd a comment with a definitive account of when Memcheck does (and does not,
Nicholas Nethercote [Thu, 24 May 2007 23:14:41 +0000 (23:14 +0000)] 
Add a comment with a definitive account of when Memcheck does (and does not,
but should do) undefined value checks.

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

19 years agocallgrind_annotate: Fix a warning
Josef Weidendorfer [Thu, 24 May 2007 20:47:10 +0000 (20:47 +0000)] 
callgrind_annotate: Fix a warning

Port a fix for ""Possible precedence problem" from
cachegrind/cg_annotate, see r1713.

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

19 years agoCallgrind manual: Fix typo
Josef Weidendorfer [Thu, 24 May 2007 20:42:41 +0000 (20:42 +0000)] 
Callgrind manual: Fix typo

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

19 years agoCallgrind manual: rewriting start of section about avoding cycles
Josef Weidendorfer [Thu, 24 May 2007 19:24:23 +0000 (19:24 +0000)] 
Callgrind manual: rewriting start of section about avoding cycles

This hopefully makes the whole issue with cycles easier to understand.
And no, this does not get rid of the description of cycles, carefully
crafted by Julian ;-)

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

19 years agoCallgrind format: Note about event names in the example
Josef Weidendorfer [Thu, 24 May 2007 18:04:42 +0000 (18:04 +0000)] 
Callgrind format: Note about event names in the example

The added paragraph was triggered by a question on the mailing list.

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

19 years agoMerge (from 3.2 branch) r6743 (Edit the manual to bring it up to date
Julian Seward [Wed, 23 May 2007 21:58:33 +0000 (21:58 +0000)] 
Merge (from 3.2 branch) r6743 (Edit the manual to bring it up to date
and make some of the wording a bit more professional sounding.)

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