From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16356 invoked by alias); 29 Nov 2012 15:42:53 -0000 Received: (qmail 16337 invoked by uid 22791); 29 Nov 2012 15:42:51 -0000 X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-qa0-f54.google.com (HELO mail-qa0-f54.google.com) (209.85.216.54) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 29 Nov 2012 15:42:42 +0000 Received: by mail-qa0-f54.google.com with SMTP id j15so415235qaq.20 for ; Thu, 29 Nov 2012 07:42:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-gm-message-state; bh=YtuoRTYAqpgzwADE26F4IyLqUYda3lcRFSpHFOPdUPY=; b=OdZkVKkRW17RWM1l759fkk8AL6EAG5ZZkrUrSaf/SBIGT2cr5ufRNN8PieklZwcwOP /lsKIjz68SDb00jA2kTweiw2oXEVPFEKKz9Af4Ydbr3pw3wZ15SfUCSi3/d7udbH7IoU u6TBXIuKcI3G91LHJlPcdTpbbALKeojjq/w0b4PPfZWf0ebaNEWcCWmna49HcI9/8T7d T3nTP4vaWN07vx3p6UBpYbAtTW7usc6yP3y9vODUH/K4LPJHkTjTpW2nKbMpwjfwXbpo msfPfuGNtjNvA1ZEmvt2N+bgMaowcgpWQ7Zj0qSnN1+uYsA49qkTs/qwkAsmffwDuOsT hnXQ== MIME-Version: 1.0 Received: by 10.49.71.163 with SMTP id w3mr19690875qeu.22.1354203761865; Thu, 29 Nov 2012 07:42:41 -0800 (PST) Received: by 10.49.85.230 with HTTP; Thu, 29 Nov 2012 07:42:41 -0800 (PST) Date: Thu, 29 Nov 2012 15:42:00 -0000 Message-ID: Subject: [PATCH] Fix for PR55492 : __atomic_load doesn't match ACQUIRE memory model From: Yvan Roux To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary=047d7b5d8fa32df33f04cfa422ce X-Gm-Message-State: ALoCoQm0mB7FMTEgGgvjf4VonebBLOl61nLg38kI2WkxdFeTLytjeeh/udI7d0rsssNNINf1PYc1 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2012-11/txt/msg02452.txt.bz2 --047d7b5d8fa32df33f04cfa422ce Content-Type: text/plain; charset=ISO-8859-1 Content-length: 376 Hi, on ARMv7, the code generated for the __atomic_load builtins in the __ATOMIC_ACQUIRE memory model, puts a memory barrier before the load, whereas the semantic of the acquire memory model implies a barrier after. The issue seems to be in expand_atomic_load which puts a memory fence before the load in any memory model. The attached patch fixes the problem. Thanks, Yvan --047d7b5d8fa32df33f04cfa422ce Content-Type: application/octet-stream; name="Fix-load-acquire.patch" Content-Disposition: attachment; filename="Fix-load-acquire.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ha41wj330 Content-length: 1200 MjAxMi0xMS0yOSAgWXZhbiBSb3V4ICA8eXZhbi5yb3V4QHN0LmNvbT4KCglQ UiB0YXJnZXQvNTU5NDIKCSogb3B0YWJzLmMgKGV4cGFuZF9hdG9taWNfbG9h ZCk6IENvbmRpdGlvbiB0aGUgbWVtb3J5IGZlbmNlIHRvIHRoZQoJdGhlIHJp Z2h0IG1lbW9yeSBtb2RlbC4KCmRpZmYgLS1naXQgYS9nY2Mvb3B0YWJzLmMg Yi9nY2Mvb3B0YWJzLmMKaW5kZXggMzUzNzI3Zi4uMTQ5NTZiZSAxMDA2NDQK LS0tIGEvZ2NjL29wdGFicy5jCisrKyBiL2djYy9vcHRhYnMuYwpAQCAtNzQ3 OCwxMiArNzQ3OCwxMyBAQCBleHBhbmRfYXRvbWljX2xvYWQgKHJ0eCB0YXJn ZXQsIHJ0eCBtZW0sIGVudW0gbWVtbW9kZWwgbW9kZWwpCiAgICAgdGFyZ2V0 ID0gZ2VuX3JlZ19ydHggKG1vZGUpOwogCiAgIC8qIEVtaXQgdGhlIGFwcHJv cHJpYXRlIGJhcnJpZXIgYmVmb3JlIHRoZSBsb2FkLiAgKi8KLSAgZXhwYW5k X21lbV90aHJlYWRfZmVuY2UgKG1vZGVsKTsKKyAgaWYgKG1vZGVsID09IE1F TU1PREVMX1NFUV9DU1QpCisgICAgZXhwYW5kX21lbV90aHJlYWRfZmVuY2Ug KG1vZGVsKTsKIAogICBlbWl0X21vdmVfaW5zbiAodGFyZ2V0LCBtZW0pOwog Ci0gIC8qIEZvciBTRVFfQ1NULCBhbHNvIGVtaXQgYSBiYXJyaWVyIGFmdGVy IHRoZSBsb2FkLiAgKi8KLSAgaWYgKG1vZGVsID09IE1FTU1PREVMX1NFUV9D U1QpCisgIC8qIEZvciBTRVFfQ1NUIG9yIEFDUVVJUkUsIGFsc28gZW1pdCBh IGJhcnJpZXIgYWZ0ZXIgdGhlIGxvYWQuICAqLworICBpZiAobW9kZWwgPT0g TUVNTU9ERUxfU0VRX0NTVCB8fCBtb2RlbCA9PSBNRU1NT0RFTF9BQ1FVSVJF KQogICAgIGV4cGFuZF9tZW1fdGhyZWFkX2ZlbmNlIChtb2RlbCk7CiAKICAg cmV0dXJuIHRhcmdldDsKLS0gCjEuNy45LjUKCg== --047d7b5d8fa32df33f04cfa422ce--