From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29709 invoked by alias); 23 Jan 2015 13:47:54 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 26912 invoked by uid 48); 23 Jan 2015 13:47:03 -0000 From: "jgreenhalgh at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/64744] ARM: gcc internal compiler error: in store_field, at expr.c:6659 Date: Fri, 23 Jan 2015 13:47:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jgreenhalgh at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cf_gcctarget bug_status cf_reconfirmed_on cc cf_gcchost everconfirmed Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg02559.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D64744 jgreenhalgh at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Target|aarch64 |arm-none-linux-gnueabihf Status|UNCONFIRMED |NEW Last reconfirmed| |2015-01-23 CC| |jgreenhalgh at gcc dot gnu= .org Host|x86_64 |x86_64-unknown-linux-gnu Ever confirmed|0 |1 --- Comment #1 from jgreenhalgh at gcc dot gnu.org --- I can't reproduce this for an AArch64 target. As far as I can remember, we don't support __attribute__((naked)) for AArch= 64, so I would expect the attribute to be ignored (And that is what I see with = your testcase): gcc foo.c -O0 foo.c:3:1: warning: =E2=80=98naked=E2=80=99 attribute directive ignored [-W= attributes] { ^ However, I can reproduce your bug with an ARM compiler (cross and native), = so I'll confirm the bug, and update the Target field for you. >>From gcc-bugs-return-474566-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Jan 23 13:51:24 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 739 invoked by alias); 23 Jan 2015 13:51:21 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 607 invoked by uid 48); 23 Jan 2015 13:51:08 -0000 From: "dwmw2 at infradead dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/55177] missed optimizations with __builtin_bswap Date: Fri, 23 Jan 2015 13:51:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 4.7.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: dwmw2 at infradead dot org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: pinskia at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg02560.txt.bz2 Content-length: 771 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55177 --- Comment #15 from David Woodhouse --- More missed optimistions (gcc version 4.9.2 20141101 (Red Hat 4.9.2-1) (GCC)) I see it using movbe for the pointer_abuse() function, but can't see a simple way to make it use movbe *without* killing kittens. gcc -march=atom -O2 -x c -o - -S - -Wstrict-aliasing <data[0] << 24) | (p->data[1] << 16) | (p->data[2] << 8) | p->data[1]; } unsigned add(struct pkt *p) { return (p->data[0] << 24) + (p->data[1] << 16) + (p->data[2] << 8) + p->data[1]; } unsigned pointer_abuse(struct pkt *p) { return __builtin_bswap32(*(unsigned *)p->data); } EOF