public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely@redhat.com>
To: "François Dumont" <frs.dumont@gmail.com>
Cc: Jonathan Wakely <jwakely.gcc@gmail.com>,
	       "libstdc++@gcc.gnu.org" <libstdc++@gcc.gnu.org>,
	       gcc-patches <gcc-patches@gcc.gnu.org>
Subject: Re: vector lightweight debug mode
Date: Mon, 16 Nov 2015 10:29:00 -0000	[thread overview]
Message-ID: <20151116102923.GI2937@redhat.com> (raw)
In-Reply-To: <5648F551.5030404@gmail.com>

On 15/11/15 22:12 +0100, François Dumont wrote:
>Here is a last version I think.
>
>    I completed the debug light mode by adding some check on iterator
>ranges.
>
>    Even if check are light I made some changes to make sure that
>internally vector is not using methods instrumented with those checks.
>This is to make sure checks are not done several times. Doing so also
>simplify normal mode especially when using insert range, there is no
>need to check if parameters are integers or not.

Yes, I'd also observed that those improvements could be made, to avoid
dispatching when we already know we have iterators not integers.

>    I also introduce some __builtin_expect to make sure compiler will
>prefer the best path.
>
>    I didn't manage to check result on generated code. I am pretty sure
>there will be an impact, you can't run more code without impact. But
>that is a known drawback of debug mode, light or not, we just need to
>minimize it. Mostly by making sure that checks are done only once.

Not doing the checks is also an option. That minimizes the cost :-)

For the full debug mode we want to check everything we can, and accept
that has a cost.

For the lightweight one we need to evaluate the relative benefits. Is
it worth adding checks for errors that only happen rarely? Does the
benefit outweigh the cost?

I'm still not convinced that's the case for the "valid range" checks.
I'm willing to be convinced, but am not convinced yet.

>    It would be great to have it for gcc 6.0. I am working on the same
>for other containers.

Please don't do the valid range checks for std::deque, the checks are
undefined for iterators into different containers and will not give a
reliable answer.

  reply	other threads:[~2015-11-16 10:29 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-14 18:30 François Dumont
2015-09-14 19:55 ` Jonathan Wakely
2015-09-16 19:43   ` François Dumont
2015-09-16 20:53     ` Jonathan Wakely
     [not found]       ` <CA+jCFLueUi0Zo4m2D-scXNG5JLVSObKbJgXWaQRJrQ+notbXzg@mail.gmail.com>
2015-09-17 21:14         ` Fwd: " Christopher Jefferson
2015-09-19  9:12           ` Jonathan Wakely
2015-09-19  9:09       ` François Dumont
2015-09-19  9:48         ` Jonathan Wakely
2015-09-19 12:00           ` Jonathan Wakely
2015-10-07 19:38             ` François Dumont
2015-10-07 20:09               ` Jonathan Wakely
2015-10-12 19:43                 ` François Dumont
2015-11-15 21:12                   ` François Dumont
2015-11-16 10:29                     ` Jonathan Wakely [this message]
2015-11-17 19:49                       ` François Dumont
2015-11-18 12:27                         ` Jonathan Wakely
2015-11-18 12:34                           ` Jonathan Wakely
2015-11-19 21:17                           ` François Dumont

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=20151116102923.GI2937@redhat.com \
    --to=jwakely@redhat.com \
    --cc=frs.dumont@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jwakely.gcc@gmail.com \
    --cc=libstdc++@gcc.gnu.org \
    /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).