From: Paolo Bonzini <pbonzini@redhat.com>
To: Laszlo Ersek <lersek@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>,
QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH 1/2] target-i386: Use 1UL for bit shift
Date: Fri, 2 Oct 2015 10:48:43 +0200 [thread overview]
Message-ID: <560E44EB.2070803@redhat.com> (raw)
In-Reply-To: <560D7E04.5020505@redhat.com>
On 01/10/2015 20:40, Laszlo Ersek wrote:
> > Also strict aliasing improves performance noticeably at least on some
> > kind of code. The relaxation of strict aliasing that GCC does with
> > unions would be a useful addition to the C standard, though.
>
> What do you mean under "relaxation of strict aliasing that GCC does with
> unions"? I believe I know how unions affect this (although for details
> I'd obviously have to consult the standard :)), but what are the gcc
> specific parts?
I remembered wrong---it's not a relaxation of strict aliasing, it's
defining what happens when a member of a union is accessed through a
member of a different type. C89 makes that implementation-defined
(3.3.2.3) and GCC defines the behavior the sane way: "the relevant bytes
of the representation of the object are treated as an object of the type
used for the access".
C99 makes the other members "take unspecified values" (6.2.6.1). I have
always thought this to be weaker than GCC's promise, but found out that
a subsequent TR added a footnote to clarify that the desired behavior is
the sane one too. C11 also has the same footnote, and no other change
in this area.
Paolo
next prev parent reply other threads:[~2015-10-02 8:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-29 20:34 [Qemu-devel] [PATCH 0/2] target-i386: Fix undefined behavior on bit shifts Eduardo Habkost
2015-09-29 20:34 ` [Qemu-devel] [PATCH 1/2] target-i386: Use 1UL for bit shift Eduardo Habkost
2015-09-30 13:27 ` Paolo Bonzini
2015-09-30 20:24 ` Richard Henderson
2015-10-01 8:29 ` Paolo Bonzini
2015-10-01 9:24 ` Peter Maydell
2015-10-01 13:52 ` Paolo Bonzini
2015-10-01 17:07 ` Laszlo Ersek
2015-10-01 17:30 ` Paolo Bonzini
2015-10-01 17:38 ` Peter Maydell
2015-10-01 19:17 ` Laszlo Ersek
2015-10-02 8:34 ` Paolo Bonzini
2015-10-02 11:14 ` Laszlo Ersek
2015-10-02 12:07 ` Paolo Bonzini
2015-10-04 2:34 ` Kevin O'Connor
2015-10-01 20:35 ` Markus Armbruster
2015-10-01 18:40 ` Laszlo Ersek
2015-10-02 8:48 ` Paolo Bonzini [this message]
2015-09-29 20:34 ` [Qemu-devel] [PATCH 2/2] target-i386: Don't left shift negative constant Eduardo Habkost
2015-10-01 1:35 ` Richard Henderson
2015-10-01 17:06 ` Eduardo Habkost
2015-10-23 15:07 ` Eduardo Habkost
2015-10-23 18:20 ` Richard Henderson
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=560E44EB.2070803@redhat.com \
--to=pbonzini@redhat.com \
--cc=ehabkost@redhat.com \
--cc=lersek@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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 NNTP newsgroup(s).