public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Hans-Peter Nilsson <hp@bitrange.com>
To: "Martin Liška" <mliska@suse.cz>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH,RFC] Introduce RUN_UNDER_VALGRIND in test-suite
Date: Sat, 21 Nov 2015 04:44:00 -0000	[thread overview]
Message-ID: <alpine.BSF.2.02.1511202317130.71916@arjuna.pair.com> (raw)
In-Reply-To: <564DDEF2.8090803@suse.cz>

On Thu, 19 Nov 2015, Martin Li?ka wrote:
> Hello.
>
> In last two weeks I've removed couple of memory leaks, mainly tight to middle-end.
> Currently, a user of the GCC compiler can pass '--enable-checking=valgrind' configure option
> that will run all commands within valgrind environment, but as the valgrind runs just with '-q' option,
> the result is not very helpful.
>
> I would like to start with another approach, where we can run all tests in test-suite
> within the valgrind sandbox and return an exit code if there's an error seen by the tool.
> That unfortunately leads to many latent (maybe false positives, FE issues, ...) that can
> be efficiently ignored by valgrind suppressions file (the file is part of suggested patch).
>
> The first version of the valgrind.supp can survive running compilation of tramp3d with -O2
> and majority of tests in test-suite can successfully finish. Most of memory leaks
> mentioned in the file can be eventually fixed.

I didn't quite understand the need for the suppression files.
Is it like Markus said, only because valgrind annotations are
not on by default?  Then let's change it so that's the default
during DEV-PHASE = experimental (the development phase) or
prerelease.  I really thought that was the case by now.
(The suppression files are IMHO a useful addition to contrib/
either way.)

> As I noticed in results log files, most of remaining issues are connected to gcc.c and
> lto-wrapper.c files. gcc.c heavily manipulates with strings and it would probably require
> usage of a string pool, that can easily eventually removed (just in case of --enable-valgrind-annotations).
> The second source file tends to produce memory leaks because of fork/exec constructs. However both
> can be improved during next stage1.
>
> Apart from aforementioned issues, the compiler does not contain so many issues and I think it's
> doable to prune them and rely on reported valgrind errors.
>
> Patch touches many .exp files, but basically does just couple of modifications:
>
> 1) gcc-defs.exp introduces new global variable run_under_valgrind
> 2) new procedure dg-run-valgrind distinguishes between just passing options to 'gd-test',
>    or runs 'dg-test' with additional flags that enable valgrind (using -wrapper)
> 3) new procedure dg-runtest-valgrind does the similar
> 4) many changes in corresponding *.exp files that utilize these procedures
>
> The patch should be definitely part of next stage1, but I would appreciate any thoughts
> about the described approach?

IIRC you can replace the actual dg-runtest proc with your own
(implementing a wrapper).  Grep aroung, I think we do that
already.  That's certainly preferable instead of touching all
callers.

>
> Thank you,
> Martin

brgds, H-P

  parent reply	other threads:[~2015-11-21  4:26 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-19 14:38 Martin Liška
2015-11-19 15:07 ` Markus Trippelsdorf
2015-11-21  4:44 ` Hans-Peter Nilsson [this message]
2015-11-23  9:36   ` Martin Liška
2015-11-24  9:17     ` Hans-Peter Nilsson
2015-12-03 14:15     ` Bernd Schmidt
2015-12-08 15:28       ` Martin Liška
2015-12-08 15:33         ` Bernd Schmidt
2015-12-08 16:04           ` Jeff Law
2016-05-13 13:04             ` RUN_UNDER_VALGRIND statistics for GCC 7 Martin Liška

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.BSF.2.02.1511202317130.71916@arjuna.pair.com \
    --to=hp@bitrange.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=mliska@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).