public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Joseph S. Myers" <joseph@codesourcery.com>
To: Hans-Peter Nilsson <hp@bitrange.com>
Cc: Andrew MacLeod <amacleod@redhat.com>, <gcc-patches@gcc.gnu.org>
Subject: Re: Implement C11 _Atomic
Date: Fri, 22 Nov 2013 03:32:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.64.1311220009010.26755@digraph.polyomino.org.uk> (raw)
In-Reply-To: <alpine.BSF.2.02.1311211825420.44505@arjuna.pair.com>

On Thu, 21 Nov 2013, Hans-Peter Nilsson wrote:

> Oh right, gcc still doesn't remove target-introduced "manual"
> alignment checks (when expanding atomic intrinsics), but at
> least gcc makes sure it's aligned on stack, when options doesn't
> say it's aligned.  And a.c:plugh2 doesn't seem to perform an
> atomic assignment, but just assignment through an
> _Atomic-aligned stack temporary.  Might be my C11-ignorance
> showing.

It appears to me on x86_64 to produce an __atomic_store_4 to *x (in the 
GIMPLE dumps, what happens after that is a matter for the back end).

Note that atomic variable initialization is *not* atomic (see 7.17.2.1 - 
in general ATOMIC_VAR_INIT needs using with the initializer, or the 
initialization needs to be carried out with atomic_init, though GCC 
doesn't require that).  (In C11, the effect of a plain initialization 
without ATOMIC_VAR_INIT is I think that the initializer is evaluated for 
its side effects, but if the variable gets used as either rvalue or lvalue 
without one of the special forms of initialization being used first then 
the behavior is undefined.  The idea is to support implementations with 
extra bits in atomic objects used for locking purposes.)  So no atomic 
store to y is expected - although there are atomic loads from y.

-- 
Joseph S. Myers
joseph@codesourcery.com

  reply	other threads:[~2013-11-22  0:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-06  0:44 Joseph S. Myers
2013-11-06 22:42 ` Andrew MacLeod
2013-11-07 17:16 ` Uros Bizjak
2013-11-07 17:24 ` Jakub Jelinek
2013-11-07 18:10   ` Uros Bizjak
2013-11-07 18:44     ` Joseph S. Myers
2013-11-07 18:47       ` Uros Bizjak
2013-11-07 18:55         ` Joseph S. Myers
     [not found]           ` <CAFULd4ZrAEECG+pptH8cRaWznioaM9VXS4TetpEvkWj--n7H1w@mail.gmail.com>
2013-11-07 21:02             ` Joseph S. Myers
2013-11-07 21:08               ` Uros Bizjak
2013-11-07 22:25                 ` Uros Bizjak
2013-11-07 22:43                   ` Joseph S. Myers
2013-11-08 10:09       ` Uros Bizjak
2013-11-08 13:33         ` Joseph S. Myers
2013-11-21 13:19 ` Hans-Peter Nilsson
2013-11-21 18:03   ` Andrew MacLeod
2013-11-21 18:20     ` Hans-Peter Nilsson
2013-11-21 18:30       ` Andrew MacLeod
2013-11-21 18:49         ` Joseph S. Myers
2013-11-21 18:58           ` Andrew MacLeod
2013-11-21 19:24         ` Hans-Peter Nilsson
2013-11-22  2:57         ` Hans-Peter Nilsson
2013-11-22  3:03           ` Andrew MacLeod
2013-11-22  3:32           ` Hans-Peter Nilsson
2013-11-22  3:32             ` Joseph S. Myers [this message]
2013-11-22 19:12             ` Andrew MacLeod
2013-11-22 20:01               ` Hans-Peter Nilsson
2013-11-08 13:28 Dominique Dhumieres
2013-11-08 13:34 ` Joseph S. Myers
2013-11-08 13:43   ` Dominique Dhumieres

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=Pine.LNX.4.64.1311220009010.26755@digraph.polyomino.org.uk \
    --to=joseph@codesourcery.com \
    --cc=amacleod@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hp@bitrange.com \
    /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).